# nodes

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

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

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

npm_readme:
  # n8n-nodes-lumify

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

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

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

  ## Installation

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

  ### In n8n Desktop/Cloud

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

  ### Self-hosted n8n

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

  ## Prerequisites

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

  ## Operations

  ### Search

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

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

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

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

  ### Last 30 Days

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

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

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

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

  ## Credentials

  ### Setting up Lumify Credentials

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

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

  ## Example Workflows

  ### AI-Powered FAQ Bot

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

  ### Weekly Trend Report

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

  ### Content Research Pipeline

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

  ## Resources

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

  ## Support

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

  ## License

  [MIT](LICENSE)

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


node_type: n8n-nodes-postproxy.postProxy
package_name: n8n-nodes-postproxy
display_name: PostProxy
description: Publish and schedule posts across multiple social media platforms
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: dmitrysereda
author_github_url: https://github.com/postproxy/
npm_package_name: n8n-nodes-postproxy
npm_version: 0.4.3
community_fetched_at: 2026-07-14T14:40:33.612Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Comment",
          "value": "comment"
        },
        {
          "name": "DM Chat",
          "value": "dmChat"
        },
        {
          "name": "DM Message",
          "value": "dmMessage"
        },
        {
          "name": "Post",
          "value": "post"
        },
        {
          "name": "Profile",
          "value": "profile"
        },
        {
          "name": "Profile Group",
          "value": "profileGroup"
        },
        {
          "name": "Queue",
          "value": "queue"
        },
        {
          "name": "Webhook",
          "value": "webhook"
        }
      ],
      "description": "The resource to operate on",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a queue",
          "description": "Create a new posting queue"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a queue",
          "description": "Delete a posting queue"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a queue",
          "description": "Get a queue by ID"
        },
        {
          "name": "Get Next Slot",
          "value": "nextSlot",
          "action": "Get next queue slot",
          "description": "Get the next available timeslot for a queue"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List queues",
          "description": "List all posting queues"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a queue",
          "description": "Update a queue"
        }
      ],
      "description": "The operation to perform",
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "queue"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a webhook",
          "description": "Create a new webhook"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a webhook",
          "description": "Delete a webhook"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a webhook",
          "description": "Get a webhook by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List webhooks",
          "description": "List all webhooks"
        },
        {
          "name": "List Deliveries",
          "value": "listDeliveries",
          "action": "List webhook deliveries",
          "description": "List delivery attempts for a webhook"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a webhook",
          "description": "Update a webhook"
        }
      ],
      "description": "The operation to perform",
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhook"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a comment",
          "description": "Post a comment on a published post"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a comment",
          "description": "Delete a comment from the platform"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a comment",
          "description": "Get a single comment with its replies"
        },
        {
          "name": "Hide",
          "value": "hide",
          "action": "Hide a comment",
          "description": "Hide a comment on the platform"
        },
        {
          "name": "Like",
          "value": "like",
          "action": "Like a comment",
          "description": "Like a comment on the platform"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List comments",
          "description": "List comments on a published post"
        },
        {
          "name": "Unhide",
          "value": "unhide",
          "action": "Unhide a comment",
          "description": "Unhide a previously hidden comment"
        },
        {
          "name": "Private Reply",
          "value": "privateReply",
          "action": "Private reply to a comment",
          "description": "Send a DM to the comment author (Facebook & Instagram only, one reply per comment)"
        },
        {
          "name": "Unlike",
          "value": "unlike",
          "action": "Unlike a comment",
          "description": "Remove a like from a comment"
        }
      ],
      "description": "The operation to perform",
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "comment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a DM chat",
          "description": "Create or find an existing chat with a participant"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a DM chat",
          "description": "Get a chat by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List DM chats",
          "description": "List chats for a profile, ordered by last message"
        }
      ],
      "description": "The operation to perform",
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dmChat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a DM message",
          "description": "Get a message by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List DM messages",
          "description": "List messages in a chat"
        },
        {
          "name": "React",
          "value": "react",
          "action": "React to a DM message",
          "description": "Add a reaction to a message — Facebook & Instagram only"
        },
        {
          "name": "Send",
          "value": "send",
          "action": "Send a DM message",
          "description": "Send a message (text or single media attachment)"
        },
        {
          "name": "Unreact",
          "value": "unreact",
          "action": "Unreact to a DM message",
          "description": "Remove the business account's reaction from a message"
        }
      ],
      "description": "The operation to perform",
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dmMessage"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a post",
          "description": "Create and publish or schedule a post"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a post",
          "description": "Delete a post"
        },
        {
          "name": "Get Post Details",
          "value": "get",
          "action": "Get post details",
          "description": "Get a post by ID"
        },
        {
          "name": "Get Stats",
          "value": "getStats",
          "action": "Get post stats",
          "description": "Get engagement stats snapshots for one or more posts"
        },
        {
          "name": "List Posts",
          "value": "getMany",
          "action": "List posts",
          "description": "Get many posts"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a post",
          "description": "Update a post"
        },
        {
          "name": "Publish",
          "value": "publish",
          "action": "Publish a draft post",
          "description": "Publish a draft post"
        }
      ],
      "description": "The operation to perform",
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a profile",
          "description": "Disconnect and remove a profile"
        },
        {
          "name": "Get Profile Details",
          "value": "get",
          "action": "Get profile details",
          "description": "Get a profile by ID"
        },
        {
          "name": "List Placements",
          "value": "getPlacements",
          "action": "List profile placements",
          "description": "List available placements for a profile (Facebook pages, LinkedIn organizations, Pinterest boards)"
        },
        {
          "name": "List Profiles",
          "value": "getMany",
          "action": "List profiles",
          "description": "Get many profiles"
        }
      ],
      "description": "The operation to perform",
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "profile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a profile group",
          "description": "Create a new profile group"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a profile group",
          "description": "Delete a profile group and all its profiles"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a profile group",
          "description": "Get a profile group by ID"
        },
        {
          "name": "List Profile Groups",
          "value": "getMany",
          "action": "List profile groups",
          "description": "Get many profile groups"
        }
      ],
      "description": "The operation to perform",
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "profileGroup"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a queue",
      "description": "Create a new posting queue",
      "resource": "queue"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a queue",
      "description": "Delete a posting queue",
      "resource": "queue"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a queue",
      "description": "Get a queue by ID",
      "resource": "queue"
    },
    {
      "name": "Get Next Slot",
      "value": "nextSlot",
      "action": "Get next queue slot",
      "description": "Get the next available timeslot for a queue",
      "resource": "queue"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List queues",
      "description": "List all posting queues",
      "resource": "queue"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a queue",
      "description": "Update a queue",
      "resource": "queue"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a webhook",
      "description": "Create a new webhook",
      "resource": "webhook"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a webhook",
      "description": "Delete a webhook",
      "resource": "webhook"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a webhook",
      "description": "Get a webhook by ID",
      "resource": "webhook"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List webhooks",
      "description": "List all webhooks",
      "resource": "webhook"
    },
    {
      "name": "List Deliveries",
      "value": "listDeliveries",
      "action": "List webhook deliveries",
      "description": "List delivery attempts for a webhook",
      "resource": "webhook"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a webhook",
      "description": "Update a webhook",
      "resource": "webhook"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a comment",
      "description": "Post a comment on a published post",
      "resource": "comment"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a comment",
      "description": "Delete a comment from the platform",
      "resource": "comment"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a comment",
      "description": "Get a single comment with its replies",
      "resource": "comment"
    },
    {
      "name": "Hide",
      "value": "hide",
      "action": "Hide a comment",
      "description": "Hide a comment on the platform",
      "resource": "comment"
    },
    {
      "name": "Like",
      "value": "like",
      "action": "Like a comment",
      "description": "Like a comment on the platform",
      "resource": "comment"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List comments",
      "description": "List comments on a published post",
      "resource": "comment"
    },
    {
      "name": "Unhide",
      "value": "unhide",
      "action": "Unhide a comment",
      "description": "Unhide a previously hidden comment",
      "resource": "comment"
    },
    {
      "name": "Private Reply",
      "value": "privateReply",
      "action": "Private reply to a comment",
      "description": "Send a DM to the comment author (Facebook & Instagram only, one reply per comment)",
      "resource": "comment"
    },
    {
      "name": "Unlike",
      "value": "unlike",
      "action": "Unlike a comment",
      "description": "Remove a like from a comment",
      "resource": "comment"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a DM chat",
      "description": "Create or find an existing chat with a participant",
      "resource": "dmChat"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a DM chat",
      "description": "Get a chat by ID",
      "resource": "dmChat"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List DM chats",
      "description": "List chats for a profile, ordered by last message",
      "resource": "dmChat"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a DM message",
      "description": "Get a message by ID",
      "resource": "dmMessage"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List DM messages",
      "description": "List messages in a chat",
      "resource": "dmMessage"
    },
    {
      "name": "React",
      "value": "react",
      "action": "React to a DM message",
      "description": "Add a reaction to a message — Facebook & Instagram only",
      "resource": "dmMessage"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send a DM message",
      "description": "Send a message (text or single media attachment)",
      "resource": "dmMessage"
    },
    {
      "name": "Unreact",
      "value": "unreact",
      "action": "Unreact to a DM message",
      "description": "Remove the business account's reaction from a message",
      "resource": "dmMessage"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a post",
      "description": "Create and publish or schedule a post",
      "resource": "post"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a post",
      "description": "Delete a post",
      "resource": "post"
    },
    {
      "name": "Get Post Details",
      "value": "get",
      "action": "Get post details",
      "description": "Get a post by ID",
      "resource": "post"
    },
    {
      "name": "Get Stats",
      "value": "getStats",
      "action": "Get post stats",
      "description": "Get engagement stats snapshots for one or more posts",
      "resource": "post"
    },
    {
      "name": "List Posts",
      "value": "getMany",
      "action": "List posts",
      "description": "Get many posts",
      "resource": "post"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a post",
      "description": "Update a post",
      "resource": "post"
    },
    {
      "name": "Publish",
      "value": "publish",
      "action": "Publish a draft post",
      "description": "Publish a draft post",
      "resource": "post"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a profile",
      "description": "Disconnect and remove a profile",
      "resource": "profile"
    },
    {
      "name": "Get Profile Details",
      "value": "get",
      "action": "Get profile details",
      "description": "Get a profile by ID",
      "resource": "profile"
    },
    {
      "name": "List Placements",
      "value": "getPlacements",
      "action": "List profile placements",
      "description": "List available placements for a profile (Facebook pages, LinkedIn organizations, Pinterest boards)",
      "resource": "profile"
    },
    {
      "name": "List Profiles",
      "value": "getMany",
      "action": "List profiles",
      "description": "Get many profiles",
      "resource": "profile"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a profile group",
      "description": "Create a new profile group",
      "resource": "profileGroup"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a profile group",
      "description": "Delete a profile group and all its profiles",
      "resource": "profileGroup"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a profile group",
      "description": "Get a profile group by ID",
      "resource": "profileGroup"
    },
    {
      "name": "List Profile Groups",
      "value": "getMany",
      "action": "List profile groups",
      "description": "Get many profile groups",
      "resource": "profileGroup"
    }
  ]

npm_readme:
  # n8n-nodes-postproxy

  Community n8n node for the [PostProxy API](https://postproxy.dev) — a unified API for publishing, scheduling, and managing social media content across multiple platforms.

  ## Supported platforms

  X (Twitter), Facebook, Instagram, LinkedIn, Pinterest, TikTok, YouTube, Threads, Bluesky, Telegram, Google Business

  ## Resources

  | Resource | Operations |
  |----------|-----------|
  | **Post** | Create, Get, List, Update, Delete, Publish draft, Get stats |
  | **Comment** | Create, Delete, Get, List, Hide, Unhide, Like, Unlike, Private Reply |
  | **DM Chat** | List, Create, Get |
  | **DM Message** | List, Send, Get, React, Unreact |
  | **Profile** | Get, List, Delete, Get Placements |
  | **Profile Group** | Create, Get, List, Delete |
  | **Queue** | Create, Get, List, Update, Delete, Get Next Slot |
  | **Webhook** | Create, Get, List, Update, Delete, List Deliveries |

  ## Installation

  ### n8n Cloud or self-hosted

  ```bash
  npm install n8n-nodes-postproxy
  ```

  Restart n8n after installation.

  ### n8n Desktop

  Settings → Community Nodes → Install → `n8n-nodes-postproxy`

  ## Getting started

  1. Sign up at [postproxy.dev](https://postproxy.dev) and get your API key from Settings → API Keys
  2. In n8n, add a PostProxy node and create a new credential with your API key

  ## Key concepts

  ### Profile Groups and Placements

  PostProxy organizes profiles into **Profile Groups** (e.g. per brand or client). When creating a post, select a Profile Group first, then pick individual profiles from that group.

  For Facebook, LinkedIn, Google Business, and Telegram, you also need to select a **Placement** (page, organization, channel) from the Placements section of the Post › Create node.

  ### Direct Messages

  DM support covers Facebook Messenger, Instagram, Telegram, and Bluesky. Use **DM Chat** to manage conversations and **DM Message** to send and receive messages.

  Telegram DMs support `reply_markup` (inline keyboards) — pass it as JSON in Additional Fields when sending a message.

  ### Webhooks

  Subscribe to events like `comment.created`, `message.received`, `platform_post.published`, and more. Point the webhook URL at an n8n Webhook trigger node to build real-time automation.

  ## Requirements

  - n8n v1.0.0 or higher
  - PostProxy API key

  ## Links

  - [PostProxy documentation](https://postproxy.dev/reference/)
  - [Report issues](https://github.com/postproxy/n8n-nodes-postproxy/issues)

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"A community n8n node that connects to the PostProxy API to publish and schedule posts across multiple social media platforms (X/Twitter, Facebook, Instagram) with unified management and automatic error handling.","capabilities":["Publish posts to multiple social media platforms via a single interface","Schedule posts for future publishing with automatic timezone handling","List and manage profile groups and social media profiles","Create posts with text content and media attachments (images/videos via URLs)","Update and delete existing posts by ID","Retrieve detailed post information including platform-specific status and insights","Handle platform-specific parameters (e.g., alt text, captions)","Automatic retries and quota management for rate limits","Track per-account status and post status (pending, processed, draft)","Pagination support for listing posts and profiles"],"authentication":"API key required (PostProxy API key)","commonUseCases":["Automated social media content publishing across multiple accounts","Scheduled social media campaigns with time-based publishing","Centralized management of posts across X, Facebook, and Instagram","Monitoring post performance and status across platforms","Batch posting to multiple profile groups simultaneously"],"limitations":["Community node (may not be maintained by n8n core team)","Requires external PostProxy API account and key","Media must be provided via URLs (no direct file upload)","Platform-specific parameters require JSON formatting in platformParams field"],"relatedNodes":["HTTP Request","Set","Split In Batches","Wait Until"]}


node_type: n8n-nodes-payfunnels.payfunnelsTrigger
package_name: n8n-nodes-payfunnels
display_name: Payfunnels Trigger
description: Starts the workflow when Payfunnels events occur
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

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

  This is the official n8n community node for [PayFunnels](https://www.payfunnels.com/).

  PayFunnels—an all-in-one online payment solution and platform. Collect payments, manage subscriptions, and engage customers seamlessly.

  By using this node, you will be able to integrate Payfunnels events in your n8n workflows.

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

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

  ## Installation

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

  ## Operations

  ### Payment Link
  - Payment Link Created
  - Payment Link Updated
  - Payment Link Deleted

  ### Payment
  - Payment Success
  - Payment Failed
  - First Recurring Payment
  - Refund Payment
  - List Payments

  ### Subscription
  - List Subscriptions
  - Cancel Subscription

  ### One Time Setup Fees
  - One Time Setup Fees Created
  - One Time Setup Fees Updated
  - One Time Setup Fees Deleted
  - List One Time Setup Fees

  ## Credentials

  You can obtain the credentials from your Payfunnels dashboard. Go to `Billings -> Integrations -> n8n`.

  ## Resources

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

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows automatically when specific events occur within a PayFunnels account, enabling integration of payment and subscription management events.","capabilities":["Trigger on Payment Link Created","Trigger on Payment Link Updated","Trigger on Payment Link Deleted","Trigger on Payment Success","Trigger on Payment Failed","Trigger on First Recurring Payment","Trigger on Refund Payment","Trigger on List Payments","Trigger on List Subscriptions","Trigger on Cancel Subscription"],"authentication":"API Key (obtained from Payfunnels dashboard under Billings -> Integrations -> n8n)","commonUseCases":["Automate order fulfillment upon successful payment","Send notifications when a payment fails or is refunded","Manage subscription cancellations automatically","Process one-time setup fee events","Sync payment data between systems"],"limitations":[],"relatedNodes":["n8n-nodes-payfunnels.payfunnelsWebhook","n8n-nodes-payfunnels.payfunnelsListPayments","n8n-nodes-payfunnels.payfunnelsListSubscriptions"]}


node_type: @klardaten/n8n-nodes-datevconnect.accounting
package_name: @klardaten/n8n-nodes-datevconnect
display_name: Klardaten DATEVconnect: Accounting
description: Interact with DATEV Accounting API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: johannespfeiffer
author_github_url: https://github.com/Klardaten/n8n-nodes-datevconnect.git
npm_package_name: @klardaten/n8n-nodes-datevconnect
npm_version: 1.0.13
community_fetched_at: 2026-07-14T14:40:33.614Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "client",
      "options": [
        {
          "name": "Account Posting",
          "value": "accountPosting",
          "description": "Operations on account postings"
        },
        {
          "name": "Accounting Sequence",
          "value": "accountingSequence",
          "description": "Operations on accounting sequences"
        },
        {
          "name": "Accounting Statistic",
          "value": "accountingStatistics",
          "description": "Operations on monthly accounting sequence statistics"
        },
        {
          "name": "Accounting Sums and Balance",
          "value": "accountingSumsAndBalances",
          "description": "Operations on accounting balance sheet and P&L data"
        },
        {
          "name": "Accounting Transaction Key",
          "value": "accountingTransactionKeys",
          "description": "Operations on accounting transaction key master data"
        },
        {
          "name": "Accounts Payable",
          "value": "accountsPayable",
          "description": "Operations on accounts payable (open items)"
        },
        {
          "name": "Accounts Receivable",
          "value": "accountsReceivable",
          "description": "Operations on accounts receivable (open items)"
        },
        {
          "name": "Business Partner",
          "value": "businessPartners",
          "description": "Operations on debitors (customers) and creditors (suppliers)"
        },
        {
          "name": "Client",
          "value": "client",
          "description": "Operations on accounting clients/companies"
        },
        {
          "name": "Cost Center Property",
          "value": "costCenterProperties",
          "description": "Operations on cost center properties and attributes"
        },
        {
          "name": "Cost Centers/Unit",
          "value": "costCentersUnits",
          "description": "Operations on cost centers and cost units"
        },
        {
          "name": "Cost Sequence",
          "value": "costSequences",
          "description": "Operations on cost accounting sequences"
        },
        {
          "name": "Cost System",
          "value": "costSystems",
          "description": "Operations on cost accounting systems"
        },
        {
          "name": "Fiscal Year",
          "value": "fiscalYear",
          "description": "Operations on fiscal years"
        },
        {
          "name": "General Ledger Account",
          "value": "generalLedgerAccounts",
          "description": "Operations on chart of accounts"
        },
        {
          "name": "Internal Cost Service",
          "value": "internalCostServices",
          "description": "Operations on internal cost service allocations"
        },
        {
          "name": "Posting Proposal",
          "value": "postingProposals",
          "description": "Operations on posting proposal rules and batch processing"
        },
        {
          "name": "Stocktaking Data",
          "value": "stocktakingData",
          "description": "Operations on inventory stocktaking data"
        },
        {
          "name": "Terms of Payment",
          "value": "termsOfPayment",
          "description": "Operations on payment terms and conditions"
        },
        {
          "name": "Various Addresses",
          "value": "variousAddresses",
          "description": "Operations on various business partner addresses"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many clients",
          "description": "Retrieve a list of many clients/companies"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a client",
          "description": "Retrieve a specific client/company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many fiscal years",
          "description": "Retrieve a list of fiscal years for a client"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a fiscal year",
          "description": "Retrieve a specific fiscal year"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "fiscalYear"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many accounts receivable",
          "description": "Retrieve a list of accounts receivable (uncondensed)"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an account receivable",
          "description": "Retrieve a specific account receivable"
        },
        {
          "name": "Get Condensed",
          "value": "getCondensed",
          "action": "Get condensed accounts receivable",
          "description": "Retrieve a condensed list of accounts receivable"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "accountsReceivable"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many accounts payable",
          "description": "Retrieve a list of accounts payable (uncondensed)"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an account payable",
          "description": "Retrieve a specific account payable"
        },
        {
          "name": "Get Condensed",
          "value": "getCondensed",
          "action": "Get condensed accounts payable",
          "description": "Retrieve a condensed list of accounts payable"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "accountsPayable"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many account postings",
          "description": "Retrieve a list of account postings"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an account posting",
          "description": "Retrieve a specific account posting"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "accountPosting"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an accounting sequence",
          "description": "Create an accounting sequence"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an accounting sequence",
          "description": "Retrieve a specific accounting sequence"
        },
        {
          "name": "Get Accounting Record",
          "value": "getAccountingRecord",
          "action": "Get specific accounting record from sequence",
          "description": "Retrieve a specific accounting record from a sequence"
        },
        {
          "name": "Get Accounting Records",
          "value": "getAccountingRecords",
          "action": "Get accounting records from sequence",
          "description": "Retrieve all accounting records of a specific processed sequence"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many accounting sequences",
          "description": "Retrieve a list of processed accounting sequences"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "accountingSequence"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getRulesIncoming",
      "options": [
        {
          "name": "Batch - Cash Register",
          "value": "batchCashRegister",
          "action": "Process batch of cash register posting proposals",
          "description": "Process batch of cash register posting proposals"
        },
        {
          "name": "Batch - Incoming",
          "value": "batchIncoming",
          "action": "Process batch of incoming invoice posting proposals",
          "description": "Process batch of incoming invoice posting proposals"
        },
        {
          "name": "Batch - Outgoing",
          "value": "batchOutgoing",
          "action": "Process batch of outgoing invoice posting proposals",
          "description": "Process batch of outgoing invoice posting proposals"
        },
        {
          "name": "Get Rule - Cash Register",
          "value": "getRuleCashRegister",
          "action": "Get a posting proposal rule for cash register",
          "description": "Retrieve a specific posting proposal rule for cash register"
        },
        {
          "name": "Get Rule - Incoming",
          "value": "getRuleIncoming",
          "action": "Get a posting proposal rule for incoming invoices",
          "description": "Retrieve a specific posting proposal rule for incoming invoices"
        },
        {
          "name": "Get Rule - Outgoing",
          "value": "getRuleOutgoing",
          "action": "Get a posting proposal rule for outgoing invoices",
          "description": "Retrieve a specific posting proposal rule for outgoing invoices"
        },
        {
          "name": "Get Rules - Cash Register",
          "value": "getRulesCashRegister",
          "action": "Get posting proposal rules for cash register",
          "description": "Retrieve posting proposal rules for cash register"
        },
        {
          "name": "Get Rules - Incoming",
          "value": "getRulesIncoming",
          "action": "Get posting proposal rules for incoming invoices",
          "description": "Retrieve posting proposal rules for incoming invoices"
        },
        {
          "name": "Get Rules - Outgoing",
          "value": "getRulesOutgoing",
          "action": "Get posting proposal rules for outgoing invoices",
          "description": "Retrieve posting proposal rules for outgoing invoices"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "postingProposals"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many accounting sums and balances",
          "description": "Retrieve a list of accounting sums and balances"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an accounting sums and balances entry",
          "description": "Retrieve a specific account from sums and balances"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "accountingSumsAndBalances"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDebitors",
      "options": [
        {
          "name": "Create Creditor",
          "value": "createCreditor",
          "action": "Create a creditor",
          "description": "Create a new creditor"
        },
        {
          "name": "Create Debitor",
          "value": "createDebitor",
          "action": "Create a debitor",
          "description": "Create a new debitor"
        },
        {
          "name": "Get Creditor",
          "value": "getCreditor",
          "action": "Get a creditor",
          "description": "Retrieve a specific creditor"
        },
        {
          "name": "Get Creditors",
          "value": "getCreditors",
          "action": "Get many creditors",
          "description": "Retrieve a list of creditors (suppliers)"
        },
        {
          "name": "Get Debitor",
          "value": "getDebitor",
          "action": "Get a debitor",
          "description": "Retrieve a specific debitor"
        },
        {
          "name": "Get Debitors",
          "value": "getDebitors",
          "action": "Get many debitors",
          "description": "Retrieve a list of debitors (customers)"
        },
        {
          "name": "Get Next Available Creditor",
          "value": "getNextAvailableCreditor",
          "action": "Get next available creditor number",
          "description": "Get the next available creditor account number"
        },
        {
          "name": "Get Next Available Debitor",
          "value": "getNextAvailableDebitor",
          "action": "Get next available debitor number",
          "description": "Get the next available debitor account number"
        },
        {
          "name": "Update Creditor",
          "value": "updateCreditor",
          "action": "Update a creditor",
          "description": "Update an existing creditor"
        },
        {
          "name": "Update Debitor",
          "value": "updateDebitor",
          "action": "Update a debitor",
          "description": "Update an existing debitor"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "businessPartners"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many general ledger accounts",
          "description": "Retrieve a list of general ledger accounts"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a general ledger account",
          "description": "Retrieve a specific general ledger account"
        },
        {
          "name": "Get Utilized",
          "value": "getUtilized",
          "action": "Get utilized general ledger accounts",
          "description": "Retrieve a list of utilized general ledger accounts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "generalLedgerAccounts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many terms of payment",
          "description": "Retrieve a list of terms of payment"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a term of payment",
          "description": "Retrieve a specific term of payment"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a term of payment",
          "description": "Create a new term of payment"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a term of payment",
          "description": "Update an existing term of payment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "termsOfPayment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many stocktaking data",
          "description": "Retrieve a list of stocktaking data"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a stocktaking data entry",
          "description": "Retrieve a specific stocktaking data entry"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a stocktaking data entry",
          "description": "Create a new stocktaking data entry"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "stocktakingData"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many cost systems",
          "description": "Retrieve a list of cost systems"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a cost system",
          "description": "Retrieve a specific cost system"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "costSystems"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many cost centers units",
          "description": "Retrieve a list of cost centers/units"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a cost center unit",
          "description": "Retrieve a specific cost center/unit"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "costCentersUnits"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many cost center properties",
          "description": "Retrieve a list of cost center properties"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a cost center property",
          "description": "Retrieve a specific cost center property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "costCenterProperties"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create internal cost service",
          "description": "Create internal cost service allocation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "internalCostServices"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many cost sequences",
          "description": "Retrieve a list of cost sequences"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a cost sequence",
          "description": "Retrieve a specific cost sequence"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a cost sequence",
          "description": "Create a new cost sequence"
        },
        {
          "name": "Get Cost Accounting Records",
          "value": "getCostAccountingRecords",
          "action": "Get cost accounting records",
          "description": "Retrieve cost accounting records for a sequence"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "costSequences"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many accounting statistics",
          "description": "Retrieve accounting statistics data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "accountingStatistics"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many accounting transaction keys",
          "description": "Retrieve a list of accounting transaction keys"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an accounting transaction key",
          "description": "Retrieve a specific accounting transaction key"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "accountingTransactionKeys"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many various addresses",
          "description": "Retrieve a list of various addresses"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a various address",
          "description": "Retrieve a specific various address"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a various address",
          "description": "Create a new various address"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "variousAddresses"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many clients",
      "description": "Retrieve a list of many clients/companies",
      "resource": "client"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a client",
      "description": "Retrieve a specific client/company",
      "resource": "client"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many fiscal years",
      "description": "Retrieve a list of fiscal years for a client",
      "resource": "fiscalYear"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a fiscal year",
      "description": "Retrieve a specific fiscal year",
      "resource": "fiscalYear"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many accounts receivable",
      "description": "Retrieve a list of accounts receivable (uncondensed)",
      "resource": "accountsReceivable"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an account receivable",
      "description": "Retrieve a specific account receivable",
      "resource": "accountsReceivable"
    },
    {
      "name": "Get Condensed",
      "value": "getCondensed",
      "action": "Get condensed accounts receivable",
      "description": "Retrieve a condensed list of accounts receivable",
      "resource": "accountsReceivable"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many accounts payable",
      "description": "Retrieve a list of accounts payable (uncondensed)",
      "resource": "accountsPayable"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an account payable",
      "description": "Retrieve a specific account payable",
      "resource": "accountsPayable"
    },
    {
      "name": "Get Condensed",
      "value": "getCondensed",
      "action": "Get condensed accounts payable",
      "description": "Retrieve a condensed list of accounts payable",
      "resource": "accountsPayable"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many account postings",
      "description": "Retrieve a list of account postings",
      "resource": "accountPosting"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an account posting",
      "description": "Retrieve a specific account posting",
      "resource": "accountPosting"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an accounting sequence",
      "description": "Create an accounting sequence",
      "resource": "accountingSequence"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an accounting sequence",
      "description": "Retrieve a specific accounting sequence",
      "resource": "accountingSequence"
    },
    {
      "name": "Get Accounting Record",
      "value": "getAccountingRecord",
      "action": "Get specific accounting record from sequence",
      "description": "Retrieve a specific accounting record from a sequence",
      "resource": "accountingSequence"
    },
    {
      "name": "Get Accounting Records",
      "value": "getAccountingRecords",
      "action": "Get accounting records from sequence",
      "description": "Retrieve all accounting records of a specific processed sequence",
      "resource": "accountingSequence"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many accounting sequences",
      "description": "Retrieve a list of processed accounting sequences",
      "resource": "accountingSequence"
    },
    {
      "name": "Batch - Cash Register",
      "value": "batchCashRegister",
      "action": "Process batch of cash register posting proposals",
      "description": "Process batch of cash register posting proposals",
      "resource": "postingProposals"
    },
    {
      "name": "Batch - Incoming",
      "value": "batchIncoming",
      "action": "Process batch of incoming invoice posting proposals",
      "description": "Process batch of incoming invoice posting proposals",
      "resource": "postingProposals"
    },
    {
      "name": "Batch - Outgoing",
      "value": "batchOutgoing",
      "action": "Process batch of outgoing invoice posting proposals",
      "description": "Process batch of outgoing invoice posting proposals",
      "resource": "postingProposals"
    },
    {
      "name": "Get Rule - Cash Register",
      "value": "getRuleCashRegister",
      "action": "Get a posting proposal rule for cash register",
      "description": "Retrieve a specific posting proposal rule for cash register",
      "resource": "postingProposals"
    },
    {
      "name": "Get Rule - Incoming",
      "value": "getRuleIncoming",
      "action": "Get a posting proposal rule for incoming invoices",
      "description": "Retrieve a specific posting proposal rule for incoming invoices",
      "resource": "postingProposals"
    },
    {
      "name": "Get Rule - Outgoing",
      "value": "getRuleOutgoing",
      "action": "Get a posting proposal rule for outgoing invoices",
      "description": "Retrieve a specific posting proposal rule for outgoing invoices",
      "resource": "postingProposals"
    },
    {
      "name": "Get Rules - Cash Register",
      "value": "getRulesCashRegister",
      "action": "Get posting proposal rules for cash register",
      "description": "Retrieve posting proposal rules for cash register",
      "resource": "postingProposals"
    },
    {
      "name": "Get Rules - Incoming",
      "value": "getRulesIncoming",
      "action": "Get posting proposal rules for incoming invoices",
      "description": "Retrieve posting proposal rules for incoming invoices",
      "resource": "postingProposals"
    },
    {
      "name": "Get Rules - Outgoing",
      "value": "getRulesOutgoing",
      "action": "Get posting proposal rules for outgoing invoices",
      "description": "Retrieve posting proposal rules for outgoing invoices",
      "resource": "postingProposals"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many accounting sums and balances",
      "description": "Retrieve a list of accounting sums and balances",
      "resource": "accountingSumsAndBalances"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an accounting sums and balances entry",
      "description": "Retrieve a specific account from sums and balances",
      "resource": "accountingSumsAndBalances"
    },
    {
      "name": "Create Creditor",
      "value": "createCreditor",
      "action": "Create a creditor",
      "description": "Create a new creditor",
      "resource": "businessPartners"
    },
    {
      "name": "Create Debitor",
      "value": "createDebitor",
      "action": "Create a debitor",
      "description": "Create a new debitor",
      "resource": "businessPartners"
    },
    {
      "name": "Get Creditor",
      "value": "getCreditor",
      "action": "Get a creditor",
      "description": "Retrieve a specific creditor",
      "resource": "businessPartners"
    },
    {
      "name": "Get Creditors",
      "value": "getCreditors",
      "action": "Get many creditors",
      "description": "Retrieve a list of creditors (suppliers)",
      "resource": "businessPartners"
    },
    {
      "name": "Get Debitor",
      "value": "getDebitor",
      "action": "Get a debitor",
      "description": "Retrieve a specific debitor",
      "resource": "businessPartners"
    },
    {
      "name": "Get Debitors",
      "value": "getDebitors",
      "action": "Get many debitors",
      "description": "Retrieve a list of debitors (customers)",
      "resource": "businessPartners"
    },
    {
      "name": "Get Next Available Creditor",
      "value": "getNextAvailableCreditor",
      "action": "Get next available creditor number",
      "description": "Get the next available creditor account number",
      "resource": "businessPartners"
    },
    {
      "name": "Get Next Available Debitor",
      "value": "getNextAvailableDebitor",
      "action": "Get next available debitor number",
      "description": "Get the next available debitor account number",
      "resource": "businessPartners"
    },
    {
      "name": "Update Creditor",
      "value": "updateCreditor",
      "action": "Update a creditor",
      "description": "Update an existing creditor",
      "resource": "businessPartners"
    },
    {
      "name": "Update Debitor",
      "value": "updateDebitor",
      "action": "Update a debitor",
      "description": "Update an existing debitor",
      "resource": "businessPartners"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many general ledger accounts",
      "description": "Retrieve a list of general ledger accounts",
      "resource": "generalLedgerAccounts"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a general ledger account",
      "description": "Retrieve a specific general ledger account",
      "resource": "generalLedgerAccounts"
    },
    {
      "name": "Get Utilized",
      "value": "getUtilized",
      "action": "Get utilized general ledger accounts",
      "description": "Retrieve a list of utilized general ledger accounts",
      "resource": "generalLedgerAccounts"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many terms of payment",
      "description": "Retrieve a list of terms of payment",
      "resource": "termsOfPayment"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a term of payment",
      "description": "Retrieve a specific term of payment",
      "resource": "termsOfPayment"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a term of payment",
      "description": "Create a new term of payment",
      "resource": "termsOfPayment"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a term of payment",
      "description": "Update an existing term of payment",
      "resource": "termsOfPayment"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many stocktaking data",
      "description": "Retrieve a list of stocktaking data",
      "resource": "stocktakingData"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a stocktaking data entry",
      "description": "Retrieve a specific stocktaking data entry",
      "resource": "stocktakingData"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a stocktaking data entry",
      "description": "Create a new stocktaking data entry",
      "resource": "stocktakingData"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many cost systems",
      "description": "Retrieve a list of cost systems",
      "resource": "costSystems"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a cost system",
      "description": "Retrieve a specific cost system",
      "resource": "costSystems"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many cost centers units",
      "description": "Retrieve a list of cost centers/units",
      "resource": "costCentersUnits"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a cost center unit",
      "description": "Retrieve a specific cost center/unit",
      "resource": "costCentersUnits"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many cost center properties",
      "description": "Retrieve a list of cost center properties",
      "resource": "costCenterProperties"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a cost center property",
      "description": "Retrieve a specific cost center property",
      "resource": "costCenterProperties"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create internal cost service",
      "description": "Create internal cost service allocation",
      "resource": "internalCostServices"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many cost sequences",
      "description": "Retrieve a list of cost sequences",
      "resource": "costSequences"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a cost sequence",
      "description": "Retrieve a specific cost sequence",
      "resource": "costSequences"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a cost sequence",
      "description": "Create a new cost sequence",
      "resource": "costSequences"
    },
    {
      "name": "Get Cost Accounting Records",
      "value": "getCostAccountingRecords",
      "action": "Get cost accounting records",
      "description": "Retrieve cost accounting records for a sequence",
      "resource": "costSequences"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many accounting statistics",
      "description": "Retrieve accounting statistics data",
      "resource": "accountingStatistics"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many accounting transaction keys",
      "description": "Retrieve a list of accounting transaction keys",
      "resource": "accountingTransactionKeys"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an accounting transaction key",
      "description": "Retrieve a specific accounting transaction key",
      "resource": "accountingTransactionKeys"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many various addresses",
      "description": "Retrieve a list of various addresses",
      "resource": "variousAddresses"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a various address",
      "description": "Retrieve a specific various address",
      "resource": "variousAddresses"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a various address",
      "description": "Create a new various address",
      "resource": "variousAddresses"
    }
  ]

npm_readme:
  # n8n DATEVConnect

  This repository provides custom n8n nodes for integrating with the DATEVconnect APIs. It requires the [Klardaten DATEVconnect Gateway](https://klardaten.com/products/datevconnect-gateway) to be set up.

  ## Available Nodes

  | Node                           | Description                                                                                                             |
  | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
  | `Accounting`                   | Access DATEV Accounting API for clients, fiscal years, accounts receivable, account postings, and accounting sequences. |
  | `MasterData`                   | Fetches master data entities from DATEV using the configured credentials.                                               |
  | `Document Management`          | Access DATEV Document Management or DMS for documents, structure items, property templates.                             |
  | `Order Management`             | Read and manage orders, suborders, invoices, fees, and related employee data.                                           |
  | `Identity & Access Management` | Manage SCIM-based DATEV IAM resources such as service configuration, schemas, users, and groups.                        |

  Refer to the node descriptions inside the n8n editor for input parameters and output structure.

  ## Installation

  ### Through the n8n UI

  1. Navigate to **Settings → Community Nodes → Install** inside your n8n instance.
  2. Enter `@klardaten/n8n-nodes-datevconnect` as the package name.
  3. Confirm the warning prompt and restart n8n so the nodes are registered.

  ### Manual (filesystem) installation

  ```bash
  cd ~/.n8n
  npm install @klardaten/n8n-nodes-datevconnect
  ```

  Copy or symlink the contents of the installed `node_modules/@klardaten/n8n-nodes-datevconnect/dist/{nodes,credentials}` directories into your `~/.n8n/custom/` folder if you prefer the legacy custom-nodes workflow, then restart n8n.

  ## Development

  1. **Install dependencies**
     ```bash
     npm install
     ```
  2. **Build** (optional during development; n8n compiles on the fly)
     ```bash
     npm run dev
     ```

  ## Required Credentials

  You need a Klardaten account and an instance id (of the DATEV instance you want to access).

  - `email`
  - `password`
  - `clientInstanceId`

  ## Running Tests

  Use the npm test runner to execute the automated tests:

  ```bash
  npm test
  ```

  ## Releasing

  Releases are prepared locally and published to npm from GitHub Actions with npm provenance.
  Do not run `npm publish` locally.

  1. Ensure the npm Trusted Publisher for `@klardaten/n8n-nodes-datevconnect` points to the `Klardaten/n8n-nodes-datevconnect` repository and the `publish.yml` workflow.
  2. Start from an up-to-date `main` branch.
     ```bash
     git switch main
     git pull
     ```
  3. Run the release command and follow the prompts.
     ```bash
     npm run release
     ```

  The local release command updates the version and changelog, creates the release commit and tag, pushes them, and creates the GitHub release. It does not publish to npm locally. The pushed version tag triggers the `Publish` workflow, which publishes the tagged package version to npm with the `latest` dist-tag and provenance.

  ## Usage in n8n

  1. Create a new workflow in n8n.
  2. Add the **Klardaten DATEVconnect: Master Data** or **Accounting** etc. node and choose the credential you configured.
  3. Select the desired operation (e.g., list client entries) and configure any filters.
  4. Execute the workflow or schedule it as part of a larger automation.

  All nodes authenticate using the stored credentials and interact with their respective DATEVconnect APIs.

  ## Additional Notes

  DATEV provides endpoint reference details under

  - [Accounting](https://developer.datev.de/en/product-detail/accounting/1.7.4/reference)
  - [Client Master Data](https://developer.datev.de/en/product-detail/client-master-data/1.7.0/reference).
  - [Document Management](https://developer.datev.de/en/product-detail/document-management/2.3.0/reference)
  - [Order Management](https://developer.datev.de/en/product-detail/order-management/1.4.7/reference)
  - [Identity & Access Management – User Administration](https://developer.datev.de/en/product-detail/identity-and-access-management-user-administration/1.1.2/reference)

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the DATEV Accounting API to manage accounting data, fiscal years, and financial records.","capabilities":["Access DATEV Accounting API","Retrieve client information","Manage fiscal years","Handle accounts receivable","Process account postings","Manage accounting sequences","Filter and list client entries"],"authentication":"Email and Password with Client Instance ID","commonUseCases":["Automated financial data extraction","Accounting record synchronization","Client master data management","Automated invoice processing"],"limitations":["Requires Klardaten DATEVconnect Gateway setup","Requires a valid Klardaten account and DATEV instance ID","Requires n8n restart after installation"],"relatedNodes":["Klardaten DATEVconnect: Master Data","Klardaten DATEVconnect: Document Management","Klardaten DATEVconnect: Order Management","Klardaten DATEVconnect: Identity & Access Management"]}


node_type: @klardaten/n8n-nodes-datevconnect.documentManagement
package_name: @klardaten/n8n-nodes-datevconnect
display_name: Klardaten DATEVconnect: Document Management
description: Interact with document management resources / DMS
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: johannespfeiffer
author_github_url: https://github.com/Klardaten/n8n-nodes-datevconnect.git
npm_package_name: @klardaten/n8n-nodes-datevconnect
npm_version: 1.0.13
community_fetched_at: 2026-07-14T14:40:33.615Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Document File",
          "value": "documentFile"
        },
        {
          "name": "Document State",
          "value": "documentState"
        },
        {
          "name": "Domain",
          "value": "domain"
        },
        {
          "name": "Individual Property",
          "value": "individualProperty"
        },
        {
          "name": "Individual Reference 1",
          "value": "individualReference1"
        },
        {
          "name": "Individual Reference 2",
          "value": "individualReference2"
        },
        {
          "name": "Info",
          "value": "info"
        },
        {
          "name": "Property Template",
          "value": "propertyTemplate"
        },
        {
          "name": "Secure Area",
          "value": "secureArea"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add Structure Item",
          "value": "addStructureItem",
          "action": "Add structure item",
          "description": "Add a structure item to a document"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a document",
          "description": "Create a new document"
        },
        {
          "name": "Create Dispatcher Information",
          "value": "createDispatcherInformation",
          "action": "Create dispatcher information",
          "description": "Create dispatcher information for a document"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a document",
          "description": "Delete a document"
        },
        {
          "name": "Delete Permanently",
          "value": "deletePermanently",
          "action": "Delete a document permanently",
          "description": "Permanently delete a document"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a document",
          "description": "Retrieve a specific document"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many documents",
          "description": "Retrieve a list of documents"
        },
        {
          "name": "Get Structure Item",
          "value": "getStructureItem",
          "action": "Get structure item",
          "description": "Get a specific structure item"
        },
        {
          "name": "Get Structure Items",
          "value": "getStructureItems",
          "action": "Get structure items",
          "description": "Get structure items of a document"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a document",
          "description": "Update a document"
        },
        {
          "name": "Update Structure Item",
          "value": "updateStructureItem",
          "action": "Update structure item",
          "description": "Update a structure item"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a document file",
          "description": "Get a document file"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload a document file",
          "description": "Upload a document file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "documentFile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many domains",
          "description": "Get many domains"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "domain"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many document states",
          "description": "Get many document states"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a document state",
          "description": "Get a specific document state"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a document state",
          "description": "Create a new document state"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "documentState"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many secure areas",
          "description": "Retrieve many secure areas"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "secureArea"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many property templates",
          "description": "Retrieve many property templates"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "propertyTemplate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many individual properties",
          "description": "Retrieve many individual properties"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "individualProperty"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many individual references 1",
          "description": "Retrieve many individual references 1"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create individual reference 1",
          "description": "Create a new individual reference 1"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "individualReference1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many individual references 2",
          "description": "Retrieve many individual references 2"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create individual reference 2",
          "description": "Create a new individual reference 2"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "individualReference2"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get system info",
          "description": "Get system information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "info"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Structure Item",
      "value": "addStructureItem",
      "action": "Add structure item",
      "description": "Add a structure item to a document",
      "resource": "document"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a document",
      "description": "Create a new document",
      "resource": "document"
    },
    {
      "name": "Create Dispatcher Information",
      "value": "createDispatcherInformation",
      "action": "Create dispatcher information",
      "description": "Create dispatcher information for a document",
      "resource": "document"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a document",
      "description": "Delete a document",
      "resource": "document"
    },
    {
      "name": "Delete Permanently",
      "value": "deletePermanently",
      "action": "Delete a document permanently",
      "description": "Permanently delete a document",
      "resource": "document"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a document",
      "description": "Retrieve a specific document",
      "resource": "document"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many documents",
      "description": "Retrieve a list of documents",
      "resource": "document"
    },
    {
      "name": "Get Structure Item",
      "value": "getStructureItem",
      "action": "Get structure item",
      "description": "Get a specific structure item",
      "resource": "document"
    },
    {
      "name": "Get Structure Items",
      "value": "getStructureItems",
      "action": "Get structure items",
      "description": "Get structure items of a document",
      "resource": "document"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a document",
      "description": "Update a document",
      "resource": "document"
    },
    {
      "name": "Update Structure Item",
      "value": "updateStructureItem",
      "action": "Update structure item",
      "description": "Update a structure item",
      "resource": "document"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a document file",
      "description": "Get a document file",
      "resource": "documentFile"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload a document file",
      "description": "Upload a document file",
      "resource": "documentFile"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many domains",
      "description": "Get many domains",
      "resource": "domain"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many document states",
      "description": "Get many document states",
      "resource": "documentState"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a document state",
      "description": "Get a specific document state",
      "resource": "documentState"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a document state",
      "description": "Create a new document state",
      "resource": "documentState"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many secure areas",
      "description": "Retrieve many secure areas",
      "resource": "secureArea"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many property templates",
      "description": "Retrieve many property templates",
      "resource": "propertyTemplate"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many individual properties",
      "description": "Retrieve many individual properties",
      "resource": "individualProperty"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many individual references 1",
      "description": "Retrieve many individual references 1",
      "resource": "individualReference1"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create individual reference 1",
      "description": "Create a new individual reference 1",
      "resource": "individualReference1"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many individual references 2",
      "description": "Retrieve many individual references 2",
      "resource": "individualReference2"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create individual reference 2",
      "description": "Create a new individual reference 2",
      "resource": "individualReference2"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get system info",
      "description": "Get system information",
      "resource": "info"
    }
  ]

npm_readme:
  # n8n DATEVConnect

  This repository provides custom n8n nodes for integrating with the DATEVconnect APIs. It requires the [Klardaten DATEVconnect Gateway](https://klardaten.com/products/datevconnect-gateway) to be set up.

  ## Available Nodes

  | Node                           | Description                                                                                                             |
  | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
  | `Accounting`                   | Access DATEV Accounting API for clients, fiscal years, accounts receivable, account postings, and accounting sequences. |
  | `MasterData`                   | Fetches master data entities from DATEV using the configured credentials.                                               |
  | `Document Management`          | Access DATEV Document Management or DMS for documents, structure items, property templates.                             |
  | `Order Management`             | Read and manage orders, suborders, invoices, fees, and related employee data.                                           |
  | `Identity & Access Management` | Manage SCIM-based DATEV IAM resources such as service configuration, schemas, users, and groups.                        |

  Refer to the node descriptions inside the n8n editor for input parameters and output structure.

  ## Installation

  ### Through the n8n UI

  1. Navigate to **Settings → Community Nodes → Install** inside your n8n instance.
  2. Enter `@klardaten/n8n-nodes-datevconnect` as the package name.
  3. Confirm the warning prompt and restart n8n so the nodes are registered.

  ### Manual (filesystem) installation

  ```bash
  cd ~/.n8n
  npm install @klardaten/n8n-nodes-datevconnect
  ```

  Copy or symlink the contents of the installed `node_modules/@klardaten/n8n-nodes-datevconnect/dist/{nodes,credentials}` directories into your `~/.n8n/custom/` folder if you prefer the legacy custom-nodes workflow, then restart n8n.

  ## Development

  1. **Install dependencies**
     ```bash
     npm install
     ```
  2. **Build** (optional during development; n8n compiles on the fly)
     ```bash
     npm run dev
     ```

  ## Required Credentials

  You need a Klardaten account and an instance id (of the DATEV instance you want to access).

  - `email`
  - `password`
  - `clientInstanceId`

  ## Running Tests

  Use the npm test runner to execute the automated tests:

  ```bash
  npm test
  ```

  ## Releasing

  Releases are prepared locally and published to npm from GitHub Actions with npm provenance.
  Do not run `npm publish` locally.

  1. Ensure the npm Trusted Publisher for `@klardaten/n8n-nodes-datevconnect` points to the `Klardaten/n8n-nodes-datevconnect` repository and the `publish.yml` workflow.
  2. Start from an up-to-date `main` branch.
     ```bash
     git switch main
     git pull
     ```
  3. Run the release command and follow the prompts.
     ```bash
     npm run release
     ```

  The local release command updates the version and changelog, creates the release commit and tag, pushes them, and creates the GitHub release. It does not publish to npm locally. The pushed version tag triggers the `Publish` workflow, which publishes the tagged package version to npm with the `latest` dist-tag and provenance.

  ## Usage in n8n

  1. Create a new workflow in n8n.
  2. Add the **Klardaten DATEVconnect: Master Data** or **Accounting** etc. node and choose the credential you configured.
  3. Select the desired operation (e.g., list client entries) and configure any filters.
  4. Execute the workflow or schedule it as part of a larger automation.

  All nodes authenticate using the stored credentials and interact with their respective DATEVconnect APIs.

  ## Additional Notes

  DATEV provides endpoint reference details under

  - [Accounting](https://developer.datev.de/en/product-detail/accounting/1.7.4/reference)
  - [Client Master Data](https://developer.datev.de/en/product-detail/client-master-data/1.7.0/reference).
  - [Document Management](https://developer.datev.de/en/product-detail/document-management/2.3.0/reference)
  - [Order Management](https://developer.datev.de/en/product-detail/order-management/1.4.7/reference)
  - [Identity & Access Management – User Administration](https://developer.datev.de/en/product-detail/identity-and-access-management-user-administration/1.1.2/reference)

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with DATEV Document Management (DMS) resources, allowing users to manage documents, structure items, and property templates within the DATEVconnect ecosystem.","capabilities":["Access DATEV Document Management resources","Retrieve document information","Manage structure items","Handle property templates","Integrate with DATEVconnect APIs"],"authentication":"API key required (via email, password, and clientInstanceId credentials)","commonUseCases":["Automated document retrieval and processing","Document structure management","Property template configuration","Integration with DATEV accounting workflows"],"limitations":["Requires Klardaten DATEVconnect Gateway setup","Requires valid Klardaten account and DATEV instance ID","Additional documentation for specific operations must be referenced in n8n editor"],"relatedNodes":["Klardaten DATEVconnect: Accounting","Klardaten DATEVconnect: MasterData","Klardaten DATEVconnect: Order Management","Klardaten DATEVconnect: Identity & Access Management"]}


node_type: @klardaten/n8n-nodes-datevconnect.identityAndAccessManagement
package_name: @klardaten/n8n-nodes-datevconnect
display_name: Klardaten DATEVconnect: Identity & Access
description: Work with DATEV Identity and Access Management (SCIM) endpoints
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: johannespfeiffer
author_github_url: https://github.com/Klardaten/n8n-nodes-datevconnect.git
npm_package_name: @klardaten/n8n-nodes-datevconnect
npm_version: 1.0.13
community_fetched_at: 2026-07-14T14:40:33.616Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "user",
      "options": [
        {
          "name": "Current User",
          "value": "currentUser"
        },
        {
          "name": "Group",
          "value": "group"
        },
        {
          "name": "Resource Type",
          "value": "resourceType"
        },
        {
          "name": "Schema",
          "value": "schema"
        },
        {
          "name": "Service Provider Config",
          "value": "serviceProviderConfig"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get service provider config",
          "description": "Retrieve the SCIM service provider configuration"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "serviceProviderConfig"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many resource types",
          "description": "Retrieve the available SCIM resource types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "resourceType"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many schemas",
          "description": "List the supported SCIM schemas"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get schema",
          "description": "Retrieve a single SCIM schema by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "schema"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a user",
          "description": "Create a new DATEV IAM user"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a user",
          "description": "Delete a DATEV IAM user"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user",
          "description": "Retrieve a single DATEV IAM user"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many users",
          "description": "List DATEV IAM users"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a user",
          "description": "Update an existing DATEV IAM user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get current user",
          "description": "Fetch the currently authenticated DATEV IAM user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "currentUser"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a group",
          "description": "Create a new DATEV IAM group"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a group",
          "description": "Delete a DATEV IAM group"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a group",
          "description": "Retrieve a single DATEV IAM group"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many groups",
          "description": "List DATEV IAM groups"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a group",
          "description": "Update an existing DATEV IAM group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "group"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get service provider config",
      "description": "Retrieve the SCIM service provider configuration",
      "resource": "serviceProviderConfig"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many resource types",
      "description": "Retrieve the available SCIM resource types",
      "resource": "resourceType"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many schemas",
      "description": "List the supported SCIM schemas",
      "resource": "schema"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get schema",
      "description": "Retrieve a single SCIM schema by ID",
      "resource": "schema"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a user",
      "description": "Create a new DATEV IAM user",
      "resource": "user"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a user",
      "description": "Delete a DATEV IAM user",
      "resource": "user"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a user",
      "description": "Retrieve a single DATEV IAM user",
      "resource": "user"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many users",
      "description": "List DATEV IAM users",
      "resource": "user"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a user",
      "description": "Update an existing DATEV IAM user",
      "resource": "user"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get current user",
      "description": "Fetch the currently authenticated DATEV IAM user",
      "resource": "currentUser"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a group",
      "description": "Create a new DATEV IAM group",
      "resource": "group"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a group",
      "description": "Delete a DATEV IAM group",
      "resource": "group"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a group",
      "description": "Retrieve a single DATEV IAM group",
      "resource": "group"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many groups",
      "description": "List DATEV IAM groups",
      "resource": "group"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a group",
      "description": "Update an existing DATEV IAM group",
      "resource": "group"
    }
  ]

npm_readme:
[cell repeats an earlier one in this file: 4376 characters]

ai_documentation_summary:
  {"purpose":"This n8n node enables management of SCIM-based Identity and Access Management (IAM) resources within DATEVconnect, including service configuration, schemas, users, and groups.","capabilities":["Manage SCIM-based DATEV IAM resources","Configure service settings","Manage user accounts","Manage group memberships","Handle schema definitions"],"authentication":"API key required (via email, password, and clientInstanceId credentials)","commonUseCases":["Automated user provisioning and deprovisioning in DATEV","Managing group access policies","Syncing user schemas between DATEV and external systems"],"limitations":["Requires a Klardaten DATEVconnect Gateway to be set up","Requires a valid Klardaten account and DATEV instance ID","Relies on external DATEV API endpoints which may have rate limits or version constraints"],"relatedNodes":["Klardaten DATEVconnect: Accounting","Klardaten DATEVconnect: MasterData","Klardaten DATEVconnect: Document Management","Klardaten DATEVconnect: Order Management"]}


node_type: @klardaten/n8n-nodes-datevconnect.orderManagement
package_name: @klardaten/n8n-nodes-datevconnect
display_name: Klardaten DATEVconnect: Order Management
description: Interact with order management resources
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: johannespfeiffer
author_github_url: https://github.com/Klardaten/n8n-nodes-datevconnect.git
npm_package_name: @klardaten/n8n-nodes-datevconnect
npm_version: 1.0.13
community_fetched_at: 2026-07-14T14:40:33.617Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "order",
      "options": [
        {
          "name": "Client Group",
          "value": "clientGroup"
        },
        {
          "name": "Cost Center",
          "value": "costCenter"
        },
        {
          "name": "Employee",
          "value": "employee"
        },
        {
          "name": "Fee",
          "value": "fee"
        },
        {
          "name": "Invoice",
          "value": "invoice"
        },
        {
          "name": "Order",
          "value": "order"
        },
        {
          "name": "Order Type",
          "value": "orderType"
        },
        {
          "name": "Self Client",
          "value": "selfClient"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create Expense Posting",
          "value": "createExpensePosting",
          "action": "Create expense postings",
          "description": "Create expense postings for a suborder"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an order",
          "description": "Retrieve a specific order"
        },
        {
          "name": "Get Billing States (All)",
          "value": "getSubordersStateBillingAll",
          "action": "Get billing states",
          "description": "Retrieve billing state dates across suborders"
        },
        {
          "name": "Get Billing States (Order)",
          "value": "getSubordersStateBilling",
          "action": "Get billing states",
          "description": "Retrieve billing state dates for an order's suborders"
        },
        {
          "name": "Get Cost Items (All)",
          "value": "getCostItemsAll",
          "action": "Get cost items",
          "description": "Retrieve cost items across orders"
        },
        {
          "name": "Get Cost Items (Order)",
          "value": "getCostItemsForOrder",
          "action": "Get order cost items",
          "description": "Retrieve planned cost items for an order"
        },
        {
          "name": "Get Expense Postings (All)",
          "value": "getExpensePostingsAll",
          "action": "Get expense postings",
          "description": "Retrieve expense postings across orders"
        },
        {
          "name": "Get Expense Postings (Order)",
          "value": "getExpensePostingsForOrder",
          "action": "Get order expense postings",
          "description": "Retrieve expense postings for an order"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many orders",
          "description": "Retrieve orders"
        },
        {
          "name": "Get Monthly Values (All)",
          "value": "getMonthlyValuesAll",
          "action": "Get monthly values",
          "description": "Retrieve monthly values across orders"
        },
        {
          "name": "Get Monthly Values (Order)",
          "value": "getMonthlyValuesForOrder",
          "action": "Get order monthly values",
          "description": "Retrieve monthly values for a specific order"
        },
        {
          "name": "Get State Dates (All)",
          "value": "getStateWorkAll",
          "action": "Get order state dates",
          "description": "Retrieve state dates across orders"
        },
        {
          "name": "Get State Dates (Order)",
          "value": "getStateWork",
          "action": "Get order state dates",
          "description": "Retrieve state dates for an order"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an order",
          "description": "Completely overwrite an order"
        },
        {
          "name": "Update Suborder",
          "value": "updateSuborder",
          "action": "Update a suborder",
          "description": "Completely overwrite a suborder"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "order"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many order types",
          "description": "Retrieve order types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "orderType"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a client group",
          "description": "Retrieve the group of a client"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "clientGroup"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many invoices",
          "description": "Retrieve invoices"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an invoice",
          "description": "Retrieve a specific invoice"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCapacities",
      "options": [
        {
          "name": "Get Capacities",
          "value": "getCapacities",
          "action": "Get employee capacities",
          "description": "Retrieve employee capacities"
        },
        {
          "name": "Get Charge Rates",
          "value": "getChargeRates",
          "action": "Get charge rates",
          "description": "Retrieve charge rates"
        },
        {
          "name": "Get Cost Rates",
          "value": "getCostRates",
          "action": "Get employee cost rates",
          "description": "Retrieve employees with cost rates"
        },
        {
          "name": "Get Employees With Group",
          "value": "getWithGroup",
          "action": "Get employees with group",
          "description": "Retrieve employees including their group"
        },
        {
          "name": "Get Qualifications",
          "value": "getQualifications",
          "action": "Get employee qualifications",
          "description": "Retrieve employees with qualifications"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "employee"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFees",
      "options": [
        {
          "name": "Get Fees",
          "value": "getFees",
          "action": "Get fees",
          "description": "Retrieve fees"
        },
        {
          "name": "Get Fee Plans",
          "value": "getFeePlans",
          "action": "Get fee plans",
          "description": "Retrieve fee plans"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "fee"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many cost centers",
          "description": "Retrieve cost centers"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "costCenter"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many self clients",
          "description": "Retrieve self clients"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "selfClient"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Expense Posting",
      "value": "createExpensePosting",
      "action": "Create expense postings",
      "description": "Create expense postings for a suborder",
      "resource": "order"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an order",
      "description": "Retrieve a specific order",
      "resource": "order"
    },
    {
      "name": "Get Billing States (All)",
      "value": "getSubordersStateBillingAll",
      "action": "Get billing states",
      "description": "Retrieve billing state dates across suborders",
      "resource": "order"
    },
    {
      "name": "Get Billing States (Order)",
      "value": "getSubordersStateBilling",
      "action": "Get billing states",
      "description": "Retrieve billing state dates for an order's suborders",
      "resource": "order"
    },
    {
      "name": "Get Cost Items (All)",
      "value": "getCostItemsAll",
      "action": "Get cost items",
      "description": "Retrieve cost items across orders",
      "resource": "order"
    },
    {
      "name": "Get Cost Items (Order)",
      "value": "getCostItemsForOrder",
      "action": "Get order cost items",
      "description": "Retrieve planned cost items for an order",
      "resource": "order"
    },
    {
      "name": "Get Expense Postings (All)",
      "value": "getExpensePostingsAll",
      "action": "Get expense postings",
      "description": "Retrieve expense postings across orders",
      "resource": "order"
    },
    {
      "name": "Get Expense Postings (Order)",
      "value": "getExpensePostingsForOrder",
      "action": "Get order expense postings",
      "description": "Retrieve expense postings for an order",
      "resource": "order"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many orders",
      "description": "Retrieve orders",
      "resource": "order"
    },
    {
      "name": "Get Monthly Values (All)",
      "value": "getMonthlyValuesAll",
      "action": "Get monthly values",
      "description": "Retrieve monthly values across orders",
      "resource": "order"
    },
    {
      "name": "Get Monthly Values (Order)",
      "value": "getMonthlyValuesForOrder",
      "action": "Get order monthly values",
      "description": "Retrieve monthly values for a specific order",
      "resource": "order"
    },
    {
      "name": "Get State Dates (All)",
      "value": "getStateWorkAll",
      "action": "Get order state dates",
      "description": "Retrieve state dates across orders",
      "resource": "order"
    },
    {
      "name": "Get State Dates (Order)",
      "value": "getStateWork",
      "action": "Get order state dates",
      "description": "Retrieve state dates for an order",
      "resource": "order"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an order",
      "description": "Completely overwrite an order",
      "resource": "order"
    },
    {
      "name": "Update Suborder",
      "value": "updateSuborder",
      "action": "Update a suborder",
      "description": "Completely overwrite a suborder",
      "resource": "order"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many order types",
      "description": "Retrieve order types",
      "resource": "orderType"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a client group",
      "description": "Retrieve the group of a client",
      "resource": "clientGroup"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many invoices",
      "description": "Retrieve invoices",
      "resource": "invoice"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an invoice",
      "description": "Retrieve a specific invoice",
      "resource": "invoice"
    },
    {
      "name": "Get Capacities",
      "value": "getCapacities",
      "action": "Get employee capacities",
      "description": "Retrieve employee capacities",
      "resource": "employee"
    },
    {
      "name": "Get Charge Rates",
      "value": "getChargeRates",
      "action": "Get charge rates",
      "description": "Retrieve charge rates",
      "resource": "employee"
    },
    {
      "name": "Get Cost Rates",
      "value": "getCostRates",
      "action": "Get employee cost rates",
      "description": "Retrieve employees with cost rates",
      "resource": "employee"
    },
    {
      "name": "Get Employees With Group",
      "value": "getWithGroup",
      "action": "Get employees with group",
      "description": "Retrieve employees including their group",
      "resource": "employee"
    },
    {
      "name": "Get Qualifications",
      "value": "getQualifications",
      "action": "Get employee qualifications",
      "description": "Retrieve employees with qualifications",
      "resource": "employee"
    },
    {
      "name": "Get Fees",
      "value": "getFees",
      "action": "Get fees",
      "description": "Retrieve fees",
      "resource": "fee"
    },
    {
      "name": "Get Fee Plans",
      "value": "getFeePlans",
      "action": "Get fee plans",
      "description": "Retrieve fee plans",
      "resource": "fee"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many cost centers",
      "description": "Retrieve cost centers",
      "resource": "costCenter"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many self clients",
      "description": "Retrieve self clients",
      "resource": "selfClient"
    }
  ]

npm_readme:
[cell repeats an earlier one in this file: 4376 characters]

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with DATEVconnect APIs to read and manage orders, suborders, invoices, fees, and related employee data.","capabilities":["Read orders","Manage suborders","Manage invoices","Manage fees","Access related employee data","Filter orders based on configured parameters"],"authentication":"Password-based (email, password, clientInstanceId)","commonUseCases":["Automating invoice processing workflows","Syncing order data between DATEV and external systems","Automated fee management and reporting"],"limitations":["Requires a Klardaten DATEVconnect Gateway setup","Requires a Klardaten account and valid DATEV instance ID","Authentication requires email and password (no API key mentioned)"],"relatedNodes":["Accounting","MasterData","Document Management","Identity & Access Management"]}


node_type: n8n-nodes-softr.softrTrigger
package_name: n8n-nodes-softr
display_name: Softr Trigger
description: Triggers when a Softr record is created or updated
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: dariusz-softr
author_github_url: https://github.com/softr-io/n8n-softr.git
npm_package_name: n8n-nodes-softr
npm_version: 1.0.8
community_fetched_at: 2026-07-14T14:40:33.619Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-softr

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

  Softr is a no-code platform that allows you to build web applications and websites. It provides a user-friendly interface for creating and managing applications without needing to write code.

  [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

  ### Softr Databases

  Triggers

  * `On New Record`: Triggered when a new record is created in a Softr database.
  * `On Updated Record`: Triggered when an existing record in a Softr database is updated.

  Actions:

  * `Create Record`: Creates a new record in a specified Softr database.
  * `Update Record`: Updates an existing record in a specified Softr database.
  * `Delete Record`: Deletes a record from a specified Softr database.
  * `Get Record`: Retrieves a specific record from a specified Softr database.
  * `Get All Records`: Retrieves all records from a specified Softr database.
  * `Search Records`: Searches for records in a specified Softr database based on a search query.

  ### Softr Application Users

  * `Create Application User`: Creates a new user in a specified Softr application.
  * `Delete Application User`: Deletes a user from a specified Softr application.

  ## Credentials

  To use Softr, you must authenticate with your API Key. You can find your API Key in your [Softr account settings](https://studio.softr.io/user/apisettings).

  More details on how to find your API Key can be found in the [Softr documentation](https://docs.softr.io/softr-api/tTFQ5vSAUozj5MsKixMH8C/api-setup-and-endpoints/j1PrTZxt7pv3iZCnZ5Fp19).

  ## Compatibility

  Implemented and tested against n8n version 1.103.2.

  ## Usage

  Softr node uses Softr Public API under the hood. You can find more information about the API in the [Softr API documentation](https://docs.softr.io/softr-api/tTFQ5vSAUozj5MsKixMH8C/softr-database-api/5aZs45abxPkQ4dURKFwRGF).

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Softr API documentation](https://docs.softr.io/softr-api/tTFQ5vSAUozj5MsKixMH8C/softr-database-api/5aZs45abxPkQ4dURKFwRGF)

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows when Softr database records are created or updated, and allows managing Softr database records and application users.","capabilities":["Trigger on new record creation","Trigger on record update","Create new database records","Update existing database records","Delete database records","Retrieve specific database records","Retrieve all database records","Search database records","Create application users","Delete application users"],"authentication":"API Key required","commonUseCases":["Automate database updates when users modify content in Softr","Sync Softr data to external systems upon record changes","Manage user accounts in Softr applications","Create or update records based on external triggers"],"limitations":["Uses Softr Public API under the hood","Requires valid Softr API Key from account settings"],"relatedNodes":["n8n-nodes-softr.softrDatabase","n8n-nodes-softr.softrApplicationUser"]}


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

updated_at: 2026-07-14 14:40:33
author_name: maciejw94
author_github_url: https://github.com/Narf-AI/n8n-scrapingfish.git
npm_package_name: n8n-nodes-scrapingfish
npm_version: 0.1.3
community_fetched_at: 2026-07-14T14:40:33.620Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-scrapingfish

  This is an n8n community node for [Scrapingfish](https://scrapingfish.com/), a web scraping API. It allows you to scrape web pages, render JavaScript, and extract structured data directly within 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)
  [Resources](#resources)

  ## Installation

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

  ## Operations

  This node provides a single operation to scrape a URL with various options:

  - **URL**: The target URL to scrape.
  - **Render JS**: Enable to render JavaScript on the page.
  - **Additional Fields**:
    - **Extraction Rules**: Define CSS selectors to extract structured JSON data.
    - **JS Scenario**: Execute a sequence of browser actions.
    - **Headers**: Forward custom HTTP headers.
    - **Timeouts**: Configure request, trial, and rendering timeouts.

  ## Credentials

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

  1. Sign up at [scrapingfish.com](https://scrapingfish.com/) to get your API key.
  2. In your n8n instance, go to **Credentials > New**.
  3. Search for "Scrapingfish API" and add your API key.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Scrapingfish API Documentation](https://scrapingfish.com/docs)

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"A community node that interacts with the Scrapingfish API to scrape web pages, render JavaScript, and extract structured data within n8n workflows.","capabilities":["Scrape any URL","Render JavaScript on the page","Extract structured JSON data using CSS selectors","Execute custom browser actions via JS scenarios","Forward custom HTTP headers","Configure request, trial, and rendering timeouts"],"authentication":"API key required","commonUseCases":["Extracting dynamic content from websites","Parsing e-commerce product data","Monitoring price changes across multiple sites","Automating data collection from JavaScript-heavy pages"],"limitations":["Requires a paid Scrapingfish API key","Limited to Scrapingfish's supported domains and features","No built-in error handling for failed extractions"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code"]}


node_type: n8n-nodes-graphorlm.graphorTool
package_name: n8n-nodes-graphorlm
display_name: Graphor Tool
description: Ask questions about documents using Graphor AI - designed for use with AI Agents
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

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

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

  This is an n8n community node that lets you interact with [Graphor](https://graphorlm.com) - an intelligent document processing platform with RAG pipelines, document chat, and data extraction capabilities.

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

  ## Installation

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

  ### npm

  ```bash
  npm install n8n-nodes-graphorlm
  ```

  ### n8n Desktop/Cloud

  1. Go to **Settings** > **Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-graphorlm` and agree to the risks
  4. Click **Install**

  ## Nodes

  This package includes one regular node:

  1. **Graphor** - Full-featured node with all operations

  The Graphor node can be used as a tool with n8n AI Agents (like the AI Agent node with OpenAI, Anthropic, etc.).

  ## Operations

  ### Chat
  - **Ask Question**: Ask questions about your documents using natural language with conversational memory support

  ### Extraction
  - **Extract Data**: Extract structured data from documents using JSON Schema definitions

  ### Retrieval
  - **Retrieve Chunks**: Retrieve relevant document chunks using semantic search for custom RAG workflows

  ### Source
  - **List**: List all sources in your project
  - **Upload File**: Ingest a file (PDF, DOCX, images, audio, video) and return a `build_id`
  - **Upload From URL**: Ingest content from a web page URL and return a `build_id`
  - **Upload From GitHub**: Ingest content from a public GitHub repository and return a `build_id`
  - **Upload From YouTube**: Ingest content from a YouTube video and return a `build_id`
  - **Get Build Status**: Poll an async ingest or reprocess build until it returns a `file_id`
  - **Process**: Reprocess an existing source by `file_id`
  - **Get Elements**: Get parsed elements from a processed source by `file_id`
  - **Delete**: Delete a source from your project by `file_id`

  ## Credentials

  To use this node, you need a Graphor API token:

  1. Log in to your [Graphor account](https://app.graphorlm.com)
  2. Go to **Settings** > **API Tokens**
  3. Create a new API token
  4. Copy the token (it starts with `grlm_`)

  ## Supported File Types

  - **Documents**: PDF, DOC, DOCX, ODT, TXT, MD, HTML
  - **Presentations**: PPT, PPTX
  - **Spreadsheets**: CSV, TSV, XLS, XLSX
  - **Images**: PNG, JPG, JPEG, TIFF, BMP, HEIC
  - **Audio**: MP3, WAV, M4A, OGG, FLAC
  - **Video**: MP4, MOV, AVI, MKV, WEBM

  ## Processing Methods

  | Method | Description |
  |--------|-------------|
  | **Fast** | Fast processing with heuristic classification. No OCR. |
  | **Balanced** | OCR-based extraction with structure classification. |
  | **Accurate** | Fine-tuned model for highest accuracy. |
  | **Agentic** | Highest accuracy for complex layouts, tables, and diagrams. |

  ## Compatibility

  - n8n version 1.0.0 or later
  - Node.js 18.0.0 or later

  ## Resources

  - [Graphor Introduction](https://docs.graphorlm.com/introduction)
  - [Graphor Documentation](https://docs.graphorlm.com)
  - [Graphor API Reference](https://docs.graphorlm.com/api-reference/overview)
  - [API Tokens Guide](https://docs.graphorlm.com/guides/api-tokens)
  - [Data Ingestion Guide](https://docs.graphorlm.com/guides/data-ingestion)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"A n8n community node that enables AI agents to interact with Graphor AI for document Q&A, data extraction, and document processing.","capabilities":["Ask natural language questions about documents with conversational memory","Extract structured data from documents using JSON Schema definitions","List and run deployed RAG flows","Deploy flows to make them accessible via API","List and manage document sources","Upload files from local disk, URLs, GitHub, and YouTube","Process documents with multiple AI methods (Basic, Hi-Res, Hi-Res FT, MAI, GraphorLM)","Retrieve structured elements from processed sources","Delete sources from the project"],"authentication":"API key required (Graphor API token starting with 'grlm_')","commonUseCases":["AI agent workflows for document Q&A","Automated data extraction from various document formats","Integrating RAG pipelines into n8n workflows","Processing and analyzing uploaded documents programmatically"],"limitations":["Requires a paid Graphor account and API token","Limited to public GitHub repositories (private repos not supported)","Only supports public YouTube videos"],"relatedNodes":["n8n AI Agent node","n8n HTTP Request node","n8n Code node","n8n File node"]}


node_type: n8n-nodes-graphorlm.graphor
package_name: n8n-nodes-graphorlm
display_name: Graphor
description: Interact with Graphor API for document processing, RAG, and AI-powered document chat
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: thiagohirano
author_github_url: https://github.com/thiagohirano/
npm_package_name: n8n-nodes-graphorlm
npm_version: 0.1.28
community_fetched_at: 2026-07-14T14:40:33.622Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Chat",
          "value": "chat",
          "description": "Ask questions about your documents"
        },
        {
          "name": "Extraction",
          "value": "extraction",
          "description": "Extract structured data from documents"
        },
        {
          "name": "Retrieval",
          "value": "retrieval",
          "description": "Retrieve relevant chunks using semantic search"
        },
        {
          "name": "Source",
          "value": "source",
          "description": "Manage document sources"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "askQuestion",
      "options": [
        {
          "name": "Ask Question",
          "value": "askQuestion",
          "action": "Ask a question about your documents",
          "description": "Ask a question about your documents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "extractData",
      "options": [
        {
          "name": "Extract Data",
          "value": "extractData",
          "action": "Extract structured data from documents",
          "description": "Extract structured data from documents using JSON Schema"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "extraction"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "retrieveChunks",
      "options": [
        {
          "name": "Retrieve Chunks",
          "value": "retrieveChunks",
          "action": "Retrieve relevant document chunks",
          "description": "Retrieve relevant document chunks using semantic search"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "retrieval"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get Build Status",
          "value": "getBuildStatus",
          "action": "Get build status",
          "description": "Poll the status of an async ingestion or reprocess build"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a source",
          "description": "Delete a source from your project"
        },
        {
          "name": "Get Elements",
          "value": "getElements",
          "action": "Get source elements",
          "description": "Get structured elements from a processed source"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all sources",
          "description": "List all sources in your project"
        },
        {
          "name": "Process",
          "value": "process",
          "action": "Reprocess a source",
          "description": "Reprocess an existing source with a different parsing method"
        },
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload a file",
          "description": "Upload a file to your project"
        },
        {
          "name": "Upload From GitHub",
          "value": "uploadGithub",
          "action": "Upload from Git Hub",
          "description": "Upload content from a GitHub repository"
        },
        {
          "name": "Upload From YouTube",
          "value": "uploadYoutube",
          "action": "Upload from YouTube",
          "description": "Upload content from a YouTube video"
        },
        {
          "name": "Upload From URL",
          "value": "uploadUrl",
          "action": "Upload from URL",
          "description": "Upload content from a web page URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "source"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Ask Question",
      "value": "askQuestion",
      "action": "Ask a question about your documents",
      "description": "Ask a question about your documents",
      "resource": "chat"
    },
    {
      "name": "Extract Data",
      "value": "extractData",
      "action": "Extract structured data from documents",
      "description": "Extract structured data from documents using JSON Schema",
      "resource": "extraction"
    },
    {
      "name": "Retrieve Chunks",
      "value": "retrieveChunks",
      "action": "Retrieve relevant document chunks",
      "description": "Retrieve relevant document chunks using semantic search",
      "resource": "retrieval"
    },
    {
      "name": "Get Build Status",
      "value": "getBuildStatus",
      "action": "Get build status",
      "description": "Poll the status of an async ingestion or reprocess build",
      "resource": "source"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a source",
      "description": "Delete a source from your project",
      "resource": "source"
    },
    {
      "name": "Get Elements",
      "value": "getElements",
      "action": "Get source elements",
      "description": "Get structured elements from a processed source",
      "resource": "source"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all sources",
      "description": "List all sources in your project",
      "resource": "source"
    },
    {
      "name": "Process",
      "value": "process",
      "action": "Reprocess a source",
      "description": "Reprocess an existing source with a different parsing method",
      "resource": "source"
    },
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload a file",
      "description": "Upload a file to your project",
      "resource": "source"
    },
    {
      "name": "Upload From GitHub",
      "value": "uploadGithub",
      "action": "Upload from Git Hub",
      "description": "Upload content from a GitHub repository",
      "resource": "source"
    },
    {
      "name": "Upload From YouTube",
      "value": "uploadYoutube",
      "action": "Upload from YouTube",
      "description": "Upload content from a YouTube video",
      "resource": "source"
    },
    {
      "name": "Upload From URL",
      "value": "uploadUrl",
      "action": "Upload from URL",
      "description": "Upload content from a web page URL",
      "resource": "source"
    }
  ]

npm_readme:
  # n8n-nodes-graphorlm

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

  This is an n8n community node that lets you interact with [Graphor](https://graphorlm.com) - an intelligent document processing platform with RAG pipelines, document chat, and data extraction capabilities.

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

  ## Installation

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

  ### npm

  ```bash
  npm install n8n-nodes-graphorlm
  ```

  ### n8n Desktop/Cloud

  1. Go to **Settings** > **Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-graphorlm` and agree to the risks
  4. Click **Install**

  ## Nodes

  This package includes one regular node:

  1. **Graphor** - Full-featured node with all operations

  The Graphor node can be used as a tool with n8n AI Agents (like the AI Agent node with OpenAI, Anthropic, etc.).

  ## Operations

  ### Chat
  - **Ask Question**: Ask questions about your documents using natural language with conversational memory support

  ### Extraction
  - **Extract Data**: Extract structured data from documents using JSON Schema definitions

  ### Retrieval
  - **Retrieve Chunks**: Retrieve relevant document chunks using semantic search for custom RAG workflows

  ### Source
  - **List**: List all sources in your project
  - **Upload File**: Ingest a file (PDF, DOCX, images, audio, video) and return a `build_id`
  - **Upload From URL**: Ingest content from a web page URL and return a `build_id`
  - **Upload From GitHub**: Ingest content from a public GitHub repository and return a `build_id`
  - **Upload From YouTube**: Ingest content from a YouTube video and return a `build_id`
  - **Get Build Status**: Poll an async ingest or reprocess build until it returns a `file_id`
  - **Process**: Reprocess an existing source by `file_id`
  - **Get Elements**: Get parsed elements from a processed source by `file_id`
  - **Delete**: Delete a source from your project by `file_id`

  ## Credentials

  To use this node, you need a Graphor API token:

  1. Log in to your [Graphor account](https://app.graphorlm.com)
  2. Go to **Settings** > **API Tokens**
  3. Create a new API token
  4. Copy the token (it starts with `grlm_`)

  ## Supported File Types

  - **Documents**: PDF, DOC, DOCX, ODT, TXT, MD, HTML
  - **Presentations**: PPT, PPTX
  - **Spreadsheets**: CSV, TSV, XLS, XLSX
  - **Images**: PNG, JPG, JPEG, TIFF, BMP, HEIC
  - **Audio**: MP3, WAV, M4A, OGG, FLAC
  - **Video**: MP4, MOV, AVI, MKV, WEBM

  ## Processing Methods

  | Method | Description |
  |--------|-------------|
  | **Fast** | Fast processing with heuristic classification. No OCR. |
  | **Balanced** | OCR-based extraction with structure classification. |
  | **Accurate** | Fine-tuned model for highest accuracy. |
  | **Agentic** | Highest accuracy for complex layouts, tables, and diagrams. |

  ## Compatibility

  - n8n version 1.0.0 or later
  - Node.js 18.0.0 or later

  ## Resources

  - [Graphor Introduction](https://docs.graphorlm.com/introduction)
  - [Graphor Documentation](https://docs.graphorlm.com)
  - [Graphor API Reference](https://docs.graphorlm.com/api-reference/overview)
  - [API Tokens Guide](https://docs.graphorlm.com/guides/api-tokens)
  - [Data Ingestion Guide](https://docs.graphorlm.com/guides/data-ingestion)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Graphor API for document processing, RAG pipelines, and AI-powered document chat.","capabilities":["Ask questions about documents using natural language with conversational memory","Extract structured data from documents using JSON Schema definitions","List and execute deployed RAG flows","Deploy flows to make them accessible via API","List and manage document sources","Upload files from local disk, URLs, GitHub, and YouTube","Process documents with various methods (Basic, Hi-Res, Hi-Res FT, MAI, GraphorLM)","Retrieve structured elements from processed sources","Delete sources from projects"],"authentication":"API key required (Graphor API token starting with 'grlm_')","commonUseCases":["Document Q&A with conversational memory","Structured data extraction from PDFs and other documents","Document ingestion and processing for RAG applications","AI agent tool integration for document analysis"],"limitations":["Requires a paid Graphor account with API token access","Processing methods vary in complexity and resource requirements","Some advanced features may require GraphorLM-specific processing"],"relatedNodes":["n8n-nodes-core.aiAgent","n8n-nodes-core.httpRequest","n8n-nodes-core.code"]}


node_type: n8n-nodes-openmrs.openMrs
package_name: n8n-nodes-openmrs
display_name: OpenMRS
description: Interact with OpenMRS FHIR R4 API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: monfortbrian
author_github_url: https://github.com/monfortbrian/
npm_package_name: n8n-nodes-openmrs
npm_version: 1.3.6
community_fetched_at: 2026-07-14T14:40:33.623Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "patient",
      "options": [
        {
          "name": "Condition",
          "value": "condition"
        },
        {
          "name": "Custom API Call",
          "value": "customApiCall"
        },
        {
          "name": "Diagnostic Report",
          "value": "diagnosticReport"
        },
        {
          "name": "Encounter",
          "value": "encounter"
        },
        {
          "name": "Medication Statement",
          "value": "medicationStatement"
        },
        {
          "name": "Observation",
          "value": "observation"
        },
        {
          "name": "Patient",
          "value": "patient"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchByIdentifier",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a patient",
          "description": "Register a new patient"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a patient",
          "description": "Get a patient by UUID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many patients",
          "description": "Get many patients"
        },
        {
          "name": "Search by Identifier",
          "value": "searchByIdentifier",
          "action": "Search patient by identifier",
          "description": "Search patient by OpenMRS ID or National ID"
        },
        {
          "name": "Search by Name",
          "value": "searchByName",
          "action": "Search patient by name",
          "description": "Search patient by name (partial match supported)"
        },
        {
          "name": "Search by Phone",
          "value": "searchByPhone",
          "action": "Search patient by phone",
          "description": "Search patient by phone number"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "patient"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an encounter",
          "description": "Create a new encounter for a patient"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an encounter",
          "description": "Get an encounter by UUID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many encounters",
          "description": "Get many encounters for a patient"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "encounter"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a resource",
          "description": "Get a resource by UUID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many resources",
          "description": "Get many resources for a patient"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "observation",
            "diagnosticReport",
            "condition",
            "medicationStatement"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "customApiCall",
      "options": [
        {
          "name": "Custom API Call",
          "value": "customApiCall",
          "action": "Make custom API call",
          "description": "Make a custom API call to OpenMRS"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "customApiCall"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a patient",
      "description": "Register a new patient",
      "resource": "patient"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a patient",
      "description": "Get a patient by UUID",
      "resource": "patient"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many patients",
      "description": "Get many patients",
      "resource": "patient"
    },
    {
      "name": "Search by Identifier",
      "value": "searchByIdentifier",
      "action": "Search patient by identifier",
      "description": "Search patient by OpenMRS ID or National ID",
      "resource": "patient"
    },
    {
      "name": "Search by Name",
      "value": "searchByName",
      "action": "Search patient by name",
      "description": "Search patient by name (partial match supported)",
      "resource": "patient"
    },
    {
      "name": "Search by Phone",
      "value": "searchByPhone",
      "action": "Search patient by phone",
      "description": "Search patient by phone number",
      "resource": "patient"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an encounter",
      "description": "Create a new encounter for a patient",
      "resource": "encounter"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an encounter",
      "description": "Get an encounter by UUID",
      "resource": "encounter"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many encounters",
      "description": "Get many encounters for a patient",
      "resource": "encounter"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a resource",
      "description": "Get a resource by UUID",
      "resource": "observation"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many resources",
      "description": "Get many resources for a patient",
      "resource": "observation"
    },
    {
      "name": "Custom API Call",
      "value": "customApiCall",
      "action": "Make custom API call",
      "description": "Make a custom API call to OpenMRS",
      "resource": "customApiCall"
    }
  ]

npm_readme:
  # n8n-nodes-openmrs

  [![npm](https://img.shields.io/npm/v/n8n-nodes-openmrs)](https://www.npmjs.com/package/n8n-nodes-openmrs)
  [![npm downloads](https://img.shields.io/npm/dt/n8n-nodes-openmrs)](https://www.npmjs.com/package/n8n-nodes-openmrs)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

  n8n community node for [OpenMRS](https://openmrs.org) FHIR R4 API. Register patients, create encounters, search clinical records, and connect OpenMRS to DHIS2, RapidPro, and other health systems.

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

  ---

  ## Installation

  **Via n8n UI:** Settings → Community Nodes → search `n8n-nodes-openmrs` → Install

  **Via npm:**
  ```bash
  npm install n8n-nodes-openmrs
  ```

  ---

  ## Credentials

  | Field    | Description |
  |----------|-------------|
  | Base URL | Your OpenMRS instance including `/openmrs` (e.g. `https://o3.openmrs.org/openmrs`) |
  | Username | OpenMRS username |
  | Password | OpenMRS password |

  Demo: `https://o3.openmrs.org/openmrs` username `admin`, password `Admin123`

  ---

  ## Resources & Operations

  | Resource             | Operations |
  |----------------------|------------|
  | Patient              | Create, Get, Get Many, Search by Identifier, Search by Name, Search by Phone |
  | Encounter            | Create, Get, Get Many |
  | Observation          | Get, Get Many |
  | Diagnostic Report    | Get, Get Many |
  | Condition            | Get, Get Many |
  | Medication Statement | Get, Get Many |
  | Custom API Call      | Any method, any FHIR endpoint |

  ---

  ## Example: Register a Patient

  ```json
  {
    "resourceType": "Patient",
    "identifier": [{ "system": "http://openmrs.org/identifier", "value": "CASE-001" }],
    "name": [{ "family": "Nkurunziza", "given": ["Brian"] }],
    "gender": "male",
    "birthDate": "1995-03-15",
    "telecom": [{ "system": "phone", "value": "+250788123456" }]
  }
  ```

  Returns the created FHIR Patient resource including the assigned OpenMRS UUID.

  ---

  ## Example: Create an Encounter

  ```json
  {
    "resourceType": "Encounter",
    "status": "finished",
    "class": { "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", "code": "AMB" },
    "subject": { "reference": "Patient/PATIENT_UUID" },
    "period": { "start": "2026-06-02T08:00:00+00:00", "end": "2026-06-02T09:00:00+00:00" }
  }
  ```

  Replace `PATIENT_UUID` with the UUID returned from Patient Create.

  ---

  ## Compatibility

  - **OpenMRS:** 2.3+ with FHIR2 module enabled
  - **n8n:** 1.0+
  - **Node.js:** 22+

  ---

  ## API Reference

  ```
  POST /ws/fhir2/R4/Patient
  GET  /ws/fhir2/R4/Patient/{uuid}
  GET  /ws/fhir2/R4/Patient?identifier={id}
  GET  /ws/fhir2/R4/Patient?name={name}
  GET  /ws/fhir2/R4/Patient?telecom={phone}
  POST /ws/fhir2/R4/Encounter
  GET  /ws/fhir2/R4/Encounter/{uuid}
  GET  /ws/fhir2/R4/Encounter?patient={uuid}&_count=50
  GET  /ws/fhir2/R4/Observation?patient={uuid}&_count=50
  GET  /ws/fhir2/R4/DiagnosticReport?patient={uuid}&_count=50
  GET  /ws/fhir2/R4/Condition?patient={uuid}&_count=50
  GET  /ws/fhir2/R4/MedicationStatement?patient={uuid}&_count=50
  ```

  ---

  ## Resources

  - [OpenMRS Documentation](https://wiki.openmrs.org/)
  - [OpenMRS FHIR2 Module](https://wiki.openmrs.org/display/projects/FHIR+Module)
  - [OpenMRS REST API](https://rest.openmrs.org/)
  - [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)
  - [n8n-nodes-dhis2](https://www.npmjs.com/package/n8n-nodes-dhis2) DHIS2 integration
  - [n8n-nodes-rapidpro](https://www.npmjs.com/package/n8n-nodes-rapidpro) RapidPro messaging

  ---

  ## Contributing

  1. Fork the repository
  2. Create a feature branch: `git checkout -b feat/your-feature`
  3. Commit: `git commit -m 'feat(openmrs): your change'`
  4. Push and open a Pull Request

  ---

  ## Support

  - **Issues:** [GitHub Issues](https://github.com/monfortbrian/n8n-nodes-openmrs/issues)
  - **n8n Community:** [community.n8n.io](https://community.n8n.io/)

  ---

  ## License

  [MIT](LICENSE) © 2026 [Monfort Brian N. | 宁俊](https://github.com/monfortbrian)

  ---

  ## Acknowledgments

  Built to connect clinical systems to national health information infrastructure. Part of an open-source interoperability stack for outbreak response and healthcare orchestration across low-resource settings.

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the OpenMRS FHIR R4 API, facilitating healthcare workflow automation, patient data access, and clinical information retrieval.","capabilities":["Search patients by OpenMRS ID, National ID, Facility Number, Name, or Phone","Retrieve Patient demographics and identifiers","Access Encounter data for visit history tracking","Fetch Observation data for labs and vitals","Retrieve Diagnostic Reports for imaging and pathology","Access Condition data for diagnoses and comorbidities","Retrieve Medication Statements for treatment history","Execute custom FHIR API queries via HTTP methods","Support pagination for large datasets","Handle both OpenMRS 2.x and 3.x versions"],"authentication":"HTTP Basic Authentication (Username and Password)","commonUseCases":["Patient admission dashboard creation","Lost-to-follow-up recovery workflows","Disease surveillance and outbreak tracking","Lab turnaround time monitoring","HIV/TB treatment adherence tracking"],"limitations":["Requires valid OpenMRS FHIR R4 API credentials","Base URL must include '/openmrs' path segment","Some advanced FHIR features may require custom API calls"],"relatedNodes":["n8n-nodes-code.code","n8n-nodes-http.request","n8n-nodes-sms.messenger","n8n-nodes-dhis2.dhis2"]}


node_type: n8n-nodes-deapi.deapi
package_name: n8n-nodes-deapi
display_name: deAPI
description: Generate images, videos, transcribe audio and boost prompts using deAPI AI models
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: deapi
author_github_url: https://github.com/deapi-ai/
npm_package_name: n8n-nodes-deapi
npm_version: 0.4.0
community_fetched_at: 2026-07-14T14:40:33.624Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "image",
      "options": [
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "Audio",
          "value": "audio"
        },
        {
          "name": "Prompt",
          "value": "prompt"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate an Image",
          "value": "generate",
          "action": "Generate an image",
          "description": "Generates an image from a text prompt"
        },
        {
          "name": "Remove Background",
          "value": "removeBackground",
          "action": "Remove background",
          "description": "Remove the background from an image"
        },
        {
          "name": "Upscale an Image",
          "value": "upscale",
          "action": "Upscale an image",
          "description": "Increase an image resolution x4"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate a Video",
          "value": "generate",
          "action": "Generate a video",
          "description": "Generates a video from text prompt or image(s)"
        },
        {
          "name": "Generate From Audio",
          "value": "generateFromAudio",
          "action": "Generate from audio",
          "description": "Generates a video conditioned on an audio file and text prompt"
        },
        {
          "name": "Replace Person in Video",
          "value": "replace",
          "action": "Replace person in video",
          "description": "Replaces a person in a video with a character from a reference image"
        },
        {
          "name": "Transcribe a Video",
          "value": "transcribe",
          "action": "Transcribe a video",
          "description": "Transcribes audio from a video to text"
        },
        {
          "name": "Upscale a Video",
          "value": "upscale",
          "action": "Upscale a video",
          "description": "Upscales a video using AI super-resolution models"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "cloneVoice",
      "options": [
        {
          "name": "Clone a Voice",
          "value": "cloneVoice",
          "action": "Clone a voice",
          "description": "Clones a voice from a reference audio and generates speech"
        },
        {
          "name": "Generate a Speech",
          "value": "generateSpeech",
          "action": "Generate a speech",
          "description": "Converts text to speech audio"
        },
        {
          "name": "Transcribe an Audio",
          "value": "transcribe",
          "action": "Transcribe an audio",
          "description": "Transcribes an audio file to text"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "boostImage",
      "options": [
        {
          "name": "Image Prompt Booster",
          "value": "boostImage",
          "action": "Image prompt booster",
          "description": "Optimizes a prompt for text-to-image generation"
        },
        {
          "name": "Video Prompt Booster",
          "value": "boostVideo",
          "action": "Video prompt booster",
          "description": "Optimizes a prompt for text-image-to-video generation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prompt"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate an Image",
      "value": "generate",
      "action": "Generate an image",
      "description": "Generates an image from a text prompt",
      "resource": "image"
    },
    {
      "name": "Remove Background",
      "value": "removeBackground",
      "action": "Remove background",
      "description": "Remove the background from an image",
      "resource": "image"
    },
    {
      "name": "Upscale an Image",
      "value": "upscale",
      "action": "Upscale an image",
      "description": "Increase an image resolution x4",
      "resource": "image"
    },
    {
      "name": "Generate a Video",
      "value": "generate",
      "action": "Generate a video",
      "description": "Generates a video from text prompt or image(s)",
      "resource": "video"
    },
    {
      "name": "Generate From Audio",
      "value": "generateFromAudio",
      "action": "Generate from audio",
      "description": "Generates a video conditioned on an audio file and text prompt",
      "resource": "video"
    },
    {
      "name": "Replace Person in Video",
      "value": "replace",
      "action": "Replace person in video",
      "description": "Replaces a person in a video with a character from a reference image",
      "resource": "video"
    },
    {
      "name": "Transcribe a Video",
      "value": "transcribe",
      "action": "Transcribe a video",
      "description": "Transcribes audio from a video to text",
      "resource": "video"
    },
    {
      "name": "Upscale a Video",
      "value": "upscale",
      "action": "Upscale a video",
      "description": "Upscales a video using AI super-resolution models",
      "resource": "video"
    },
    {
      "name": "Clone a Voice",
      "value": "cloneVoice",
      "action": "Clone a voice",
      "description": "Clones a voice from a reference audio and generates speech",
      "resource": "audio"
    },
    {
      "name": "Generate a Speech",
      "value": "generateSpeech",
      "action": "Generate a speech",
      "description": "Converts text to speech audio",
      "resource": "audio"
    },
    {
      "name": "Transcribe an Audio",
      "value": "transcribe",
      "action": "Transcribe an audio",
      "description": "Transcribes an audio file to text",
      "resource": "audio"
    },
    {
      "name": "Image Prompt Booster",
      "value": "boostImage",
      "action": "Image prompt booster",
      "description": "Optimizes a prompt for text-to-image generation",
      "resource": "prompt"
    },
    {
      "name": "Video Prompt Booster",
      "value": "boostVideo",
      "action": "Video prompt booster",
      "description": "Optimizes a prompt for text-image-to-video generation",
      "resource": "prompt"
    }
  ]

npm_readme:
  ![Banner image](https://github.com/user-attachments/assets/398eeb5d-cbf7-452c-96ae-825850c32730)

  # n8n-nodes-deapi

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

  This is an n8n community node that lets you use [deAPI](https://deapi.ai/) in your n8n workflows.

  deAPI is a unified API platform providing instant access to open-source AI models (FLUX, LTX Video, Whisper and more) through a decentralized GPU network. One API key to access thousands of GPUs with up to 20x lower costs.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-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 to configure the following credentials:

  | Field | Description |
  |-------|-------------|
  | **API Key** | Your deAPI API key. Get it from the [deAPI Quickstart Guide](https://docs.deapi.ai/quickstart#2-obtain-your-api-key). |
  | **Webhook Secret** | Secret used to verify webhook signatures. Configure it at [deAPI Webhook Settings](https://deapi.ai/settings/webhooks). |

  ## Operations

  ### Image

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Generate** | Generate an image from a text prompt | FLUX.1 Schnell, FLUX.2 Klein 4B, Z-Image Turbo |
  | **Remove Background** | Remove the background from an image | Ben2 |
  | **Upscale** | Increase image resolution by 4x | RealESRGAN x4 |

  ### Video

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Generate** | Generate a video from text or image(s) | LTX-Video 0.9.8, LTX-2 19B, LTX-2.3 22B |
  | **Generate From Audio** | Generate a video conditioned on an audio file and text prompt | LTX-2 22B |
  | **Replace Person in Video** | Replace a person in a video with a character from a reference image | Wan2.2-Animate 14B |
  | **Transcribe** | Transcribe video to text (YouTube, Twitch, X, Kick URLs or file upload) | Whisper Large V3 |
  | **Upscale** | Upscale video resolution using AI super-resolution | RealESRGAN Video, FlashVSR Tiny |

  ### Audio

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Clone a Voice** | Clone a voice from a reference audio and generate speech | Qwen3 TTS VoiceClone |
  | **Generate a Speech** | Convert text to speech audio | Kokoro, Chatterbox, Qwen3 TTS Custom Voice, Qwen3 TTS Voice Design |
  | **Transcribe** | Transcribe audio file to text | Whisper Large V3 |

  ### Prompt

  | Operation | Description |
  |-----------|-------------|
  | **Image Prompt Booster** | Optimize a prompt for text-to-image generation |
  | **Video Prompt Booster** | Optimize a prompt for text/image-to-video generation |

  ## How It Works

  Generation operations (image, video, transcription) use a webhook-based waiting pattern:

  1. The node submits a generation request to deAPI with a webhook URL
  2. The workflow pauses while deAPI processes the request
  3. When deAPI completes the job, it sends a webhook notification
  4. The workflow resumes with the generated content (binary file or text)

  This approach ensures efficient resource usage - the workflow doesn't actively poll for results.

  ## Compatibility

  - Tested with n8n version 2.3.4
  - Webhook-based operations require n8n to be accessible via HTTPS

  ## Example Workflow

  An example n8n workflow demonstrating all available operations is included in [`examples/deAPI_guide.json`](examples/deAPI_guide.json). Import it into your n8n instance to get started quickly:

  1. Download [`deAPI_guide.json`](https://raw.githubusercontent.com/deapi-ai/n8n-nodes-deapi/main/examples/deAPI_guide.json) from the GitHub repository
  2. In n8n, go to **Workflows** > **Import from File**
  3. Select the downloaded `deAPI_guide.json`
  4. Set up your deAPI credentials (API Key + Webhook Secret)
  5. Explore the example nodes and sticky notes for usage instructions

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [deAPI Documentation](https://docs.deapi.ai/)
  - [deAPI Website](https://deapi.ai/)
  - [GitHub Repository](https://github.com/deapi-ai/n8n-nodes-deapi)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n community node integrates deAPI AI models into workflows, enabling image/video generation, audio transcription, voice cloning, and prompt optimization.","capabilities":["Generate images from text prompts (FLUX.1, Z-Image Turbo)","Remove image backgrounds (Ben2)","Upscale images (RealESRGAN x4)","Generate videos from text or images (LTX-Video, LTX-2)","Generate videos from audio and text","Transcribe video to text (YouTube, Twitch, X, Kick, files)","Transcribe audio files to text","Clone voices for text-to-speech (Qwen3 TTS)","Generate speech from text (Kokoro, Chatterbox, Qwen3 TTS)","Boost image generation prompts"],"authentication":"API Key required (deAPI API key) and Webhook Secret (for webhook verification)","commonUseCases":["Automated content creation for social media","Video content generation from scripts or audio","Audio transcription for content analysis","Voice cloning for personalized audio","Image upscaling and background removal"],"limitations":["Requires n8n to be accessible via HTTPS for webhook-based operations","Uses webhook-based waiting pattern which pauses workflow during generation","Tested only with n8n version 2.3.4"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-binary.binary","n8n-nodes-webhook.webhook"]}


node_type: n8n-nodes-deapi.deapiTrigger
package_name: n8n-nodes-deapi
display_name: deAPI Trigger
description: Triggers workflows based on the status of the generation job from deAPI.
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: deapi
author_github_url: https://github.com/deapi-ai/
npm_package_name: n8n-nodes-deapi
npm_version: 0.4.0
community_fetched_at: 2026-07-14T14:40:33.625Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  ![Banner image](https://github.com/user-attachments/assets/398eeb5d-cbf7-452c-96ae-825850c32730)

  # n8n-nodes-deapi

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

  This is an n8n community node that lets you use [deAPI](https://deapi.ai/) in your n8n workflows.

  deAPI is a unified API platform providing instant access to open-source AI models (FLUX, LTX Video, Whisper and more) through a decentralized GPU network. One API key to access thousands of GPUs with up to 20x lower costs.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/sustainable-use-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 to configure the following credentials:

  | Field | Description |
  |-------|-------------|
  | **API Key** | Your deAPI API key. Get it from the [deAPI Quickstart Guide](https://docs.deapi.ai/quickstart#2-obtain-your-api-key). |
  | **Webhook Secret** | Secret used to verify webhook signatures. Configure it at [deAPI Webhook Settings](https://deapi.ai/settings/webhooks). |

  ## Operations

  ### Image

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Generate** | Generate an image from a text prompt | FLUX.1 Schnell, FLUX.2 Klein 4B, Z-Image Turbo |
  | **Remove Background** | Remove the background from an image | Ben2 |
  | **Upscale** | Increase image resolution by 4x | RealESRGAN x4 |

  ### Video

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Generate** | Generate a video from text or image(s) | LTX-Video 0.9.8, LTX-2 19B, LTX-2.3 22B |
  | **Generate From Audio** | Generate a video conditioned on an audio file and text prompt | LTX-2 22B |
  | **Replace Person in Video** | Replace a person in a video with a character from a reference image | Wan2.2-Animate 14B |
  | **Transcribe** | Transcribe video to text (YouTube, Twitch, X, Kick URLs or file upload) | Whisper Large V3 |
  | **Upscale** | Upscale video resolution using AI super-resolution | RealESRGAN Video, FlashVSR Tiny |

  ### Audio

  | Operation | Description | Models |
  |-----------|-------------|--------|
  | **Clone a Voice** | Clone a voice from a reference audio and generate speech | Qwen3 TTS VoiceClone |
  | **Generate a Speech** | Convert text to speech audio | Kokoro, Chatterbox, Qwen3 TTS Custom Voice, Qwen3 TTS Voice Design |
  | **Transcribe** | Transcribe audio file to text | Whisper Large V3 |

  ### Prompt

  | Operation | Description |
  |-----------|-------------|
  | **Image Prompt Booster** | Optimize a prompt for text-to-image generation |
  | **Video Prompt Booster** | Optimize a prompt for text/image-to-video generation |

  ## How It Works

  Generation operations (image, video, transcription) use a webhook-based waiting pattern:

  1. The node submits a generation request to deAPI with a webhook URL
  2. The workflow pauses while deAPI processes the request
  3. When deAPI completes the job, it sends a webhook notification
  4. The workflow resumes with the generated content (binary file or text)

  This approach ensures efficient resource usage - the workflow doesn't actively poll for results.

  ## Compatibility

  - Tested with n8n version 2.3.4
  - Webhook-based operations require n8n to be accessible via HTTPS

  ## Example Workflow

  An example n8n workflow demonstrating all available operations is included in [`examples/deAPI_guide.json`](examples/deAPI_guide.json). Import it into your n8n instance to get started quickly:

  1. Download [`deAPI_guide.json`](https://raw.githubusercontent.com/deapi-ai/n8n-nodes-deapi/main/examples/deAPI_guide.json) from the GitHub repository
  2. In n8n, go to **Workflows** > **Import from File**
  3. Select the downloaded `deAPI_guide.json`
  4. Set up your deAPI credentials (API Key + Webhook Secret)
  5. Explore the example nodes and sticky notes for usage instructions

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [deAPI Documentation](https://docs.deapi.ai/)
  - [deAPI Website](https://deapi.ai/)
  - [GitHub Repository](https://github.com/deapi-ai/n8n-nodes-deapi)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows based on the completion status of generation jobs (image, video, audio) submitted to the deAPI platform.","capabilities":["Image generation (FLUX models, Z-Image Turbo)","Background removal (Ben2)","Image upscaling (RealESRGAN x4)","Video generation from text or images (LTX-Video, LTX-2)","Video generation from audio and text (LTX-2)","Audio transcription from video URLs or files (Whisper)","Voice cloning for speech generation (Qwen3 TTS)","Text-to-speech generation (Kokoro, Chatterbox, Qwen3 TTS)","Audio transcription from files (Whisper)","Image prompt optimization"],"authentication":"API key required (deAPI API Key) and Webhook Secret","commonUseCases":["Automated content creation workflows using open-source AI models","Cost-effective image and video generation pipelines","Audio transcription and voice cloning automation","Prompt optimization for better AI generation results"],"limitations":["Requires n8n to be accessible via HTTPS for webhook-based operations","Tested only with n8n version 2.3.4","Webhook-based waiting pattern may introduce latency during job processing"],"relatedNodes":["n8n-nodes-deapi.deapiImage","n8n-nodes-deapi.deapiVideo","n8n-nodes-deapi.deapiAudio","n8n-nodes-deapi.deapiPrompt"]}


node_type: n8n-nodes-gls.gls
package_name: n8n-nodes-gls
display_name: GLS
description: Returns the nearest GLS Points when given latitude, longitude and limit.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: gls-it-service
author_github_url: https://github.com/GLS-IT-Service/
npm_package_name: n8n-nodes-gls
npm_version: 0.1.6
community_fetched_at: 2026-07-14T14:40:33.626Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "psm",
      "options": [
        {
          "name": "GLS Point",
          "value": "psm"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getByGeoCoordinates",
      "options": [
        {
          "name": "Get GLS Points by Geo Coordinates",
          "value": "getByGeoCoordinates",
          "action": "Get gls points by geo coordinates",
          "description": "Get GLS Points by latitude, longitude and country code"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "psm"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get GLS Points by Geo Coordinates",
      "value": "getByGeoCoordinates",
      "action": "Get gls points by geo coordinates",
      "description": "Get GLS Points by latitude, longitude and country code",
      "resource": "psm"
    }
  ]

npm_readme:
  # 📦 n8n-nodes-gls: GLS Points Finder Node

  [![NPM version][npm-version-image]][npm-url]
  [![License][license-image]][license-url]

  This repository contains a custom n8n node that helps you find the nearest GLS Points based on a given Geo Coordinates and limit. The node integrates with the official GLS Parcel Shop Management API.

  ## 🚀 Features

  - Find nearby GLS Points based on Geo Coordinates
  - Limit the number of results returned
  - Easy integration with your n8n workflows

  ## 📋 Prerequisites

  - [Node.js](https://nodejs.org/en/) (>= 16.0.0)
  - [n8n](https://n8n.io/) (>= 0.214.0)
  - [npm](https://www.npmjs.com/) or [pnpm](https://pnpm.io/)

  ## 🔧 Installation

  ### Setting Up Node.js with NVM

  Since n8n is built on Node.js, we'll need to have the correct version installed. n8n requires Node.js version 22.15.0, and the most flexible way to manage Node.js versions is through NVM (Node Version Manager).

  NVM allows us to install and switch between different Node.js versions effortlessly. To install NVM, we can use the following command:

  ```bash
  curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash
  ```

  After installing NVM, we can install and use the specific Node.js version that n8n requires. This approach is particularly useful if we work with multiple Node.js projects that require different versions.

  ```bash
  nvm install v22.15.0
  nvm use v22.15.0
  ```

  ### Local Installation: Direct Integration

  For developers who prefer direct installation or want to integrate n8n into an existing Node.js environment, we can install n8n globally using npm:

  ```bash
  npm install n8n -g
  npm install -g pnpm@latest-10
  npx only-allow pnpm
  ```

  ### Clone the Repository

  ```bash
  # Clone the repository
  git clone https://github.com/GLS-IT-Service/n8n-nodes-gls.git n8n-nodes-gls

  # Navigate to the project directory
  cd n8n-nodes-gls

  # Install dependencies
  pnpm install
  ```

  ## 📁 Project Structure

  The project is organized as follows:

  ```
  n8n-nodes-gls/
  ├── credentials/
  │   └── PsmApi.credentials.ts   # API credentials configuration
  ├── nodes/
  │   └── Gls/
  │       ├── Gls.node.ts         # Main node implementation
  │       ├── GenericFunctions.ts # Shared utility functions
  │       └── gls.png             # Node icon
  ├── index.ts                    # Main entry point
  ├── package.json                # Project metadata and dependencies
  └── tsconfig.json               # TypeScript configuration
  ```

  ## 🛠️ Development

  ### Building the Node

  To build the node, run:

  ```bash
  # Build the node
  pnpm run build
  ```

  This compiles the TypeScript code and copies the icon files to the `dist` directory.

  ### Running Tests (not implemented)

  ```bash
  pnpm test
  ```

  ## 📦 Deployment

  n8n supports custom nodes through the custom extensions directory. To deploy your node:

  ### 1. Create a Custom Extensions Directory

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

  ### 2. Copy the Built Node

  ```bash
  cp -R dist/* ~/.n8n/custom/n8n-nodes-gls
  ```

  ### 3. Configure n8n

  ```bash
  # Set environment variables for n8n
  export N8N_CUSTOM_EXTENSIONS="~/.n8n/custom"
  # For development purposes only
  export N8N_SECURE_COOKIE=false
  ```

  ```bash
  # Link your node to n8n
  pnpm link

  # In your n8n installation directory (~/.n8n/custom)
  pnpm link n8n-nodes-gls
  ```

   ### 4.Restart n8n

  Restart your n8n instance for the changes to take effect.

  ## 🔌 Usage

  1. In your n8n workflow, add a new node and search for "GLS Point"
  2. Configure the node with your API credentials
  3. Enter the required parameters (address, country code, results limit)
  4. Execute the workflow to retrieve nearby GLS Points

  ## 📄 License

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

  ## 👥 Contributing

  Contributions are welcome! Please read our [Code of Conduct](CODE_OF_CONDUCT.md) before contributing to the project.

  [npm-url]: https://www.npmjs.com/package/n8n-nodes-gls
  [npm-version-image]: https://img.shields.io/npm/v/n8n-nodes-gls.svg
  [license-image]: https://img.shields.io/npm/l/n8n-nodes-gls.svg
  [license-url]: LICENSE.md

ai_documentation_summary:
  {"purpose":"Finds the nearest GLS Parcel Shop Points based on provided latitude, longitude coordinates and a result limit by integrating with the GLS Parcel Shop Management API.","capabilities":["Search for nearby GLS Points using Geo Coordinates","Filter results by a specified limit","Integrate with GLS official API"],"authentication":"API key required (via credentials configuration)","commonUseCases":["Locating nearest parcel drop-off points","Planning delivery routes","Finding service locations for customers"],"limitations":["Requires Node.js version 22.15.0 or higher","Requires custom node installation via n8n custom extensions directory","Requires manual deployment and configuration of API credentials"],"relatedNodes":["Custom n8n nodes","GLS API integration nodes"]}


node_type: n8n-nodes-newscatcher-catchall-pernode.newscatcherCatchAllTrigger
package_name: n8n-nodes-newscatcher-catchall-pernode
display_name: Newscatcher CatchAll Trigger
description: Triggers when a Newscatcher CatchAll monitor has new results
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: chintan.newscatcherapi
author_github_url: https://github.com/Newscatcher/
npm_package_name: n8n-nodes-newscatcher-catchall-pernode
npm_version: 0.1.42
community_fetched_at: 2026-07-14T14:40:33.627Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-newscatcher-catchall-pernode

  n8n community node for [Newscatcher CatchAll](https://catchall.newscatcherapi.com/) API integration. This node allows you to submit jobs, retrieve results, manage monitors, and receive real-time webhook triggers from Newscatcher CatchAll.

  ## Features

  - **Job Management**: Submit jobs, pull results, and check job status
  - **Monitor Management**: Create, list, enable, disable monitors, and retrieve monitor details
  - **Webhook Trigger**: Real-time trigger node for monitor results
  - **Per-node API Key**: Simple authentication with API key stored directly in the node (not encrypted)

  ## Installation

  ### For n8n Cloud

  1. Go to **Settings → Community Nodes → Install**
  2. Enter: `n8n-nodes-newscatcher-catchall-pernode`
  3. Click **Install**

  ### For Self-Hosted n8n

  ```bash
  npm install n8n-nodes-newscatcher-catchall-pernode
  ```

  ## Authentication

  Enter your Newscatcher API key directly in the node's **API Key** field. The API key is stored as a node setting (not encrypted). Get your API key from [Newscatcher](https://newscatcherapi.com/).

  ## Nodes

  ### Newscatcher CatchAll

  Main node for interacting with the Newscatcher CatchAll API.

  #### Resources

  **Job**
  - **Submit**: Create a new CatchAll job with query, context, and schema
  - **Pull**: Retrieve results for a completed job by job ID
  - **Get Status**: Check the status of a job by job ID

  **Monitor**
  - **Create**: Create a new monitor based on an existing reference job
  - **List**: List all monitors for your API key
  - **Get**: Get full details and records for a specific monitor
  - **List Jobs**: List all jobs created by a specific monitor
  - **Enable**: Enable a monitor by monitor ID
  - **Disable**: Disable a monitor by monitor ID

  #### Example: Submit a Job

  1. Add the **Newscatcher CatchAll** node to your workflow
  2. Select **Resource**: `Job`
  3. Select **Operation**: `Submit`
  4. Enter your **API Key**
  5. Fill in:
     - **Query**: "Tech company earnings this quarter"
     - **Context**: (Optional) "Focus on revenue and profit margins"
     - **Schema**: (Optional) "Company [NAME] earned [REVENUE] in [QUARTER]"
  6. Execute the workflow

  The node returns a job ID that you can use with the **Pull** or **Get Status** operations.

  #### Example: Create a Monitor

  1. Add the **Newscatcher CatchAll** node to your workflow
  2. Select **Resource**: `Monitor`
  3. Select **Operation**: `Create`
  4. Enter your **API Key**
  5. Fill in:
     - **Reference Job ID**: An existing job ID to base the monitor on
     - **Schedule**: "every day at 12 PM UTC"
     - **Webhook URL**: Your webhook endpoint URL
     - **Webhook Method**: POST or GET
     - **Webhook Headers/Params/Auth**: (Optional) JSON configuration
  6. Execute the workflow

  ### Newscatcher CatchAll Trigger

  Webhook trigger node that activates when a monitor has new results.

  #### Setup

  1. Add the **Newscatcher CatchAll Trigger** node to your workflow
  2. Enter your **API Key**
  3. Select a **Monitor** from the dropdown (monitors are loaded from your API)
  4. Activate the workflow

  When the selected monitor has new results, Newscatcher will POST the data to the webhook URL, and your workflow will be triggered automatically.

  ## Development

  ### Local Development

  ```bash
  # Install dependencies
  npm install

  # Build the project
  npm run build

  # Lint the code
  npx @n8n/scan-community-package n8n-nodes-newscatcher-catchall-pernode
  ```

  ### Project Structure

  ```
  src/
    nodes/
      Newscatcher/
        Newscatcher.node.ts              # Main node
        NewscatcherCatchAllTrigger.node.ts # Trigger node
        newscatcher-new.png              # Node icon
  ```

  ## API Documentation

  For detailed API documentation, visit:
  - [Newscatcher CatchAll API](https://catchall.newscatcherapi.com/)
  - [Newscatcher Documentation](https://newscatcherapi.com/docs)

  ## License

  MIT

  ## Support

  - **Issues**: [GitHub Issues](https://github.com/Newscatcher/n8n-nodes-newscatcher-catchall-pernode/issues)
  - **Repository**: [GitHub](https://github.com/Newscatcher/n8n-nodes-newscatcher-catchall-pernode)

ai_documentation_summary:
  {"purpose":"Triggers a workflow when a Newscatcher CatchAll monitor detects new results by receiving a webhook POST from the Newscatcher API.","capabilities":["Real-time webhook trigger activation","Monitor selection from existing API monitors","Automatic workflow execution upon new data arrival"],"authentication":"API key required (stored as node setting, not encrypted)","commonUseCases":["Real-time news monitoring and alerting","Automated data collection from news sources","Triggering downstream actions based on new search results"],"limitations":["API key is stored as a node setting without encryption","Requires a separate Newscatcher CatchAll node to create/manage monitors"],"relatedNodes":["Newscatcher CatchAll","Newscatcher CatchAll Trigger"]}


node_type: @smartbooks-ai/n8n-nodes-api.smartbooksApi
package_name: @smartbooks-ai/n8n-nodes-api
display_name: Smartbooks API
description: Interact with Smartbooks API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: alexey-at-smartbooks
author_github_url: https://github.com/smartbooks-ai/n8n-nodes-api.git
npm_package_name: @smartbooks-ai/n8n-nodes-api
npm_version: 0.1.5
community_fetched_at: 2026-07-14T14:40:33.628Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "Reporting",
      "options": [
        {
          "name": "Input",
          "value": "Input"
        },
        {
          "name": "Module",
          "value": "Modules"
        },
        {
          "name": "Profile",
          "value": "Profile"
        },
        {
          "name": "Reporting",
          "value": "Reporting"
        },
        {
          "name": "Structure",
          "value": "Structure"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Input Post Batch",
      "options": [
        {
          "name": "Batch Input",
          "value": "Input Post Batch",
          "action": "Batch input",
          "routing": {
            "request": {
              "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/input/batch",
              "method": "POST"
            }
          },
          "description": "Batch input for a given year and period. Requires scope input:write."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Input"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Modules Get Item Public",
      "options": [
        {
          "name": "Get Module",
          "value": "Modules Get Item Public",
          "action": "Get module",
          "routing": {
            "request": {
              "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/modules/{{$parameter[\"moduleCode\"]}}",
              "method": "GET"
            }
          },
          "description": "Get a module by code. Requires scope modeling:read."
        },
        {
          "name": "Add Account",
          "value": "Modules Post Account",
          "action": "Add account",
          "routing": {
            "request": {
              "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/modules/{{$parameter[\"moduleCode\"]}}/subaccountstables/{{$parameter[\"subaccountsTableCode\"]}}/accounts",
              "method": "POST"
            }
          },
          "description": "Add an account to a subaccounts table of a module. Requires scope modeling:write."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Modules"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Reporting Yearly Amounts",
      "options": [
        {
          "name": "Get Outstanding Payables",
          "value": "Outstandingpayablesandreceivables Outstanding Payables",
          "action": "Get outstanding payables",
          "routing": {
            "request": {
              "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/reporting/outstanding/payables",
              "method": "GET"
            }
          },
          "description": "Get outstanding payables. Requires scope reporting:read."
        },
        {
          "name": "Get Outstanding Receivables",
          "value": "Outstandingpayablesandreceivables Outstanding Receivables",
          "action": "Get outstanding receivables",
          "routing": {
            "request": {
              "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/reporting/outstanding/receivables",
              "method": "GET"
            }
          },
          "description": "Get outstanding receivables. Requires scope reporting:read."
        },
        {
          "name": "Get Yearly Amounts",
          "value": "Reporting Yearly Amounts",
          "action": "Get yearly amounts",
          "routing": {
            "request": {
              "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/reporting/amounts/yearly/{{$parameter[\"year\"]}}",
              "method": "GET"
            }
          },
          "description": "Get yearly amounts for a given year. Requires scope reporting:read."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Reporting"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Structure Balance Sheet",
      "options": [
        {
          "name": "Get Balance Sheet Structure",
          "value": "Structure Balance Sheet",
          "action": "Get balance sheet structure",
          "routing": {
            "request": {
              "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/structure/balance-sheet",
              "method": "GET"
            }
          },
          "description": "Get balance sheet structure. Requires scope reporting:read."
        },
        {
          "name": "Get Cash Flow Structure",
          "value": "Structure Cash Flow",
          "action": "Get cash flow structure",
          "routing": {
            "request": {
              "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/structure/cash-flow",
              "method": "GET"
            }
          },
          "description": "Get cash flow structure. Requires scope reporting:read."
        },
        {
          "name": "Get Metrics Structure",
          "value": "Structure Metrics",
          "action": "Get metrics structure",
          "routing": {
            "request": {
              "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/structure/metrics",
              "method": "GET"
            }
          },
          "description": "Get metrics structure. Requires scope reporting:read."
        },
        {
          "name": "Get Profit And Loss Structure",
          "value": "Structure Profit And Loss",
          "action": "Get profit and loss structure",
          "routing": {
            "request": {
              "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/structure/profit-and-loss",
              "method": "GET"
            }
          },
          "description": "Get profit and loss structure. Requires scope reporting:read."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Structure"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Profile My",
      "options": [
        {
          "name": "Get Profile",
          "value": "Profile My",
          "action": "Get profile",
          "routing": {
            "request": {
              "url": "=/api/v1/profile/my",
              "method": "GET"
            }
          },
          "description": "Get profile details including allowed tenants and companies. Requires scope profile:read."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Profile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /api/v1/c/{companyCode}/input/batch",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Input"
          ],
          "operation": [
            "Input Post Batch"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /api/v1/c/{companyCode}/modules/{moduleCode}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Modules"
          ],
          "operation": [
            "Modules Get Item Public"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "POST /api/v1/c/{companyCode}/modules/{moduleCode}/subaccountstables/{subaccountsTableCode}/accounts",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Modules"
          ],
          "operation": [
            "Modules Post Account"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /api/v1/c/{companyCode}/reporting/amounts/yearly/{year}",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Reporting"
          ],
          "operation": [
            "Reporting Yearly Amounts"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /api/v1/c/{companyCode}/reporting/outstanding/payables",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Reporting"
          ],
          "operation": [
            "Outstandingpayablesandreceivables Outstanding Payables"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /api/v1/c/{companyCode}/reporting/outstanding/receivables",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Reporting"
          ],
          "operation": [
            "Outstandingpayablesandreceivables Outstanding Receivables"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /api/v1/c/{companyCode}/structure/balance-sheet",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Structure"
          ],
          "operation": [
            "Structure Balance Sheet"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /api/v1/c/{companyCode}/structure/cash-flow",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Structure"
          ],
          "operation": [
            "Structure Cash Flow"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /api/v1/c/{companyCode}/structure/metrics",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Structure"
          ],
          "operation": [
            "Structure Metrics"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /api/v1/c/{companyCode}/structure/profit-and-loss",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Structure"
          ],
          "operation": [
            "Structure Profit And Loss"
          ]
        }
      }
    },
    {
      "name": "operation",
      "type": "notice",
      "default": "",
      "displayName": "GET /api/v1/profile/my",
      "typeOptions": {
        "theme": "info"
      },
      "displayOptions": {
        "show": {
          "resource": [
            "Profile"
          ],
          "operation": [
            "Profile My"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "name": "Batch Input",
      "value": "Input Post Batch",
      "action": "Batch input",
      "routing": {
        "request": {
          "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/input/batch",
          "method": "POST"
        }
      },
      "description": "Batch input for a given year and period. Requires scope input:write.",
      "resource": "Input"
    },
    {
      "name": "Get Module",
      "value": "Modules Get Item Public",
      "action": "Get module",
      "routing": {
        "request": {
          "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/modules/{{$parameter[\"moduleCode\"]}}",
          "method": "GET"
        }
      },
      "description": "Get a module by code. Requires scope modeling:read.",
      "resource": "Modules"
    },
    {
      "name": "Add Account",
      "value": "Modules Post Account",
      "action": "Add account",
      "routing": {
        "request": {
          "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/modules/{{$parameter[\"moduleCode\"]}}/subaccountstables/{{$parameter[\"subaccountsTableCode\"]}}/accounts",
          "method": "POST"
        }
      },
      "description": "Add an account to a subaccounts table of a module. Requires scope modeling:write.",
      "resource": "Modules"
    },
    {
      "name": "Get Outstanding Payables",
      "value": "Outstandingpayablesandreceivables Outstanding Payables",
      "action": "Get outstanding payables",
      "routing": {
        "request": {
          "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/reporting/outstanding/payables",
          "method": "GET"
        }
      },
      "description": "Get outstanding payables. Requires scope reporting:read.",
      "resource": "Reporting"
    },
    {
      "name": "Get Outstanding Receivables",
      "value": "Outstandingpayablesandreceivables Outstanding Receivables",
      "action": "Get outstanding receivables",
      "routing": {
        "request": {
          "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/reporting/outstanding/receivables",
          "method": "GET"
        }
      },
      "description": "Get outstanding receivables. Requires scope reporting:read.",
      "resource": "Reporting"
    },
    {
      "name": "Get Yearly Amounts",
      "value": "Reporting Yearly Amounts",
      "action": "Get yearly amounts",
      "routing": {
        "request": {
          "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/reporting/amounts/yearly/{{$parameter[\"year\"]}}",
          "method": "GET"
        }
      },
      "description": "Get yearly amounts for a given year. Requires scope reporting:read.",
      "resource": "Reporting"
    },
    {
      "name": "Get Balance Sheet Structure",
      "value": "Structure Balance Sheet",
      "action": "Get balance sheet structure",
      "routing": {
        "request": {
          "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/structure/balance-sheet",
          "method": "GET"
        }
      },
      "description": "Get balance sheet structure. Requires scope reporting:read.",
      "resource": "Structure"
    },
    {
      "name": "Get Cash Flow Structure",
      "value": "Structure Cash Flow",
      "action": "Get cash flow structure",
      "routing": {
        "request": {
          "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/structure/cash-flow",
          "method": "GET"
        }
      },
      "description": "Get cash flow structure. Requires scope reporting:read.",
      "resource": "Structure"
    },
    {
      "name": "Get Metrics Structure",
      "value": "Structure Metrics",
      "action": "Get metrics structure",
      "routing": {
        "request": {
          "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/structure/metrics",
          "method": "GET"
        }
      },
      "description": "Get metrics structure. Requires scope reporting:read.",
      "resource": "Structure"
    },
    {
      "name": "Get Profit And Loss Structure",
      "value": "Structure Profit And Loss",
      "action": "Get profit and loss structure",
      "routing": {
        "request": {
          "url": "=/api/v1/c/{{$parameter[\"companyCode\"]}}/structure/profit-and-loss",
          "method": "GET"
        }
      },
      "description": "Get profit and loss structure. Requires scope reporting:read.",
      "resource": "Structure"
    },
    {
      "name": "Get Profile",
      "value": "Profile My",
      "action": "Get profile",
      "routing": {
        "request": {
          "url": "=/api/v1/profile/my",
          "method": "GET"
        }
      },
      "description": "Get profile details including allowed tenants and companies. Requires scope profile:read.",
      "resource": "Profile"
    }
  ]

npm_readme:
  # Smartbooks API – n8n Node

  [n8n](https://n8n.io) community node for the [Smartbooks API](https://smartbooks.ai). Use it in n8n workflows to interact with Smartbooks (reporting, input, intercompany matching, modules, and more).

  ## Installation

  In n8n:

  1. Open **Settings** → **Community nodes** → **Install**.
  2. Enter: `@smartbooks-ai/n8n-nodes-api`
  3. Install and restart n8n if prompted.

  Or install via CLI in your n8n project:

  ```bash
  npm install @smartbooks-ai/n8n-nodes-api
  ```

  ## Credentials

  The node uses **Smartbooks OAuth2 API** credentials.

  1. Add a **Smartbooks API** credential in n8n.
  2. Use your Smartbooks OAuth2 client ID and client secret.
  3. Authorize; the node will use this credential for all requests.

  ## Resources & operations

  The node supports these Smartbooks resources and their operations:

  - **Input** – e.g. batch input (by year and period)
  - **Module** – module operations
  - **Profile** – profile operations
  - **Reporting** – reporting operations
  - **Structure** – structure operations

  Choose **Resource** and **Operation** in the node; required parameters (e.g. company code, IDs) will appear as needed.

  ## License

  MIT © [smartbooks](https://smartbooks.ai)

ai_documentation_summary:
  {"purpose":"A community n8n node that enables interaction with the Smartbooks API for accounting operations including reporting, input, intercompany matching, and module management.","capabilities":["Batch input by year and period","Module operations","Profile operations","Reporting operations","Structure operations","Intercompany matching","Company code management","ID-based resource queries"],"authentication":"OAuth2 (Smartbooks OAuth2 API credentials with client ID and client secret)","commonUseCases":["Automated financial reporting generation","Batch data entry for accounting periods","Intercompany transaction matching","Module configuration and updates","Company structure management"],"limitations":["Community node (may lack official support)","Requires prior setup of Smartbooks OAuth2 credentials in n8n","Specific parameters depend on selected resource and operation types"],"relatedNodes":["Smartbooks API Credential","General API nodes","OAuth2 authentication nodes"]}


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

updated_at: 2026-07-14 14:40:33
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-07-14T14:40:33.629Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "user",
      "options": [
        {
          "name": "Access Policy",
          "value": "accessPolicy"
        },
        {
          "name": "Credential",
          "value": "credential"
        },
        {
          "name": "Device",
          "value": "device"
        },
        {
          "name": "Notification",
          "value": "notification"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Assign Access Policy",
          "value": "assignAccessPolicy",
          "action": "Assign access policies to a user",
          "description": "Assign access policies to a user"
        },
        {
          "name": "Assign NFC Card",
          "value": "assignNfc",
          "action": "Assign an NFC card to a user",
          "description": "Assign an NFC card to a user"
        },
        {
          "name": "Clear PIN",
          "value": "clearPin",
          "action": "Clear a user's PIN",
          "description": "Clear a user's PIN"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new user",
          "description": "Create a new user"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a user",
          "description": "Delete a user"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user",
          "description": "Get the data of a single user"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get users",
          "description": "Get users"
        },
        {
          "name": "Send UniFi Identity Invitations",
          "value": "sendInvitations",
          "action": "Send UniFi Identity invitations"
        },
        {
          "name": "Set PIN",
          "value": "setPin",
          "action": "Set a user's PIN",
          "description": "Set a user's PIN"
        },
        {
          "name": "Unassign NFC Card",
          "value": "unassignNfc",
          "action": "Unssign an NFC card from a user",
          "description": "Unssign an NFC card from a user"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a user",
          "description": "Update a user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an access policy",
          "description": "Get an access policy"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get access policies",
          "description": "Get access policies"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "accessPolicy"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generatePin",
      "options": [
        {
          "name": "Delete NFC Card",
          "value": "deleteNfc",
          "action": "Delete an NFC card",
          "description": "Delete an NFC card"
        },
        {
          "name": "Enroll NFC Card",
          "value": "enrollNfc",
          "action": "Enroll an NFC card",
          "description": "Wake up a UA reader and create a session to enroll an NFC card"
        },
        {
          "name": "Generate PIN",
          "value": "generatePin",
          "action": "Generate a random PIN",
          "description": "Generate a random PIN"
        },
        {
          "name": "Get Many NFC Cards",
          "value": "getAllNfcs",
          "action": "Get NFC cards",
          "description": "Get NFC cards"
        },
        {
          "name": "Get NFC Card",
          "value": "getNfc",
          "action": "Get an NFC card",
          "description": "Get an NFC card"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "credential"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get devices",
          "description": "Get devices"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "device"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add Webhook",
          "value": "add",
          "action": "Add a webhook endpoint",
          "description": "Add a webhook endpoint"
        },
        {
          "name": "Delete Webhook",
          "value": "delete",
          "action": "Delete a webhook endpoint",
          "description": "Delete a webhook endpoint"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get webhook endpoints",
          "description": "Get webhook endpoints"
        },
        {
          "name": "Update Webhook",
          "value": "update",
          "action": "Update a webhook endpoint",
          "description": "Update a webhook endpoint"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "notification"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Assign Access Policy",
      "value": "assignAccessPolicy",
      "action": "Assign access policies to a user",
      "description": "Assign access policies to a user",
      "resource": "user"
    },
    {
      "name": "Assign NFC Card",
      "value": "assignNfc",
      "action": "Assign an NFC card to a user",
      "description": "Assign an NFC card to a user",
      "resource": "user"
    },
    {
      "name": "Clear PIN",
      "value": "clearPin",
      "action": "Clear a user's PIN",
      "description": "Clear a user's PIN",
      "resource": "user"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new user",
      "description": "Create a new user",
      "resource": "user"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a user",
      "description": "Delete a user",
      "resource": "user"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a user",
      "description": "Get the data of a single user",
      "resource": "user"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get users",
      "description": "Get users",
      "resource": "user"
    },
    {
      "name": "Send UniFi Identity Invitations",
      "value": "sendInvitations",
      "action": "Send UniFi Identity invitations",
      "resource": "user"
    },
    {
      "name": "Set PIN",
      "value": "setPin",
      "action": "Set a user's PIN",
      "description": "Set a user's PIN",
      "resource": "user"
    },
    {
      "name": "Unassign NFC Card",
      "value": "unassignNfc",
      "action": "Unssign an NFC card from a user",
      "description": "Unssign an NFC card from a user",
      "resource": "user"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a user",
      "description": "Update a user",
      "resource": "user"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an access policy",
      "description": "Get an access policy",
      "resource": "accessPolicy"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get access policies",
      "description": "Get access policies",
      "resource": "accessPolicy"
    },
    {
      "name": "Delete NFC Card",
      "value": "deleteNfc",
      "action": "Delete an NFC card",
      "description": "Delete an NFC card",
      "resource": "credential"
    },
    {
      "name": "Enroll NFC Card",
      "value": "enrollNfc",
      "action": "Enroll an NFC card",
      "description": "Wake up a UA reader and create a session to enroll an NFC card",
      "resource": "credential"
    },
    {
      "name": "Generate PIN",
      "value": "generatePin",
      "action": "Generate a random PIN",
      "description": "Generate a random PIN",
      "resource": "credential"
    },
    {
      "name": "Get Many NFC Cards",
      "value": "getAllNfcs",
      "action": "Get NFC cards",
      "description": "Get NFC cards",
      "resource": "credential"
    },
    {
      "name": "Get NFC Card",
      "value": "getNfc",
      "action": "Get an NFC card",
      "description": "Get an NFC card",
      "resource": "credential"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get devices",
      "description": "Get devices",
      "resource": "device"
    },
    {
      "name": "Add Webhook",
      "value": "add",
      "action": "Add a webhook endpoint",
      "description": "Add a webhook endpoint",
      "resource": "notification"
    },
    {
      "name": "Delete Webhook",
      "value": "delete",
      "action": "Delete a webhook endpoint",
      "description": "Delete a webhook endpoint",
      "resource": "notification"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get webhook endpoints",
      "description": "Get webhook endpoints",
      "resource": "notification"
    },
    {
      "name": "Update Webhook",
      "value": "update",
      "action": "Update a webhook endpoint",
      "description": "Update a webhook endpoint",
      "resource": "notification"
    }
  ]

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":"This n8n community node enables automation of UniFi Access API operations for managing door control systems, including users, access policies, NFC cards, and webhooks.","capabilities":["Manage access policies (get, list)","Manage NFC cards (enroll, delete, get, assign/unassign)","Generate random PINs","Manage users (create, delete, update, get, list, assign policies/cards, clear/set PIN)","Send UniFi Identity invitations","Manage webhooks (add, delete, get, update)","Monitor door events (position change, unlock, doorbell events, emergency status, temporary unlocks, schedules, visitor status)"],"authentication":"API token required (generated in UniFi Access dashboard Settings->General) with server hostname and port configuration","commonUseCases":["Automate user onboarding for UniFi Access systems","Trigger actions based on doorbell events or visitor status changes","Automatically assign or revoke access policies based on workflow conditions","Generate temporary access credentials via API","Monitor door status and emergency alerts"],"limitations":["Community node (not official n8n node)","Requires manual firewall configuration to allow access to API port 12445","Requires UniFi Access 4.1.15 or later for compatibility"],"relatedNodes":["n8n-nodes-unifi-unifi","n8n-nodes-unifi-unifi-portal","n8n-nodes-unifi-unifi-remote"]}


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-07-14 14:40:33
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-07-14T14:40:33.630Z
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: @virtuoussoftware/n8n-nodes-virtuous-crm.virtuousCrm
package_name: @virtuoussoftware/n8n-nodes-virtuous-crm
display_name: Virtuous CRM
description: Interact with the Virtuous CRM API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: cogitatorprimarch
author_github_url: https://github.com/VirtuousCRM/n8n-nodes-virtuous-crm.git
npm_package_name: @virtuoussoftware/n8n-nodes-virtuous-crm
npm_version: 0.1.5
community_fetched_at: 2026-07-14T14:40:33.631Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Contact Collection",
          "value": "contactCollection"
        },
        {
          "name": "Contact Individual",
          "value": "contactIndividual"
        },
        {
          "name": "Contact Individual Collection",
          "value": "contactIndividualCollection"
        },
        {
          "name": "Gift",
          "value": "gift"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "singleContactTransaction",
      "options": [
        {
          "name": "Create Contact Transaction",
          "value": "singleContactTransaction",
          "action": "Create a contact that will go through the import process",
          "description": "Create a Contact that will go through the import process"
        },
        {
          "name": "Get Contact",
          "value": "getContactById",
          "action": "Get a contact by their id",
          "description": "Get a contact by their ID"
        },
        {
          "name": "Get Contact by Reference",
          "value": "getContactByReference",
          "action": "Get a contact by reference source and id",
          "description": "Get a contact by reference source and ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getContactCollections",
      "options": [
        {
          "name": "Get Custom Collections",
          "value": "getContactCollections",
          "action": "Get custom collections available for contacts",
          "description": "Get custom collections available for contacts"
        },
        {
          "name": "Create Collection for Contact",
          "value": "createContactCollection",
          "action": "Create a collection instance for a contact",
          "description": "Create a collection instance for a contact"
        },
        {
          "name": "Update Collection for Contact",
          "value": "updateContactCollection",
          "action": "Update a collection instance for a contact",
          "description": "Update a collection instance for a contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contactCollection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getContactIndividualById",
      "options": [
        {
          "name": "Get Individual",
          "value": "getContactIndividualById",
          "action": "Get an individual by their id",
          "description": "Get an individual by their ID"
        },
        {
          "name": "Get Individuals for Contact",
          "value": "getIndividualsByContact",
          "action": "Get all individuals for a contact",
          "description": "Get all individuals for a contact"
        },
        {
          "name": "Find Individual by Email",
          "value": "findIndividualByEmail",
          "action": "Find an individual by email address",
          "description": "Find an individual by email address"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contactIndividual"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getContactIndividualCollections",
      "options": [
        {
          "name": "Get Custom Collections",
          "value": "getContactIndividualCollections",
          "action": "Get custom collections available for individuals",
          "description": "Get custom collections available for individuals"
        },
        {
          "name": "Create Collection for Individual",
          "value": "createContactIndividualCollection",
          "action": "Create a collection instance for an individual",
          "description": "Create a collection instance for an individual"
        },
        {
          "name": "Update Collection for Individual",
          "value": "updateContactIndividualCollection",
          "action": "Update a collection instance for an individual",
          "description": "Update a collection instance for an individual"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contactIndividualCollection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "singleGiftTransaction",
      "options": [
        {
          "name": "Create Gift Transaction",
          "value": "singleGiftTransaction",
          "action": "Create a gift that will go through the import process",
          "description": "Create a Gift that will go through the import process"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "gift"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Contact Transaction",
      "value": "singleContactTransaction",
      "action": "Create a contact that will go through the import process",
      "description": "Create a Contact that will go through the import process",
      "resource": "contact"
    },
    {
      "name": "Get Contact",
      "value": "getContactById",
      "action": "Get a contact by their id",
      "description": "Get a contact by their ID",
      "resource": "contact"
    },
    {
      "name": "Get Contact by Reference",
      "value": "getContactByReference",
      "action": "Get a contact by reference source and id",
      "description": "Get a contact by reference source and ID",
      "resource": "contact"
    },
    {
      "name": "Get Custom Collections",
      "value": "getContactCollections",
      "action": "Get custom collections available for contacts",
      "description": "Get custom collections available for contacts",
      "resource": "contactCollection"
    },
    {
      "name": "Create Collection for Contact",
      "value": "createContactCollection",
      "action": "Create a collection instance for a contact",
      "description": "Create a collection instance for a contact",
      "resource": "contactCollection"
    },
    {
      "name": "Update Collection for Contact",
      "value": "updateContactCollection",
      "action": "Update a collection instance for a contact",
      "description": "Update a collection instance for a contact",
      "resource": "contactCollection"
    },
    {
      "name": "Get Individual",
      "value": "getContactIndividualById",
      "action": "Get an individual by their id",
      "description": "Get an individual by their ID",
      "resource": "contactIndividual"
    },
    {
      "name": "Get Individuals for Contact",
      "value": "getIndividualsByContact",
      "action": "Get all individuals for a contact",
      "description": "Get all individuals for a contact",
      "resource": "contactIndividual"
    },
    {
      "name": "Find Individual by Email",
      "value": "findIndividualByEmail",
      "action": "Find an individual by email address",
      "description": "Find an individual by email address",
      "resource": "contactIndividual"
    },
    {
      "name": "Get Custom Collections",
      "value": "getContactIndividualCollections",
      "action": "Get custom collections available for individuals",
      "description": "Get custom collections available for individuals",
      "resource": "contactIndividualCollection"
    },
    {
      "name": "Create Collection for Individual",
      "value": "createContactIndividualCollection",
      "action": "Create a collection instance for an individual",
      "description": "Create a collection instance for an individual",
      "resource": "contactIndividualCollection"
    },
    {
      "name": "Update Collection for Individual",
      "value": "updateContactIndividualCollection",
      "action": "Update a collection instance for an individual",
      "description": "Update a collection instance for an individual",
      "resource": "contactIndividualCollection"
    },
    {
      "name": "Create Gift Transaction",
      "value": "singleGiftTransaction",
      "action": "Create a gift that will go through the import process",
      "description": "Create a Gift that will go through the import process",
      "resource": "gift"
    }
  ]

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

  # n8n-nodes-virtuous-crm

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

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

  ## Table of Contents

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

  ## Installation

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

  ## Operations

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

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

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

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

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

  ## Credentials

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

  ## Compatibility

  Tested locally against n8n 1.115.3

  ## Usage

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

  ## Resources

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

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


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

updated_at: 2026-07-14 14:40:33
author_name: valkiriaaquatica
author_github_url: https://github.com/valkiriaaquatica/n8n-terraform-cloud.git
npm_package_name: n8n-nodes-terraform-cloud
npm_version: 1.1.4
community_fetched_at: 2026-07-14T14:40:33.632Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "workspace",
      "options": [
        {
          "name": "Workspace",
          "value": "workspace"
        },
        {
          "name": "Run",
          "value": "run"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "GitHub App Installation",
          "value": "githubAppInstallation"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create Workspace",
          "value": "create",
          "action": "Create a workspace",
          "description": "Create a new workspace in an organization"
        },
        {
          "name": "Delete Workspace",
          "value": "delete",
          "action": "Delete a workspace",
          "description": "Delete a workspace by ID"
        },
        {
          "name": "Get Workspace Details",
          "value": "get",
          "action": "Get workspace details",
          "description": "Fetch workspace info including VCS settings"
        },
        {
          "name": "Get Workspace State",
          "value": "getState",
          "action": "Get workspace state metadata",
          "description": "Fetch the latest state version metadata (and download URL)"
        },
        {
          "name": "List Workspaces",
          "value": "list",
          "action": "List workspaces",
          "description": "List workspaces in an organization"
        },
        {
          "name": "Update Workspace",
          "value": "update",
          "action": "Update a workspace",
          "description": "Update workspace settings by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workspace"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Add Run Comment",
          "value": "addComment",
          "action": "Add a comment to a run",
          "description": "Attach a comment to a run"
        },
        {
          "name": "Apply Run",
          "value": "apply",
          "action": "Apply a run",
          "description": "Apply a run that is pending/approved"
        },
        {
          "name": "Cancel Run",
          "value": "cancel",
          "action": "Cancel a run",
          "description": "Cancel a running plan/apply"
        },
        {
          "name": "Create Plan (Manual Apply)",
          "value": "createPlanManualApply",
          "action": "Create a plan that waits for manual apply",
          "description": "Start a plan and leave it pending for manual apply/discard"
        },
        {
          "name": "Create Plan Run",
          "value": "createPlan",
          "action": "Create plan only run",
          "description": "Start a plan-only run in a workspace (plan-only flag)"
        },
        {
          "name": "Discard Run",
          "value": "discard",
          "action": "Discard a run",
          "description": "Discard a run that is waiting or paused"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get run status",
          "description": "Get the status/details of a run"
        },
        {
          "name": "List by Workspace",
          "value": "list",
          "action": "List runs",
          "description": "List runs for a workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "run"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List Projects",
          "value": "list",
          "action": "List projects",
          "description": "List projects in an organization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List Installations",
          "value": "list",
          "action": "List github app installations",
          "description": "List GitHub App installations for an organization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "githubAppInstallation"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Workspace",
      "value": "create",
      "action": "Create a workspace",
      "description": "Create a new workspace in an organization",
      "resource": "workspace"
    },
    {
      "name": "Delete Workspace",
      "value": "delete",
      "action": "Delete a workspace",
      "description": "Delete a workspace by ID",
      "resource": "workspace"
    },
    {
      "name": "Get Workspace Details",
      "value": "get",
      "action": "Get workspace details",
      "description": "Fetch workspace info including VCS settings",
      "resource": "workspace"
    },
    {
      "name": "Get Workspace State",
      "value": "getState",
      "action": "Get workspace state metadata",
      "description": "Fetch the latest state version metadata (and download URL)",
      "resource": "workspace"
    },
    {
      "name": "List Workspaces",
      "value": "list",
      "action": "List workspaces",
      "description": "List workspaces in an organization",
      "resource": "workspace"
    },
    {
      "name": "Update Workspace",
      "value": "update",
      "action": "Update a workspace",
      "description": "Update workspace settings by ID",
      "resource": "workspace"
    },
    {
      "name": "Add Run Comment",
      "value": "addComment",
      "action": "Add a comment to a run",
      "description": "Attach a comment to a run",
      "resource": "run"
    },
    {
      "name": "Apply Run",
      "value": "apply",
      "action": "Apply a run",
      "description": "Apply a run that is pending/approved",
      "resource": "run"
    },
    {
      "name": "Cancel Run",
      "value": "cancel",
      "action": "Cancel a run",
      "description": "Cancel a running plan/apply",
      "resource": "run"
    },
    {
      "name": "Create Plan (Manual Apply)",
      "value": "createPlanManualApply",
      "action": "Create a plan that waits for manual apply",
      "description": "Start a plan and leave it pending for manual apply/discard",
      "resource": "run"
    },
    {
      "name": "Create Plan Run",
      "value": "createPlan",
      "action": "Create plan only run",
      "description": "Start a plan-only run in a workspace (plan-only flag)",
      "resource": "run"
    },
    {
      "name": "Discard Run",
      "value": "discard",
      "action": "Discard a run",
      "description": "Discard a run that is waiting or paused",
      "resource": "run"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get run status",
      "description": "Get the status/details of a run",
      "resource": "run"
    },
    {
      "name": "List by Workspace",
      "value": "list",
      "action": "List runs",
      "description": "List runs for a workspace",
      "resource": "run"
    },
    {
      "name": "List Projects",
      "value": "list",
      "action": "List projects",
      "description": "List projects in an organization",
      "resource": "project"
    },
    {
      "name": "List Installations",
      "value": "list",
      "action": "List github app installations",
      "description": "List GitHub App installations for an organization",
      "resource": "githubAppInstallation"
    }
  ]

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

  # n8n Terraform Cloud Nodes

  Custom n8n nodes to work with HashiCorp Terraform Cloud: manage runs, workspaces, projects, and state metadata.

  ## Nodes included
  - **TerraformCloud**: Run operations (create plan/manual apply, apply, cancel, discard, add comment), list runs by workspace, get run status, list projects, list workspaces, fetch latest workspace state metadata.

  ## What you can do (quick overview)
  ### Runs
  - Create plan-only runs or plans that wait for manual apply in a workspace.
  - Apply, cancel, or discard an existing run.
  - Add comments to a run.
  - List runs per workspace or fetch the status of a specific run.

  ### Workspaces
  - Create workspaces with vcs, variables, executions, directories...
  - List workspaces in an organization.
  - Fetch workspace details (includes current/latest run).
  - Fetch the current workspace state (state version + download URL).

  ### Projects
  - List projects in an organization.

  ## Credentials
  You will need an api token credential to interact with Terraform Cloud.

  ### Credentials for creating Workspace with VCS from Github App

  To create a workspace whose VCS source is a **GitHub App**, you must use a **User API Token**.  
  An **Organization API Token is not sufficient** for this purpose.

  #### How to create a User API Token

  1. Click on your profile picture in the upper-right corner.
  2. Go to **Account Settings**.
  3. Navigate to **Tokens**.
  4. Click **Create API Token**.


  ## Example flows

  ### General Overview
  ![alt text](image-1.png)

  ### Launch a plan and check its status
  1) TerraformCloud node → Resource `Run` → Operation `Create Plan (Manual Apply)` → set Workspace ID + message.  
  ![alt text](image-3.png)

  2) TerraformCloud node → Resource `Run` → Operation `Get Status` → use the `runId` from step 1.  
  ![alt text](image-4.png)

  ### Fetch workspace tf state
  1) TerraformCloud node → Resource `Workspace` → Operation `Get Workspace State`.  
  2) Provide `workspaceId` or enable `Resolve Workspace by Name` with `stateOrganization` + `workspaceName`.  
  ![alt text](image-5.png)

  ### Discard a Run from a Workspace
  1) TerraformCloud node → Resource `Run` → Operation `Discard a run`. 
  ![alt text](image.png)

  ### Create a Workspace
  1) TerraformCloud node → Resource `Run` → Operation `Create a Workspace`.There are a multiple options on the creations: vcs control, auto apply, variables...
  ![alt text](image-2.png)

  ## Requirements
  - Terraform Cloud API token with access to the target organization/workspaces.
  - n8n 1.0+ (tested on 2.0.3).

  ## Quick start
  ```bash
  npm install
  npm run dev   # starts n8n with the custom nodes linked
  ```

  ### Build and lint
  ```bash
  npm run build
  npm run lint
  ```

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the HashiCorp Terraform Cloud API to manage runs, workspaces, projects, and state metadata.","capabilities":["Create plan-only runs or manual apply plans","Apply, cancel, or discard existing runs","Add comments to runs","List runs by workspace","Get status of a specific run","List projects in an organization","List workspaces in an organization","Create workspaces with VCS, variables, and executions","Fetch workspace details including current/latest run","Fetch workspace state metadata and download URL"],"authentication":"API token required (User API Token for GitHub App VCS, Organization API Token for general use)","commonUseCases":["Automating Terraform plan and apply workflows","Monitoring run status in CI/CD pipelines","Managing workspace configurations and state","Discarding failed or incomplete runs"],"limitations":["Organization API Token is insufficient for creating workspaces with GitHub App VCS (User API Token required)","Requires n8n 1.0+ (tested on 2.0.3)"],"relatedNodes":[]}


node_type: @woztell-sanuker/n8n-nodes-woztell-sanuker.woztell
package_name: @woztell-sanuker/n8n-nodes-woztell-sanuker
display_name: WOZTELL
description: Automate messaging workflows across WhatsApp, Messenger, and Instagram with WOZTELL
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: krisatwoztell
author_github_url: https://github.com/Woztell/n8n-nodes-woztell-sanuker.git
npm_package_name: @woztell-sanuker/n8n-nodes-woztell-sanuker
npm_version: 0.1.15
community_fetched_at: 2026-07-14T14:40:33.633Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "botAPI",
      "options": [
        {
          "name": "Bot API",
          "value": "botAPI"
        },
        {
          "name": "Member",
          "value": "memberAPI"
        }
      ],
      "displayName": "Resource",
      "disabledOptions": {
        "hideOnCloud": true
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMembers",
      "options": [
        {
          "name": "Get Members By Tags",
          "value": "getMembers",
          "action": "Get members by tags",
          "routing": {
            "send": {
              "paginate": "={{ $parameter.options.returnAll }}"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data.apiViewer.members"
                  }
                }
              ]
            },
            "request": {
              "body": {
                "query": "query getMembers(\n  $first: IntMax100\n  $channelId: String\n  $tagFilters: [TagFilter]\n  $after: String\n) {\n  apiViewer {\n    members(first: $first, channelId: $channelId, tagFilters: $tagFilters, after: $after) {\n      edges {\n        node {\n          _id\n          externalId\n          name\n          tags\n        }\n      }\n      pageInfo {\n        hasNextPage\n        totalCount\n        endCursor\n      }\n    }\n  }\n}\n",
                "variables": {
                  "after": "={{$parameter.options.cursor || \"\"}}",
                  "first": "={{$parameter.maxResults || 100}}",
                  "channelId": "={{$parameter.channel}}",
                  "tagFilters": [
                    {
                      "operator": "IN"
                    }
                  ]
                }
              }
            },
            "operations": {}
          }
        },
        {
          "name": "Set Member Tags",
          "value": "memberTagging",
          "action": "Set member tags",
          "routing": {
            "request": {
              "body": {
                "query": "mutation AddMemberTags($input: ModifyMemberTagsInput!) {\n  addMemberTags(input: $input) {\n    err_code\n    member {\n      _id\n      externalId\n    }\n    memberId\n    ok\n  }\n}\n",
                "variables": {
                  "input": {
                    "channel": "={{$parameter.channel}}"
                  }
                }
              }
            }
          }
        },
        {
          "name": "Get Member Info By ID",
          "value": "getMemberInfo",
          "action": "Get member info by id",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data.apiViewer"
                  }
                },
                null
              ]
            },
            "request": {
              "body": {
                "query": "query getMemberInfo($channelId: ID, $externalId: ID) {\n  apiViewer {\n    member(channelId: $channelId, externalId: $externalId) {\n      _id\n      createdAt\n      updatedAt\n      channelId\n      platform\n      tags\n      meta\n      externalId\n      botMeta {\n        subscribe\n        liveChat\n        treeId\n        nodeCompositeId\n        tree {\n          name\n        }\n        node {\n          name\n        }\n      }\n      name\n      firstName\n      lastName\n      gender\n      customLocale\n      locale\n      email\n    }\n  }\n}\n",
                "variables": {
                  "channelId": "={{$parameter.channel}}",
                  "externalId": "={{$parameter.externalId.replace(/[-()+]/g, \"\").replaceAll(\" \", \"\")}}"
                }
              }
            }
          }
        },
        {
          "name": "Get Conversation History By ID",
          "value": "getConversationHistory",
          "action": "Get conversation history by id",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data.apiViewer.conversationHistory"
                  }
                }
              ]
            },
            "request": {
              "body": {
                "query": "query getConversationHistory(\n  $channelId: String\n  $memberId: String\n  $last: IntMax100\n  $before: String\n  $from: Long\n  $to: Long\n) {\n  apiViewer {\n    conversationHistory(\n      channelId: $channelId\n      memberId: $memberId\n      last: $last\n      before: $before\n      from: $from\n      to: $to\n    ) {\n      edges {\n        node {\n          _id\n          messageEvent\n          id\n          createdAt\n          updatedAt\n          sentAt\n          readAt\n          deliveredAt\n          deletedAt\n          from\n          member {\n            name\n          }\n          memberId\n          errors\n          failedAt\n          platform\n          channelId\n          tags\n          meta\n          etag\n          isMultipleParty\n        }\n      }\n      pageInfo {\n        hasPreviousPage\n        startCursor\n      }\n    }\n  }\n}\n",
                "variables": {
                  "last": "={{$parameter.maxResults || 100}}",
                  "before": "={{$parameter.options.cursor || \"\"}}",
                  "channelId": "={{$parameter.channel}}"
                }
              }
            }
          }
        }
      ],
      "displayName": "Operation",
      "placeholder": "",
      "displayOptions": {
        "show": {
          "resource": [
            "memberAPI"
          ]
        }
      },
      "disabledOptions": {
        "hideOnCloud": true
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendResponses",
      "options": [
        {
          "name": "Send Responses",
          "value": "sendResponses",
          "action": "Send responses",
          "routing": {
            "request": {
              "url": "/sendResponses",
              "baseURL": "https://bot.api.woztell.com/"
            }
          }
        },
        {
          "name": "Redirect Member to Node",
          "value": "redirectMemberToNode",
          "action": "Redirect member to node",
          "routing": {
            "request": {
              "url": "/redirectMemberToNode",
              "baseURL": "https://bot.api.woztell.com/"
            }
          }
        },
        {
          "name": "Send Message Template",
          "value": "sendTemplates",
          "action": "Send message template",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/sendResponses",
              "baseURL": "https://bot.api.woztell.com/"
            }
          }
        }
      ],
      "displayName": "Operation",
      "placeholder": "",
      "displayOptions": {
        "show": {
          "resource": [
            "botAPI"
          ]
        }
      },
      "disabledOptions": {
        "hideOnCloud": true
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Members By Tags",
      "value": "getMembers",
      "action": "Get members by tags",
      "routing": {
        "send": {
          "paginate": "={{ $parameter.options.returnAll }}"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data.apiViewer.members"
              }
            }
          ]
        },
        "request": {
          "body": {
            "query": "query getMembers(\n  $first: IntMax100\n  $channelId: String\n  $tagFilters: [TagFilter]\n  $after: String\n) {\n  apiViewer {\n    members(first: $first, channelId: $channelId, tagFilters: $tagFilters, after: $after) {\n      edges {\n        node {\n          _id\n          externalId\n          name\n          tags\n        }\n      }\n      pageInfo {\n        hasNextPage\n        totalCount\n        endCursor\n      }\n    }\n  }\n}\n",
            "variables": {
              "after": "={{$parameter.options.cursor || \"\"}}",
              "first": "={{$parameter.maxResults || 100}}",
              "channelId": "={{$parameter.channel}}",
              "tagFilters": [
                {
                  "operator": "IN"
                }
              ]
            }
          }
        },
        "operations": {}
      },
      "resource": "memberAPI"
    },
    {
      "name": "Set Member Tags",
      "value": "memberTagging",
      "action": "Set member tags",
      "routing": {
        "request": {
          "body": {
            "query": "mutation AddMemberTags($input: ModifyMemberTagsInput!) {\n  addMemberTags(input: $input) {\n    err_code\n    member {\n      _id\n      externalId\n    }\n    memberId\n    ok\n  }\n}\n",
            "variables": {
              "input": {
                "channel": "={{$parameter.channel}}"
              }
            }
          }
        }
      },
      "resource": "memberAPI"
    },
    {
      "name": "Get Member Info By ID",
      "value": "getMemberInfo",
      "action": "Get member info by id",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data.apiViewer"
              }
            },
            null
          ]
        },
        "request": {
          "body": {
            "query": "query getMemberInfo($channelId: ID, $externalId: ID) {\n  apiViewer {\n    member(channelId: $channelId, externalId: $externalId) {\n      _id\n      createdAt\n      updatedAt\n      channelId\n      platform\n      tags\n      meta\n      externalId\n      botMeta {\n        subscribe\n        liveChat\n        treeId\n        nodeCompositeId\n        tree {\n          name\n        }\n        node {\n          name\n        }\n      }\n      name\n      firstName\n      lastName\n      gender\n      customLocale\n      locale\n      email\n    }\n  }\n}\n",
            "variables": {
              "channelId": "={{$parameter.channel}}",
              "externalId": "={{$parameter.externalId.replace(/[-()+]/g, \"\").replaceAll(\" \", \"\")}}"
            }
          }
        }
      },
      "resource": "memberAPI"
    },
    {
      "name": "Get Conversation History By ID",
      "value": "getConversationHistory",
      "action": "Get conversation history by id",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data.apiViewer.conversationHistory"
              }
            }
          ]
        },
        "request": {
          "body": {
            "query": "query getConversationHistory(\n  $channelId: String\n  $memberId: String\n  $last: IntMax100\n  $before: String\n  $from: Long\n  $to: Long\n) {\n  apiViewer {\n    conversationHistory(\n      channelId: $channelId\n      memberId: $memberId\n      last: $last\n      before: $before\n      from: $from\n      to: $to\n    ) {\n      edges {\n        node {\n          _id\n          messageEvent\n          id\n          createdAt\n          updatedAt\n          sentAt\n          readAt\n          deliveredAt\n          deletedAt\n          from\n          member {\n            name\n          }\n          memberId\n          errors\n          failedAt\n          platform\n          channelId\n          tags\n          meta\n          etag\n          isMultipleParty\n        }\n      }\n      pageInfo {\n        hasPreviousPage\n        startCursor\n      }\n    }\n  }\n}\n",
            "variables": {
              "last": "={{$parameter.maxResults || 100}}",
              "before": "={{$parameter.options.cursor || \"\"}}",
              "channelId": "={{$parameter.channel}}"
            }
          }
        }
      },
      "resource": "memberAPI"
    },
    {
      "name": "Send Responses",
      "value": "sendResponses",
      "action": "Send responses",
      "routing": {
        "request": {
          "url": "/sendResponses",
          "baseURL": "https://bot.api.woztell.com/"
        }
      },
      "resource": "botAPI"
    },
    {
      "name": "Redirect Member to Node",
      "value": "redirectMemberToNode",
      "action": "Redirect member to node",
      "routing": {
        "request": {
          "url": "/redirectMemberToNode",
          "baseURL": "https://bot.api.woztell.com/"
        }
      },
      "resource": "botAPI"
    },
    {
      "name": "Send Message Template",
      "value": "sendTemplates",
      "action": "Send message template",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/sendResponses",
          "baseURL": "https://bot.api.woztell.com/"
        }
      },
      "resource": "botAPI"
    }
  ]

npm_readme:
  # n8n-nodes-woztell-sanuker

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

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


  ## Product Features

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

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

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

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

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

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


  ## In case you don't have the n8n

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


  ## Sign up WOZTELL and WhatsApp Business API for Free

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

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

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

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

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

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

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

  ## Installation

  Install WOZTELL community node package in your n8n

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

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

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

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

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



  ## Credentials

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

  1.  Open **Credential**

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

  2.  Create credential by searching **WOZTELL**

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

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

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

  5.  Generate the access token

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

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

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

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

      

  ## Build automation with WOZTELL

  #### Create a n8n workflow

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

  #### Open the nodes panel

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

  #### Search WOZTELL

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



  ## Triggers and Nodes

  #### Overview

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

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

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

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



  #### Webhook: On WOZTELL Message received

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

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

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

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

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



  #### Node: Send Response

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

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

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

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



  #### Node: Redirect member to node

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

  This node can be understood as a memory pointer: it redirects the current operation to the WOZTELL Chatbot. You do not need to prepare complicated data structures; you only need to initiate a request to the BotAPI.

  For customers who already have chatbot designs running on the WOZTELL platform, this provides an excellent way to integrate with n8n.

  Learn more from: [https://doc.woztell.com/docs/reference/bot-api-reference#redirect-member-to-node](https://doc.woztell.com/docs/reference/bot-api-reference#redirect-member-to-node)

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

  #### Node: Send WhatsApp Template message

  According to WhatsApp’s official business messaging guidelines, when contacting unfamiliar WhatsApp numbers or numbers outside the 24-hour session window, you must first send a **WhatsApp Template Message**.

  Our n8n plugin significantly simplifies the complexity of working with WhatsApp Template Messages. The current node can automatically generate the required message content based on templates that have already been created and approved. You only need to complete the corresponding form fields, and the Template Message can be sent directly.

  Learn more from: [https://doc.woztell.com/docs/integrations/whatsapp/wa-message-types#whatsapp-message-template](https://doc.woztell.com/docs/integrations/whatsapp/wa-message-types#whatsapp-message-template)

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



  ## Contact

  We sincerely appreciate your strong support and understanding of our current n8n plugin. If you are interested in learning more about our products or services, you may also reach us through the following channels:

  *  WOZTELL product team: [https://woztell.com](https://woztell.com)
  *  Sanuker service team: [https://sanuker.com](https://sanuker.com)
  *  Email: [kris@woztell.com](mailto:kris@woztell.com)
  *  Email: [hello@woztell.com](mailto:hello@woztell.com)
  *  WOZTELL Customer Success WhatsApp: [https://wa.me/14157959796](https://wa.me/14157959796)
  *  Sanuker Service WhatsApp: [https://wa.me/85254432330](https://wa.me/85254432330)



  ## About Us

  **Sanuker**

  Sanuker is a leading AI Business Messaging Consulting firm, offering professional business messaging services and AI chatbot solutions tailored for enterprises. We distinguish ourselves in the market through our innovative approach to messaging designs and strategies, especially across Meta platforms - WhatsApp, Messenger, Instagram.

  As a trusted partners of AWS, HSBC Business Go, and Meta, we serve 10K+ clients across 25 countries through our WOZTELL Conversational Platform, empowering businesses to qualify leads and boost conversions.

  **WOZTELL**

  WOZTELL is your all-in-one platform to seamlessly create, manage, and deploy chatbots across WhatsApp, Messenger, Instagram, and Websites. Powered by cutting-edge GenAI engines, WOZTELL empowers you to execute personalized broadcasts, manage unlimited live chat agents, and integrate effortlessly with any third-party software via our robust OpenAPI.

  ## Resources

  - n8n Community Nodes, [https://docs.n8n.io/integrations/#community-nodes](https://docs.n8n.io/integrations/#community-nodes)
  - WOZTELL Platform documentation, [https://doc.woztell.com/](https://doc.woztell.com/)
  - WOZTELL Bot API, [https://doc.woztell.com/docs/reference/bot-api-reference](https://doc.woztell.com/docs/reference/bot-api-reference)
  - WOZTELL Open API, [https://doc.woztell.com/open-api-reference](https://doc.woztell.com/open-api-reference)
  - WOZTELL Webhook, [https://doc.woztell.com/docs/documentations/channels/channels-webhook](https://doc.woztell.com/docs/documentations/channels/channels-webhook)
  - WhatsApp Integration on Woztell: [https://doc.woztell.com/docs/integrations/whatsapp/wa-overview](https://doc.woztell.com/docs/integrations/whatsapp/wa-overview)
  - Facebook Messenger Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/facebook/fb-overview](https://doc.woztell.com/docs/integrations/facebook/fb-overview)
  - Instagram Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/instagram/ig-overview](https://doc.woztell.com/docs/integrations/instagram/ig-overview)
  - Webchat Integration on WOZTELL: [https://doc.woztell.com/docs/integrations/web-chat/webchat-overview](https://doc.woztell.com/docs/integrations/web-chat/webchat-overview)

ai_documentation_summary:
  {"purpose":"Automates messaging workflows across WhatsApp, Facebook Messenger, and Instagram by integrating WOZTELL's API with n8n for real-time message handling, chatbot forwarding, and user management.","capabilities":["Receive real-time messages from WhatsApp, Messenger, Instagram, WebChat, and websites","Send messages and approved message templates via WhatsApp Business API","Route conversations to WOZTELL chatbot for automated replies","Support all business message types and conversation categories","Batch query user information using Member Tags","Query and update user profiles, conversation histories, and related data via OpenAPI"],"authentication":"API Token (Access Token) with specific permissions (channel:list, botapi:sendResponses, bot:redirectMemberToNode)","commonUseCases":["Automated customer support on multiple messaging platforms","Chatbot integration for instant responses","Broadcasting personalized messages to customers","Inbox management and message routing"],"limitations":["Requires separate setup of WOZTELL account and WhatsApp Business API","Access token requires specific permission levels to function correctly","Node is a community package and may depend on n8n's community node support"],"relatedNodes":["Webhook Node","HTTP Request Node","If Node","Wait Node"]}


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

updated_at: 2026-07-14 14:40:33
author_name: thanks-io
author_github_url: https://github.com/thanks-io/
npm_package_name: n8n-nodes-thanks-io
npm_version: 0.2.2
community_fetched_at: 2026-07-14T14:40:33.634Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "recipient",
      "options": [
        {
          "name": "Mailer",
          "value": "mailer"
        },
        {
          "name": "Recipient",
          "value": "recipient"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendPostcard",
      "options": [
        {
          "name": "Send Giftcard",
          "value": "sendGiftcard",
          "action": "Send a giftcard",
          "description": "Send a giftcard mailer"
        },
        {
          "name": "Send Magnacard",
          "value": "sendMagnacard",
          "action": "Send a magnacard",
          "description": "Send a magnet-style mailer"
        },
        {
          "name": "Send Notecard",
          "value": "sendNotecard",
          "action": "Send a notecard",
          "description": "Send a folded notecard mailer"
        },
        {
          "name": "Send Postcard",
          "value": "sendPostcard",
          "action": "Send a 4x6 6x9 or 6x11 postcard",
          "description": "Send a postcard mailer"
        },
        {
          "name": "Send Windowed Letter",
          "value": "sendLetter",
          "action": "Send a windowed letter",
          "description": "Send a letter in a windowed envelope"
        },
        {
          "name": "Send Windowless Letter",
          "value": "sendWindowlessLetter",
          "action": "Send a windowless letter",
          "description": "Send a letter in a windowless envelope"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "mailer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create recipient",
          "description": "Add recipient to mailing list"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "recipient"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Giftcard",
      "value": "sendGiftcard",
      "action": "Send a giftcard",
      "description": "Send a giftcard mailer",
      "resource": "mailer"
    },
    {
      "name": "Send Magnacard",
      "value": "sendMagnacard",
      "action": "Send a magnacard",
      "description": "Send a magnet-style mailer",
      "resource": "mailer"
    },
    {
      "name": "Send Notecard",
      "value": "sendNotecard",
      "action": "Send a notecard",
      "description": "Send a folded notecard mailer",
      "resource": "mailer"
    },
    {
      "name": "Send Postcard",
      "value": "sendPostcard",
      "action": "Send a 4x6 6x9 or 6x11 postcard",
      "description": "Send a postcard mailer",
      "resource": "mailer"
    },
    {
      "name": "Send Windowed Letter",
      "value": "sendLetter",
      "action": "Send a windowed letter",
      "description": "Send a letter in a windowed envelope",
      "resource": "mailer"
    },
    {
      "name": "Send Windowless Letter",
      "value": "sendWindowlessLetter",
      "action": "Send a windowless letter",
      "description": "Send a letter in a windowless envelope",
      "resource": "mailer"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create recipient",
      "description": "Add recipient to mailing list",
      "resource": "recipient"
    }
  ]

npm_readme:
  # n8n-nodes-thanks-io

  This repository contains the official thanks.io community node for n8n.

  [thanks.io](https://www.thanks.io) provides everything you need for direct mail success, including AI-realistic handwritten postcards, letters, and notecards; QR tracking; delivery notifications; and powerful automation— all at super competitive pricing.

  ## Installation

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

  ## Credentials

  You must have a thanks.io API key to use this node. You can register for a free account and obtain an API key here:

  - https://www.thanks.io

  Once registered, generate a Personal Access Token in thanks.io:

  - Dashboard → Settings → API Access  
    https://dashboard.thanks.io/profile/api

  ![Generate thanks.io Token](images/token-create.png)

  Then in n8n, create a credential named **“Thanks.io API”** and paste in your token.


  ![Enter thanks.io Token](images/credentials-setup.png)

  ## Test Mode

  thanks.io has a built-in **API Testing Mode** that accepts orders normally but automatically cancels them instead of sending real mail. Use it while building and validating your n8n workflow.

  **What it does:**
  - Accepts your API requests and validates your payloads
  - Automatically cancels orders so no mail is physically sent
  - Prevents accidental production sends during development

  **When to go live:** Keep testing mode enabled until you have verified authentication is working, recipient payloads are correct, and creative/message fields render as expected. Then disable it to send real mail.

  **How to enable/disable:** Visit [Dashboard → Settings → API Access](https://dashboard.thanks.io/profile/api) and toggle **API/Zapier Test Mode**.

  > **Note:** If testing mode is off, you have a one-hour window to cancel an order manually before it moves further into fulfillment.

  ## Operations / Usage

  This node exposes two resources: **Mailer** and **Recipient**.

  ---

  ### Mailer

  Send physical mail pieces to recipients. All mailer operations share common fields for audience selection, creative content, and delivery options.

  #### Common fields (all mailer operations)

  | Field | Description |
  |---|---|
  | **Audience** | How recipients are targeted: *Mailing Lists*, *Recipients* (inline), or *Radius Search* (buy a nearby list) |
  | **Image Template ID** | ID of a saved image template for the front/background. Use `0` to omit. |
  | **Front Image URL** | Public URL to a front image (JPEG/PNG). Required if no Image Template ID is set. |
  | **Message** | Handwritten message text. Supports personalization tokens like `%FIRST_NAME%`. |
  | **Message Template ID** | ID of a saved message template. Use `0` to omit. |

  **Additional Fields** (optional, all operations):

  | Field | Description |
  |---|---|
  | Handwriting Style ID | ID of a handwriting font to use |
  | Handwriting Color | Preset name (`blue`, `black`, `green`, `purple`, `red`) or hex (`#4287f5`) |
  | Handwriting Realism | Enable AI realism effect on supported fonts |
  | Return Name / Address | Custom return address printed on the envelope |
  | Send Standard Mail | Use Standard postage instead of First Class |
  | Notification Emails | Comma-separated emails to notify on order events |
  | Preview | Return a preview without sending the mail piece |
  | Sub-Account ID | Route the order through a thanks.io sub-account |

  #### Audience types

  - **Mailing Lists** — Select one or more existing lists from the thanks.io dashboard.
  - **Recipients** — Provide recipient addresses directly in the node (Name, Address, City, State, Postal Code, Country, plus optional Email, Phone, DOB, Custom 1–4).
  - **Radius Search** — Purchase a list of addresses near a given address. Configure record count (1–10 000), record types (All, New Homeowner, Renters, etc.), and optional filters like condos and append data.

  ---

  #### Send Postcard

  Send a 4×6, 6×9, or 6×11 postcard.

  | Field | Description |
  |---|---|
  | **Size** | `4x6`, `6x9`, or `6x11` |
  | **QR Code URL** | Auto-generates a scannable QR code printed on the mailer |
  | Use Custom Background | Replace the default background with a custom image |
  | Custom Background Image URL | URL to the custom background image |

  ---

  #### Send Notecard

  Send a folded notecard (greeting card style).

  | Field | Description |
  |---|---|
  | **QR Code URL** | Auto-generates a QR code on the interior |
  | Use Custom Background | Replace the default background |
  | Custom Background Image URL | URL to the custom background image |

  ---

  #### Send Windowed Letter

  Send a letter in a windowed envelope (recipient address shows through window).

  | Field | Description |
  |---|---|
  | **QR Code URL** | Auto-generates a QR code on the letter |
  | Additional Pages URL | URL to extra pages to include after the cover letter |
  | PDF Only URL | URL to a PDF that replaces the entire letter (no cover letter generated) |

  ---

  #### Send Windowless Letter

  Send a letter in a standard windowless envelope.

  | Field | Description |
  |---|---|
  | **QR Code URL** | Auto-generates a QR code on the letter |
  | Additional Pages URL | URL to extra pages to include |
  | PDF Only URL | URL to a PDF that replaces the entire letter |

  ---

  #### Send Magnacard

  Send a magnet-style direct mail piece.

  | Field | Description |
  |---|---|
  | Use Custom Background | Replace the default background |
  | Custom Background Image URL | URL to the custom background image |

  ---

  #### Send Giftcard

  Send a physical gift card mailer bundled with a digital gift card.

  | Field | Description |
  |---|---|
  | **Giftcard Brand** | Brand of the gift card (e.g. Amazon, Visa). Select from the list or enter a brand code. |
  | **Giftcard Amount** | Face value of the gift card. Available amounts depend on the selected brand. |

  ---

  ### Recipient

  #### Add Recipient to Existing Mailing List

  Adds a contact to a mailing list and triggers any thanks.io campaign automation attached to that list. Campaigns can be created and edited in the [thanks.io Dashboard](https://dashboard.thanks.io/).

  | Field | Description |
  |---|---|
  | **Mailing List ID** | Select a list or enter its numeric ID |
  | **Name** | Recipient full name |
  | **Street Address** | Street address (or full address on one line) |
  | Address 2 | Apartment, suite, unit, etc. |
  | **City** | City |
  | **State** | State or province |
  | **Postal Code** | ZIP or postal code |
  | **Country** | Country |
  | Additional Fields | Company, Email, Phone, DOB, Custom 1–4 |

  ![Add Recipient to Existing Mailing List](images/new-recipient-setup.png)

  ## Compatibility

  Tested against n8n version **2.2.1**

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [thanks.io technical documentation](https://docs.thanks.io)
  - [thanks.io product documentation](https://help.thanks.io)

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the thanks.io API to manage direct mail campaigns, including adding recipients to mailing lists and triggering automation workflows.","capabilities":["Add recipients to existing mailing lists","Trigger thanks.io campaign automation","Manage direct mail campaigns via API"],"authentication":"API key required (Personal Access Token from thanks.io dashboard)","commonUseCases":["Automating thank-you note distribution","Integrating mailing list management into n8n workflows","Triggering delivery notifications for direct mail campaigns"],"limitations":["Campaign creation and editing must be done manually in the thanks.io dashboard","Node tested against n8n version 2.2.1"],"relatedNodes":["n8n-nodes-thanks-io.thanksIo"]}


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

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

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

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

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

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

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

  ## Installation

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

  ## Operations

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

  ## Credentials

  This node uses Crono Public API credentials.

  Credentials are required for all operations.

  You need:
  - API Key
  - API Secret

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

  ## Compatibility

  Minimum n8n version: 1.120.4  
  Tested against n8n version: 1.120.4

  ## Resources

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

  ## Version history

  * [CHANGELOG](./CHANGELOG.md)

  ----

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


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

updated_at: 2026-07-14 14:40:33
author_name: mollienl
author_github_url: https://github.com/mollie/mollie-n8n-nodes.git
npm_package_name: @mollie/n8n-nodes-mollie
npm_version: 1.1.0
community_fetched_at: 2026-07-14T14:40:33.639Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "payment",
      "options": [
        {
          "name": "Balance",
          "value": "balance"
        },
        {
          "name": "Payment",
          "value": "payment"
        },
        {
          "name": "Payment Link",
          "value": "paymentLink"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTransactions",
      "options": [
        {
          "name": "Get Many Transactions",
          "value": "getTransactions",
          "action": "Get many balance transactions",
          "routing": {
            "send": {
              "preSend": [
                null
              ],
              "paginate": true
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "_embedded.balance_transactions"
                  }
                },
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ $response.body._embedded.balance_transactions.map(item => ({ ...item, createdAt: new Date(item.createdAt) })) }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/balances/{{$parameter.balanceId}}/transactions",
              "method": "GET"
            }
          },
          "description": "Get many balance transactions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "balance"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a payment",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v2/payments",
              "body": {
                "amount": {
                  "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
                  "currency": "={{$parameter.currency}}"
                },
                "locale": "={{$parameter.additionalFields?.locale || undefined}}",
                "method": "={{$parameter.additionalFields?.method || undefined}}",
                "metadata": "={{$parameter.additionalFields?.metadata || undefined}}",
                "mandateId": "={{$parameter.additionalFields?.mandateId || undefined}}",
                "profileId": "={{$parameter.authentication === \"oAuth2\" ? $parameter.profileId : undefined}}",
                "customerId": "={{$parameter.additionalFields?.customerId || undefined}}",
                "webhookUrl": "={{$parameter.additionalFields?.webhookUrl || undefined}}",
                "captureMode": "={{$parameter.additionalFields?.captureMode || undefined}}",
                "description": "={{$parameter.description}}",
                "redirectUrl": "={{$parameter.redirectUrl}}",
                "sequenceType": "={{$parameter.additionalFields?.sequenceType || undefined}}",
                "restrictPaymentMethodsToCountry": "={{$parameter.additionalFields?.restrictPaymentMethodsToCountry || undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a payment"
        },
        {
          "name": "Create Capture",
          "value": "createCapture",
          "action": "Create a payment capture",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v2/payments/{{$parameter.paymentId}}/captures",
              "body": {
                "amount": {
                  "value": "={{$parameter.amount ? parseFloat($parameter.amount).toFixed(2) : undefined}}",
                  "currency": "={{$parameter.amount ? $parameter.currency : undefined}}"
                },
                "metadata": "={{$parameter.metadata || undefined}}",
                "description": "={{$parameter.description || undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Capture an authorized payment"
        },
        {
          "name": "Create Refund",
          "value": "createRefund",
          "action": "Create a payment refund",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v2/payments/{{$parameter.paymentId}}/refunds",
              "body": {
                "amount": {
                  "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
                  "currency": "={{$parameter.currency}}"
                },
                "metadata": "={{$parameter.additionalFields?.metadata || undefined}}",
                "description": "={{$parameter.description || undefined}}",
                "reverseRouting": "={{$parameter.additionalFields?.reverseRouting || undefined}}",
                "routingReversals": "={{ $parameter.additionalFields?.routingReversals?.reversalValues ? $parameter.additionalFields.routingReversals.reversalValues.map(r => ({ amount: { value: parseFloat(r.amountValue || 0).toFixed(2), currency: r.amountCurrency }, source: { type: r.sourceType, organizationId: r.organizationId } })) : undefined }}"
              },
              "method": "POST"
            }
          },
          "description": "Create a payment refund"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a payment",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v2/payments/{{$parameter.paymentId}}",
              "method": "GET"
            }
          },
          "description": "Get a payment by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many payments",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "_embedded.payments"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/payments",
              "method": "GET"
            }
          },
          "description": "Get many payments"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "payment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a payment link",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v2/payment-links",
              "body": {
                "amount": {
                  "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
                  "currency": "={{$parameter.currency}}"
                },
                "expiresAt": "={{$parameter.expiresAt ? new Date($parameter.expiresAt).toISOString() : undefined}}",
                "profileId": "={{$parameter.authentication === \"oAuth2\" ? $parameter.profileId : undefined}}",
                "webhookUrl": "={{$parameter.webhookUrl || undefined}}",
                "description": "={{$parameter.description}}",
                "redirectUrl": "={{$parameter.redirectUrl || undefined}}"
              },
              "method": "POST"
            }
          },
          "description": "Create a payment link"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "paymentLink"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many Transactions",
      "value": "getTransactions",
      "action": "Get many balance transactions",
      "routing": {
        "send": {
          "preSend": [
            null
          ],
          "paginate": true
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "_embedded.balance_transactions"
              }
            },
            {
              "type": "set",
              "properties": {
                "value": "={{ $response.body._embedded.balance_transactions.map(item => ({ ...item, createdAt: new Date(item.createdAt) })) }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/balances/{{$parameter.balanceId}}/transactions",
          "method": "GET"
        }
      },
      "description": "Get many balance transactions",
      "resource": "balance"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a payment",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v2/payments",
          "body": {
            "amount": {
              "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
              "currency": "={{$parameter.currency}}"
            },
            "locale": "={{$parameter.additionalFields?.locale || undefined}}",
            "method": "={{$parameter.additionalFields?.method || undefined}}",
            "metadata": "={{$parameter.additionalFields?.metadata || undefined}}",
            "mandateId": "={{$parameter.additionalFields?.mandateId || undefined}}",
            "profileId": "={{$parameter.authentication === \"oAuth2\" ? $parameter.profileId : undefined}}",
            "customerId": "={{$parameter.additionalFields?.customerId || undefined}}",
            "webhookUrl": "={{$parameter.additionalFields?.webhookUrl || undefined}}",
            "captureMode": "={{$parameter.additionalFields?.captureMode || undefined}}",
            "description": "={{$parameter.description}}",
            "redirectUrl": "={{$parameter.redirectUrl}}",
            "sequenceType": "={{$parameter.additionalFields?.sequenceType || undefined}}",
            "restrictPaymentMethodsToCountry": "={{$parameter.additionalFields?.restrictPaymentMethodsToCountry || undefined}}"
          },
          "method": "POST"
        }
      },
      "description": "Create a payment",
      "resource": "payment"
    },
    {
      "name": "Create Capture",
      "value": "createCapture",
      "action": "Create a payment capture",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v2/payments/{{$parameter.paymentId}}/captures",
          "body": {
            "amount": {
              "value": "={{$parameter.amount ? parseFloat($parameter.amount).toFixed(2) : undefined}}",
              "currency": "={{$parameter.amount ? $parameter.currency : undefined}}"
            },
            "metadata": "={{$parameter.metadata || undefined}}",
            "description": "={{$parameter.description || undefined}}"
          },
          "method": "POST"
        }
      },
      "description": "Capture an authorized payment",
      "resource": "payment"
    },
    {
      "name": "Create Refund",
      "value": "createRefund",
      "action": "Create a payment refund",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v2/payments/{{$parameter.paymentId}}/refunds",
          "body": {
            "amount": {
              "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
              "currency": "={{$parameter.currency}}"
            },
            "metadata": "={{$parameter.additionalFields?.metadata || undefined}}",
            "description": "={{$parameter.description || undefined}}",
            "reverseRouting": "={{$parameter.additionalFields?.reverseRouting || undefined}}",
            "routingReversals": "={{ $parameter.additionalFields?.routingReversals?.reversalValues ? $parameter.additionalFields.routingReversals.reversalValues.map(r => ({ amount: { value: parseFloat(r.amountValue || 0).toFixed(2), currency: r.amountCurrency }, source: { type: r.sourceType, organizationId: r.organizationId } })) : undefined }}"
          },
          "method": "POST"
        }
      },
      "description": "Create a payment refund",
      "resource": "payment"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a payment",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v2/payments/{{$parameter.paymentId}}",
          "method": "GET"
        }
      },
      "description": "Get a payment by ID",
      "resource": "payment"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many payments",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "_embedded.payments"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/payments",
          "method": "GET"
        }
      },
      "description": "Get many payments",
      "resource": "payment"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a payment link",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v2/payment-links",
          "body": {
            "amount": {
              "value": "={{parseFloat($parameter.amount || 0).toFixed(2)}}",
              "currency": "={{$parameter.currency}}"
            },
            "expiresAt": "={{$parameter.expiresAt ? new Date($parameter.expiresAt).toISOString() : undefined}}",
            "profileId": "={{$parameter.authentication === \"oAuth2\" ? $parameter.profileId : undefined}}",
            "webhookUrl": "={{$parameter.webhookUrl || undefined}}",
            "description": "={{$parameter.description}}",
            "redirectUrl": "={{$parameter.redirectUrl || undefined}}"
          },
          "method": "POST"
        }
      },
      "description": "Create a payment link",
      "resource": "paymentLink"
    }
  ]

npm_readme:
  # n8n-nodes-mollie

  This is an n8n community node that lets you use [Mollie](https://www.mollie.com/) payment API in your n8n workflows.

  Mollie is a payment service provider that allows businesses to accept online payments through various payment methods including credit cards, PayPal, Apple Pay, and more.

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

  ## Table of Contents

  - [Installation](#installation)
  - [Authentication](#authentication)
    - [API Key Authentication](#api-key-authentication)
    - [OAuth2 Authentication](#oauth2-authentication)
  - [Operations](#operations)
  - [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.

  ### Community Node Installation

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

  After installation, you can use the Mollie node in your workflows.

  ### Manual Installation (for development)

  1. Clone this repository
  2. Navigate to the repository folder
  3. Run `npm install`
  4. Run `npm run build`
  5. Link the package to your n8n installation:
     ```bash
     npm link
     cd ~/.n8n/nodes
     npm link n8n-nodes-mollie
     ```
  6. Restart n8n

  ## Authentication

  This node supports two authentication methods:

  ### API Key Authentication

  Simple authentication using your Mollie API key.

  **Prerequisites:**
  - A Mollie account ([sign up here](https://www.mollie.com/dashboard/signup))
  - API key from your Mollie Dashboard

  **Setup:**

  1. Go to your [Mollie Dashboard](https://www.mollie.com/dashboard)
  2. Navigate to **Developers** > **API keys**
  3. Copy your **Live API key** or **Test API key**
  4. In n8n, create a new **Mollie API** credential
  5. Paste your API key
  6. Set **Test Account** to `true` if using a test key, `false` for live keys
  7. Save the credential

  **API Key Format:**
  - Test keys start with `test_`
  - Live keys start with `live_`

  ### OAuth2 Authentication

  OAuth2 authentication provides more granular permission control and is required for some operations.

  **Prerequisites:**
  - A Mollie account
  - OAuth app configured in Mollie Dashboard (optional - shared app provided by default)

  **Setup with Default Shared App:**

  1. In n8n, create a new **Mollie OAuth2 API** credential
  2. Set **Test Account** to `true` for testing or `false` for production
  3. (Optional) Select **Additional Scopes** if you need permissions beyond the defaults
  4. Click **Connect my account**
  5. Follow the OAuth flow to authorize access
  6. Save the credential

  **Setup with Custom OAuth App:**

  1. Go to your [Mollie Dashboard](https://www.mollie.com/dashboard)
  2. Navigate to **Developers** > **OAuth Apps**
  3. Create a new OAuth app
  4. Set the redirect URL to: `https://your-n8n-instance.com/rest/oauth2-credential/callback`
  5. Note your Client ID and Client Secret
  6. In n8n, create a new **Mollie OAuth2 API** credential
  7. Enter your **Client ID** and **Client Secret**
  8. Set **Test Account** appropriately
  9. Select any **Additional Scopes** you need
  10. Click **Connect my account**
  11. Follow the OAuth flow to authorize access
  12. Save the credential

  **Available Scopes:**

  The node requests these scopes by default:
  - `organizations.read` - View the merchant's organizational details
  - `profiles.read` - View the merchant's payment profiles

  Additional scopes you can select:
  - `payments.read` - View payments, chargebacks, and payment methods
  - `payments.write` - Create and manage payments
  - `refunds.read` - View refunds
  - `refunds.write` - Create and manage refunds
  - `customers.read` - View customers
  - `customers.write` - Create and manage customers
  - `mandates.read` - View mandates
  - `mandates.write` - Create and manage mandates
  - `subscriptions.read` - View subscriptions
  - `subscriptions.write` - Create and manage subscriptions
  - `profiles.write` - Create and manage profiles
  - `invoices.read` - View invoices
  - `settlements.read` - View settlements
  - `orders.read` - View orders
  - `orders.write` - Create and manage orders
  - `shipments.read` - View shipments
  - `shipments.write` - Create and manage shipments
  - `organizations.write` - Manage organizational details
  - `onboarding.read` - View onboarding status
  - `onboarding.write` - Manage onboarding
  - `balances.read` - View balances

  ## Operations

  ### Payment

  #### Get Many
  Retrieve a list of payments.

  **Parameters:**
  - **Return All**: Whether to return all results or limit to a specific number
  - **Limit**: Maximum number of payments to return (1-250, default: 100)
  - **Filters**:
    - **Status**: Filter by payment status
      - All
      - Open
      - Canceled
      - Pending
      - Authorized
      - Expired
      - Failed
      - Paid

  **Output:**
  Returns an array of payment objects with the following fields:
  - `id` - Mollie payment ID
  - `amount` - Payment amount (as number)
  - `currency` - Payment currency code (e.g., EUR, USD)
  - `status` - Payment status
  - `description` - Payment description
  - `method` - Payment method used
  - `checkoutLink` - URL to the payment checkout page
  - `createdAt` - ISO timestamp when payment was created
  - `expiresAt` - ISO timestamp when payment expires
  - `expiredAt` - ISO timestamp when payment expired (if applicable)
  - `paidAt` - ISO timestamp when payment was paid (if applicable)
  - `amountRefunded` - Total refunded amount (as number)
  - `amountRemaining` - Remaining capturable amount (as number)
  - `settlementAmount` - Settlement amount (as number)
  - Plus all other fields from the Mollie API response

  #### Get
  Retrieve a single payment by ID.

  **Parameters:**
  - **Payment ID**: The Mollie payment ID (e.g., `tr_WDqYK6vllg`)

  **Output:**
  Returns a single payment object with the same fields as described in "Get Many".

  ## Compatibility

  - Requires n8n version 0.198.0 or later
  - Tested with n8n version 1.0.0+
  - Compatible with Mollie API v2

  ## Usage

  ### Example: List Recent Paid Payments

  1. Add the **Mollie** node to your workflow
  2. Select your authentication method and credential
  3. Choose **Payment** as the resource
  4. Choose **Get Many** as the operation
  5. Set **Return All** to `false`
  6. Set **Limit** to `50`
  7. Under **Filters**, set **Status** to `Paid`
  8. Execute the node

  This will return the 50 most recent paid payments from your Mollie account.

  ### Example: Get Specific Payment Details

  1. Add the **Mollie** node to your workflow
  2. Select your authentication method and credential
  3. Choose **Payment** as the resource
  4. Choose **Get** as the operation
  5. Enter the **Payment ID** (e.g., from a webhook or previous node)
  6. Execute the node

  This will return detailed information about the specific payment.

  ### Test Mode

  Both authentication methods include a **Test Account** parameter:
  - Set to `true` to work with test payments (using test API keys)
  - Set to `false` to work with live production payments

  When Test Account is enabled, all API requests will include `testmode=true`, ensuring you only see test data.

  ## Future Operations

  This node is designed to be extended with additional operations. Planned future operations include:

  - **Create Payment** - Create a new payment
  - **Create Payment Link** - Generate a payment link
  - **Create Refund** - Refund a payment
  - **Customer Operations** - Manage customers
  - **Subscription Operations** - Manage subscriptions
  - **Order Operations** - Manage orders

  Contributions are welcome!

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Mollie API documentation](https://docs.mollie.com/reference/v2/payments-api/overview)
  - [Mollie Authentication documentation](https://docs.mollie.com/reference/authentication)
  - [Mollie Dashboard](https://www.mollie.com/dashboard)

  ## Version History

  ### 1.0.0
  - Initial release
  - Support for API Key and OAuth2 authentication
  - List Payments operation with pagination
  - Get Payment operation
  - Test mode support
  - Comprehensive error handling including rate limiting

  ## License

  [MIT](LICENSE)

  ## Support

  For issues, questions, or contributions, please visit the [GitHub repository](https://github.com/mollie/mollie-n8n-nodes).

  ## Credits

  Developed based on the Make.com Mollie integration specification, adapted for n8n workflows.

ai_documentation_summary:
  {"purpose":"A community n8n node that enables interaction with the Mollie payment API to manage payments, refunds, customers, and other financial operations.","capabilities":["Retrieve payment lists with filtering and pagination","Retrieve individual payments by ID","Create and manage payments","Manage refunds","Manage customer data","Manage mandates","Manage subscriptions","Manage payment profiles","View invoices and settlements","Manage organizational details"],"authentication":"API Key or OAuth2","commonUseCases":["Automated order processing with payment verification","Refund management workflows","Customer payment history retrieval","Subscription management automation","Invoice and settlement tracking"],"limitations":["Community node (requires manual installation for development)","Limited to Mollie API operations","Requires Mollie account and API credentials"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code Node"]}


node_type: n8n-nodes-klicktipp.klicktippTrigger
package_name: n8n-nodes-klicktipp
display_name: KlickTipp Trigger
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: mchudesnov
author_github_url: https://github.com/klicktipp/n8n-community-node-klicktipp.git
npm_package_name: n8n-nodes-klicktipp
npm_version: 1.0.41
community_fetched_at: 2026-07-14T14:40:33.640Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Triggers when a webhook event occurs in KlickTipp, such as a tag being added, an email being opened or sent, a link clicked, an SMS sent, and more.

npm_readme:
  # n8n-nodes-klicktipp

  **KlickTipp n8n Community Node (npm: `n8n-nodes-klicktipp`)**

  **Same project, three surfaces:**
  - **npm package:** `n8n-nodes-klicktipp`
  - **GitHub repository:** `klicktipp/n8n-community-node-klicktipp`
  - **n8n integration page:** https://n8n.io/integrations/klicktipp/

  This repository contains the source code for the npm package **`n8n-nodes-klicktipp`**, which powers the official **KlickTipp n8n Community Node** listed on n8n.io.
  Note: The GitHub repository name and the npm package name differ. They refer to the same project.

  ## KlickTipp API Integration for n8n

  What is the KlickTipp Marketing Suite?

  <a href="https://www.klicktipp.com/de?source=n8n" title="E-Mail-Marketing" target="_blank" rel="noopener noreferrer">KlickTipp Marketing Suite</a> is a digital marketing platform that empowers creators and small businesses to generate leads and turn them into passionate customers. It boosts growth with GDPR-compliant tools for email and SMS marketing, marketing automation, landing pages, and conversion rate optimization.

  This package provides a set of nodes for interacting with the KlickTipp API, allowing you to manage contacts, tags, subscription processes, and more directly from n8n.
  For more detailed information on the KlickTipp API - covering functions for managing contacts, tags, fields, and more - please refer to the <a href="https://www.klicktipp.com/de/support/wissensdatenbank/application-programming-interface-api?source=n8n" target="_blank" rel="noopener" title="E-Mail-Marketing API">official KlickTipp API client documentation</a> and the <a href="https://www.klicktipp.com/support/knowledge-base/install-klicktipp-node-n8n?source=n8n" target="_blank" rel="noopener" title="Install KlickTipp Node for n8n">installation guide for the KlickTipp node in n8n</a>.

  ---

  ## Table of Contents

  - [Installation](#installation)
  - [Quickstart](#quickstart)
  - [Nodes Overview](#nodes-overview)
    - [Contact](#contact)
    - [Contact Tagging](#contact-tagging)
    - [Data Field](#data-field)
    - [Opt-In Process](#opt-in-process)
    - [Tag](#tag)
    - [Triggers](#triggers)
  - [Supported Resources and Operations](#supported-resources-and-operations)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [License](#license)
  - [Example Workflows](#example-workflows)
  - [Troubleshooting](#troubleshooting)

  ---

  ## Installation

  To install the package, run the following command in your n8n directory:

  ```bash
  npm install n8n-nodes-klicktipp
  ```

  ## Quickstart

  1. Install the package in your n8n instance: `npm install n8n-nodes-klicktipp`
  2. Restart n8n.
  3. In the n8n UI, add **KlickTipp** credentials (username + password).
  4. Add a KlickTipp node and choose a resource + operation (for example: Tag -> Create).
  5. Execute the workflow.

  ## Nodes Overview

  This package includes nodes to interact with various aspects of the KlickTipp API:

  ### Contact

  - **Nodes**:
    - `Add or update contact`
    - `Delete contact`
    - `Get contact`
    - `Search contact id`
    - `List contacts`
    - `Search tagged contacts`
    - `Unsubscribe contact`
    - `Update contact`
  - **Description**: Provides management capabilities for contacts, such as searching, updating, and deleting contact data.

  ### Contact Tagging

  - **Nodes**:
    - `Tag contact`
    - `Untag contact`
  - **Description**: Provides management capabilities for contacts tagging.

  ### Data Field

  - **Nodes**:
    - `Get data field`
    - `List data fields`
  - **Description**: Manages data fields, including retrieving all available data fields for contacts, and obtaining data field information.

  ### Opt-In Process

  - **Nodes**:
    - `Get Opt-in process`
    - `Search redirect URL`
    - `List Opt-in processes`
  - **Description**: Manages opt-in processes, including listing all processes, retrieving details of a specific process, and obtaining redirect URLs.

  ### Tag

  - **Nodes**:
    - `Create tag`
    - `Delete tag`
    - `Get tag`
    - `List tags`
    - `Update tag`
  - **Description**: Manages tags within KlickTipp, enabling operations to list, create, update, and delete tags.

  ### Triggers

  - **Node**: `On new KlickTipp event`
  - **Description**: Triggers when a webhook event occurs in KlickTipp, such as a tag being added, an email being opened or sent, a link clicked, an SMS sent, and more.

  ---

  ## Supported Resources and Operations

  Quick inventory (names as displayed in n8n):

  **Contact**
  - Add or update contact
  - Delete contact
  - Get contact
  - Search contact id
  - List contacts
  - Search tagged contacts
  - Unsubscribe contact
  - Update contact

  **Contact Tagging**
  - Tag contact
  - Untag contact

  **Data Field**
  - Get data field
  - List data fields

  **Opt-In Process**
  - Get Opt-in process
  - Search redirect URL
  - List Opt-in processes

  **Tag**
  - Create tag
  - Delete tag
  - Get tag
  - List tags
  - Update tag

  **Triggers**
  - On new KlickTipp event

  When building or generating n8n workflows, use the exact operation names above as they appear in the UI.

  ---

  ## Workflow Keys (for JSON generation)

  For the full, authoritative mapping of `resource` and `operation` keys, see `OPERATIONS.md`.
  This is the contract used to generate valid n8n workflow JSON.

  ---

  ## Credentials

  To authenticate with the KlickTipp API, configure your API credentials:

  - **Username**
  - **Password**

  Once set up, these credentials will be used across all KlickTipp nodes in the package.

  For the **KlickTipp Trigger**, you can also optionally configure body authentication directly in the node:

  - **Authentication**
    Default: `No`
    Choose `Yes` only if your KlickTipp webhook sends auth in the POST body as a static parameter. Choose `No` if no auth is required.
  - **Parameter Key**
    Default: `Authorization`
    Enter the exact body parameter key configured in KlickTipp. Usually: `Authorization`.
  - **Parameter Value**
    Default: empty
    Paste the webhook token exactly as stored in KlickTipp. Do not add `Bearer`, quotes, or extra spaces.

  Info:
  In KlickTipp, create or edit your webhook, set the HTTP method to `POST`, enable `Add static value`, and add the same key-value pair as a static POST body parameter. If this is missing, body authentication will fail.

  `Parameter Key`, `Parameter Value`, and the info box are shown only when `Authentication` is set to `Yes`.

  When `Authentication` is set to `Yes`, the trigger validates the incoming webhook body before the workflow starts. If the field is missing or the value does not match, the request is rejected and the workflow does not run.

  ---

  ## Compatibility

  - **n8n**: Community nodes (self-hosted or desktop)
  - **KlickTipp API**: Uses the official KlickTipp API
  - **Authentication**: Username + password

  If you are using n8n Cloud, install this community node in a self-hosted or desktop instance.

  ---

  ## License

  This package is licensed under the MIT License. For details, see the `LICENSE` file.

  ---

  ## Example Workflows

  Refer to the `examples/n8n-nodes-klicktipp.json` file for sample workflows showcasing the integration.
  For the exact resource and operation keys used in workflow JSON, see `OPERATIONS.md`.

  ---

  ## Troubleshooting

  - **Node not showing up**: Restart n8n after installing `n8n-nodes-klicktipp`.
  - **Auth errors**: Verify KlickTipp username/password and that API access is enabled.
  - **Operation not found in generated workflows**: Use the exact operation names listed in "Supported Resources and Operations".

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the KlickTipp marketing suite to manage contacts, tags, data fields, and opt-in processes, and triggers workflows on specific events like email opens or link clicks.","capabilities":["Add or update contacts","Delete contacts","Search and list contacts","Tag and untag contacts","Manage data fields","List and retrieve opt-in processes","Create, update, and delete tags","Trigger on webhook events (email opens, link clicks, SMS sent, etc.)"],"authentication":"Username and Password","commonUseCases":["Automated lead management and contact enrichment","Triggering workflows when users interact with marketing emails or landing pages","Managing contact tags and segmentation","Handling opt-in processes and subscription management"],"limitations":["Not compatible with n8n Cloud (requires self-hosted or desktop instance)","Requires manual installation via npm package","Authentication requires username and password (no API key mentioned)"],"relatedNodes":["n8n-nodes-klicktipp.klicktippContact","n8n-nodes-klicktipp.klicktippContactTagging","n8n-nodes-klicktipp.klicktippTag","n8n-nodes-klicktipp.klicktippDataField","n8n-nodes-klicktipp.klicktippOptInProcess"]}


node_type: n8n-nodes-wati.wati
package_name: n8n-nodes-wati
display_name: Wati
description: Send WhatsApp messages, manage contacts, deliver templates, and download media via Wati API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: nick-wati
author_github_url: https://github.com/nick-wati/
npm_package_name: n8n-nodes-wati
npm_version: 0.3.7
community_fetched_at: 2026-07-14T14:40:33.641Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "message",
      "options": [
        {
          "name": "Message",
          "value": "message"
        },
        {
          "name": "Template Message",
          "value": "templateMessage"
        },
        {
          "name": "Contact",
          "value": "contact"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendTextMessage",
      "options": [
        {
          "name": "Send Text Message",
          "value": "sendTextMessage",
          "action": "Send a text message",
          "description": "Send a text message to an active WhatsApp conversation (within 24h window)"
        },
        {
          "name": "Send Button Message",
          "value": "sendInteractiveButtons",
          "action": "Send a button message",
          "description": "Send a message with interactive buttons"
        },
        {
          "name": "Send List Message",
          "value": "sendInteractiveList",
          "action": "Send a list message",
          "description": "Send a message with a selectable list"
        },
        {
          "name": "Get Messages",
          "value": "getMessages",
          "action": "Get messages",
          "description": "Get messages for a conversation by conversation ID"
        },
        {
          "name": "Get Media",
          "value": "getMedia",
          "action": "Get a media file",
          "description": "Download a media file (image, video, document, etc.) by message ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendTemplateMessage",
      "options": [
        {
          "name": "Send Template Message",
          "value": "sendTemplateMessage",
          "action": "Send a template message",
          "description": "Send a template message (outside 24h window)"
        },
        {
          "name": "Get Templates",
          "value": "getTemplates",
          "action": "Get templates",
          "description": "Get list of message templates"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "templateMessage"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getContacts",
      "options": [
        {
          "name": "Get Contacts",
          "value": "getContacts",
          "action": "Get contacts",
          "description": "Get list of contacts"
        },
        {
          "name": "Get Contact Detail",
          "value": "getContactDetail",
          "action": "Get contact detail",
          "description": "Get details of a specific contact by phone number"
        },
        {
          "name": "Add Contact",
          "value": "addContact",
          "action": "Add a contact",
          "description": "Add a new contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send Text Message",
      "value": "sendTextMessage",
      "action": "Send a text message",
      "description": "Send a text message to an active WhatsApp conversation (within 24h window)",
      "resource": "message"
    },
    {
      "name": "Send Button Message",
      "value": "sendInteractiveButtons",
      "action": "Send a button message",
      "description": "Send a message with interactive buttons",
      "resource": "message"
    },
    {
      "name": "Send List Message",
      "value": "sendInteractiveList",
      "action": "Send a list message",
      "description": "Send a message with a selectable list",
      "resource": "message"
    },
    {
      "name": "Get Messages",
      "value": "getMessages",
      "action": "Get messages",
      "description": "Get messages for a conversation by conversation ID",
      "resource": "message"
    },
    {
      "name": "Get Media",
      "value": "getMedia",
      "action": "Get a media file",
      "description": "Download a media file (image, video, document, etc.) by message ID",
      "resource": "message"
    },
    {
      "name": "Send Template Message",
      "value": "sendTemplateMessage",
      "action": "Send a template message",
      "description": "Send a template message (outside 24h window)",
      "resource": "templateMessage"
    },
    {
      "name": "Get Templates",
      "value": "getTemplates",
      "action": "Get templates",
      "description": "Get list of message templates",
      "resource": "templateMessage"
    },
    {
      "name": "Get Contacts",
      "value": "getContacts",
      "action": "Get contacts",
      "description": "Get list of contacts",
      "resource": "contact"
    },
    {
      "name": "Get Contact Detail",
      "value": "getContactDetail",
      "action": "Get contact detail",
      "description": "Get details of a specific contact by phone number",
      "resource": "contact"
    },
    {
      "name": "Add Contact",
      "value": "addContact",
      "action": "Add a contact",
      "description": "Add a new contact",
      "resource": "contact"
    }
  ]

npm_readme:
  # n8n-nodes-wati

  This is an [n8n](https://n8n.io/) community node for [Wati](https://www.wati.io/) (WhatsApp Team Inbox). It lets you automate WhatsApp messaging workflows using the Wati API.

  [Wati](https://www.wati.io/) is a WhatsApp Business API solution that enables businesses to communicate with customers at scale through WhatsApp.

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

  1. Go to **Settings → Community Nodes** in your n8n instance.
  2. Click **Install a community node**.
  3. Enter `n8n-nodes-wati` and click **Install**.

  ## Credentials

  You need a Wati account to use this node. To set up credentials:

  1. Log in to your [Wati Dashboard](https://app.wati.io/).
  2. Go to **API Docs** to find your **API Endpoint URL** and **Access Token**.
  3. In n8n, create a new **Wati API** credential and enter these values.

  ## Supported Operations

  ### Wati Node

  #### Message
  - **Send Text Message** — Send a text message to an active WhatsApp conversation (within 24h window)
  - **Send Button Message** — Send a message with interactive buttons
  - **Send List Message** — Send a message with a selectable list
  - **Get Messages** — Retrieve messages for a conversation by conversation ID
  - **Get Media** — Download a media file (image, video, document, audio, etc.) by message ID

  #### Template Message
  - **Send Template Message** — Send a template message (works outside the 24h window)
  - **Get Templates** — Get a list of available message templates

  #### Contact
  - **Get Contacts** — Get a list of contacts
  - **Get Contact Detail** — Get details of a specific contact by phone number
  - **Add Contact** — Add a new contact

  ### Wati Trigger

  - **Webhook Trigger** — Receive incoming messages and status updates via webhook

  ## Resources

  - [Sign up for Wati](https://auth.wati.io/register/?utm_source=n8n&utm_medium=referral&utm_campaign=n8n)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"Automates WhatsApp messaging workflows by sending messages, managing contacts, delivering templates, and downloading media via the Wati API.","capabilities":["Send text messages to active conversations","Send button messages with interactive options","Send list messages with selectable items","Retrieve messages for a conversation by ID","Download media files (images, videos, documents, audio)","Send template messages outside the 24h window","Retrieve available message templates","Retrieve contact list","Get specific contact details by phone number","Add new contacts"],"authentication":"API key required (Access Token and API Endpoint URL from Wati Dashboard)","commonUseCases":["Automated customer support responses via WhatsApp","Sending promotional messages with interactive buttons or lists","Managing customer contact information in n8n workflows","Receiving and processing incoming WhatsApp messages"],"limitations":["Text messages can only be sent to active conversations within a 24-hour window","Template messages are required for sending outside the 24-hour window","Community node (not official n8n node)"],"relatedNodes":["Webhook Trigger","HTTP Request","Function","Wait"]}


node_type: @camb-ai/n8n-nodes-cambai.cambAi
package_name: @camb-ai/n8n-nodes-cambai
display_name: Camb.ai
description: Use Camb.ai for TTS, transcription, translation, voice cloning, and more
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: neilruaro-camb
author_github_url: https://github.com/camb-ai/n8n-nodes-cambai.git
npm_package_name: @camb-ai/n8n-nodes-cambai
npm_version: 0.1.5
community_fetched_at: 2026-07-14T14:40:33.642Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "audio",
      "options": [
        {
          "name": "Audio",
          "value": "audio",
          "description": "Generate or process audio"
        },
        {
          "name": "Text",
          "value": "text",
          "description": "Translate or transcribe text"
        },
        {
          "name": "Voice",
          "value": "voice",
          "description": "Create or clone voices"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "synthesize",
      "options": [
        {
          "name": "Synthesize (TTS)",
          "value": "synthesize",
          "action": "Synthesize text to speech",
          "description": "Convert text to speech"
        },
        {
          "name": "Translated TTS",
          "value": "translatedTts",
          "action": "Translate and synthesize",
          "description": "Translate text and convert to speech"
        },
        {
          "name": "Generate Sound",
          "value": "generateSound",
          "action": "Generate sound from prompt",
          "description": "Generate sound or music from text prompt"
        },
        {
          "name": "Separate Audio",
          "value": "separateAudio",
          "action": "Separate audio components",
          "description": "Isolate speech from background audio"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "transcribe",
      "options": [
        {
          "name": "Transcribe",
          "value": "transcribe",
          "action": "Transcribe audio to text",
          "description": "Convert speech to text"
        },
        {
          "name": "Translate",
          "value": "translate",
          "action": "Translate text",
          "description": "Translate text between languages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "text"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listVoices",
      "options": [
        {
          "name": "Clone Voice",
          "value": "cloneVoice",
          "action": "Clone voice from audio",
          "description": "Clone a voice from an audio sample"
        },
        {
          "name": "Create From Description",
          "value": "createVoice",
          "action": "Create voice from description",
          "description": "Create a voice from text description"
        },
        {
          "name": "List Voices",
          "value": "listVoices",
          "action": "List available voices",
          "description": "Get all available voices"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voice"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Synthesize (TTS)",
      "value": "synthesize",
      "action": "Synthesize text to speech",
      "description": "Convert text to speech",
      "resource": "audio"
    },
    {
      "name": "Translated TTS",
      "value": "translatedTts",
      "action": "Translate and synthesize",
      "description": "Translate text and convert to speech",
      "resource": "audio"
    },
    {
      "name": "Generate Sound",
      "value": "generateSound",
      "action": "Generate sound from prompt",
      "description": "Generate sound or music from text prompt",
      "resource": "audio"
    },
    {
      "name": "Separate Audio",
      "value": "separateAudio",
      "action": "Separate audio components",
      "description": "Isolate speech from background audio",
      "resource": "audio"
    },
    {
      "name": "Transcribe",
      "value": "transcribe",
      "action": "Transcribe audio to text",
      "description": "Convert speech to text",
      "resource": "text"
    },
    {
      "name": "Translate",
      "value": "translate",
      "action": "Translate text",
      "description": "Translate text between languages",
      "resource": "text"
    },
    {
      "name": "Clone Voice",
      "value": "cloneVoice",
      "action": "Clone voice from audio",
      "description": "Clone a voice from an audio sample",
      "resource": "voice"
    },
    {
      "name": "Create From Description",
      "value": "createVoice",
      "action": "Create voice from description",
      "description": "Create a voice from text description",
      "resource": "voice"
    },
    {
      "name": "List Voices",
      "value": "listVoices",
      "action": "List available voices",
      "description": "Get all available voices",
      "resource": "voice"
    }
  ]

npm_readme:
  # @camb-ai/n8n-nodes-cambai

  This is an n8n community node for [Camb.ai](https://camb.ai) - an AI-powered audio platform providing text-to-speech, voice cloning, transcription, translation, and more.

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

  ## Operations

  ### Audio
  - **Synthesize (TTS)** - Convert text to speech using MARS models (flash, pro, instruct)
  - **Translated TTS** - Translate text and synthesize speech in one step
  - **Generate Sound** - Generate sound effects or music from text prompts
  - **Separate Audio** - Isolate foreground (vocals) from background audio

  ### Text
  - **Transcribe** - Convert speech to text with timestamps and speaker identification
  - **Translate** - Translate text between languages

  ### Voice
  - **Clone Voice** - Create a custom voice from an audio sample
  - **Create from Description** - Generate a voice from a text description
  - **List Voices** - Get all available voices

  ## Credentials

  You need a Camb.ai API key to use this node. Get your API key from [Camb.ai](https://studio.camb.ai).

  ## Compatibility

  - Requires n8n version 1.0.0 or later
  - Tested with n8n version 2.2.0

  ## Resources

  - [Camb.ai Documentation](https://docs.camb.ai)
  - [Camb.ai API Reference](https://docs.camb.ai/api-reference)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Camb.ai for audio processing tasks including text-to-speech, transcription, translation, voice cloning, and audio separation.","capabilities":["Text-to-speech synthesis using MARS models (flash, pro, instruct)","Translated text-to-speech (translate and synthesize in one step)","Sound effect and music generation from text prompts","Audio foreground/background separation","Speech-to-text transcription with timestamps and speaker ID","Text translation between languages","Custom voice cloning from audio samples","Voice generation from text descriptions","List available voices"],"authentication":"API key required (obtained from Camb.ai studio)","commonUseCases":["Automated content generation with natural-sounding voices","Audio file processing and cleanup","Multilingual content translation and speech synthesis","Voice cloning for personalized audio experiences","Transcription of spoken content for workflows"],"limitations":["Requires n8n version 1.0.0 or later","Community node (may have fewer updates than official nodes)"],"relatedNodes":["n8n HTTP Request","n8n Code","n8n Split In Batches"]}


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

updated_at: 2026-07-14 14:40:33
author_name: janskacel
author_github_url: https://github.com/Leadspicker/n8n-nodes-leadspicker.git
npm_package_name: @leadspicker/n8n-nodes-leadspicker
npm_version: 0.4.4
community_fetched_at: 2026-07-14T14:40:33.643Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "project",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Campaign",
          "value": "project"
        },
        {
          "name": "Global Exclusion List",
          "value": "globalExclusionList"
        },
        {
          "name": "Lead",
          "value": "person"
        },
        {
          "name": "Linkedin",
          "value": "linkedinActivity"
        },
        {
          "name": "Outreach",
          "value": "outreach"
        },
        {
          "name": "Reply",
          "value": "reply"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInfo",
      "options": [
        {
          "name": "Get Account Info",
          "value": "getInfo",
          "action": "Get account info",
          "description": "Retrieve details about the current account and organization quotas"
        }
      ],
      "displayName": "Account Actions",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Bulk Create Leads",
          "value": "bulkCreate",
          "action": "Bulk create leads",
          "description": "Create multiple leads in a campaign"
        },
        {
          "name": "Create Lead",
          "value": "create",
          "action": "Create a lead",
          "description": "Create a new lead in a campaign"
        },
        {
          "name": "Delete Lead",
          "value": "delete",
          "action": "Delete a lead",
          "description": "Delete a lead"
        },
        {
          "name": "Find by Company Linkedin",
          "value": "byCompanyLinkedin",
          "action": "Find leads by company profile",
          "description": "Find leads by a company LinkedIn URL"
        },
        {
          "name": "Find by Company Name",
          "value": "byCompanyName",
          "action": "Find leads by company name",
          "description": "Find leads by a company name"
        },
        {
          "name": "Get Lead",
          "value": "get",
          "action": "Get a lead",
          "description": "Get a lead by ID"
        },
        {
          "name": "List Leads",
          "value": "list",
          "action": "List leads",
          "description": "List leads in a campaign"
        },
        {
          "name": "Update Lead",
          "value": "update",
          "action": "Update a lead",
          "description": "Update an existing lead"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "person"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add Lead to Campaign Exclusion List",
          "value": "addToExclusionList",
          "action": "Add lead to exclusion list",
          "description": "Blacklist a lead identifier for a campaign"
        },
        {
          "name": "Create Campaign",
          "value": "create",
          "action": "Create a campaign",
          "description": "Create a new campaign"
        },
        {
          "name": "Delete Campaign",
          "value": "delete",
          "action": "Delete a campaign",
          "description": "Delete a campaign"
        },
        {
          "name": "Get Campaign Log",
          "value": "getCampaignLog",
          "action": "Get campaign log",
          "description": "Retrieve campaign timeline events"
        },
        {
          "name": "Get Exclusion List",
          "value": "getExclusionList",
          "action": "Get exclusion list",
          "description": "Retrieve all identifiers blacklisted for a campaign"
        },
        {
          "name": "Remove Lead From Campaign Exclusion List",
          "value": "removeFromExclusionList",
          "action": "Remove lead from exclusion list",
          "description": "Delete a specific identifier from a campaign blacklist"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get Replies",
          "value": "list",
          "action": "Get replies",
          "description": "Get replies for a lead"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reply"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getProfile",
      "options": [
        {
          "name": "Get Activities",
          "value": "getActivities",
          "action": "Get recent profile activities",
          "description": "Get a profile's recent activities (reactions and comments)"
        },
        {
          "name": "Get Interactions for LinkedIn Post Search",
          "value": "searchPostReactors",
          "action": "Get interactions for linkedin post search",
          "description": "Retrieve LinkedIn profiles that interacted with posts returned by a content search URL"
        },
        {
          "name": "Get Interactions for Profiles",
          "value": "profilesPostReactors",
          "action": "Get interactors for profiles",
          "description": "Retrieve interactors for posts authored by specific LinkedIn profiles"
        },
        {
          "name": "Get Post Interactors",
          "value": "getPostReactors",
          "action": "Get post interactors",
          "description": "Get people who interact with posts and send to a webhook"
        },
        {
          "name": "Get Profile Details",
          "value": "getProfile",
          "action": "Get profile details",
          "description": "Scrapes and returns details for a LinkedIn profile"
        },
        {
          "name": "Get Recent Profile Posts",
          "value": "getPosts",
          "action": "Get recent profile posts",
          "description": "Get profile's recent posts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "linkedinActivity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Add Lead to Global Exclusion List",
          "value": "addLead",
          "action": "Add lead to global exclusion list",
          "description": "Blacklist an identifier for the entire organization"
        },
        {
          "name": "Remove Lead From Global Exclusion List",
          "value": "removeLead",
          "action": "Remove lead from global exclusion list",
          "description": "Delete a specific identifier from the global blacklist"
        },
        {
          "name": "Get Global Exclusion List",
          "value": "get",
          "action": "Get global exclusion list",
          "description": "Retrieve the global text-based blacklist for the authenticated organization"
        }
      ],
      "displayName": "Global Exclusion List Actions",
      "displayOptions": {
        "show": {
          "resource": [
            "globalExclusionList"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getLinkedinAccounts",
      "options": [
        {
          "name": "Get LinkedIn Accounts",
          "value": "getLinkedinAccounts",
          "action": "Get linkedin accounts",
          "description": "Retrieve all connected outreach LinkedIn accounts"
        },
        {
          "name": "Get Email Accounts",
          "value": "getEmailAccounts",
          "action": "Get email accounts",
          "description": "Retrieve all configured outreach email accounts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "outreach"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Account Info",
      "value": "getInfo",
      "action": "Get account info",
      "description": "Retrieve details about the current account and organization quotas",
      "resource": "account"
    },
    {
      "name": "Bulk Create Leads",
      "value": "bulkCreate",
      "action": "Bulk create leads",
      "description": "Create multiple leads in a campaign",
      "resource": "person"
    },
    {
      "name": "Create Lead",
      "value": "create",
      "action": "Create a lead",
      "description": "Create a new lead in a campaign",
      "resource": "person"
    },
    {
      "name": "Delete Lead",
      "value": "delete",
      "action": "Delete a lead",
      "description": "Delete a lead",
      "resource": "person"
    },
    {
      "name": "Find by Company Linkedin",
      "value": "byCompanyLinkedin",
      "action": "Find leads by company profile",
      "description": "Find leads by a company LinkedIn URL",
      "resource": "person"
    },
    {
      "name": "Find by Company Name",
      "value": "byCompanyName",
      "action": "Find leads by company name",
      "description": "Find leads by a company name",
      "resource": "person"
    },
    {
      "name": "Get Lead",
      "value": "get",
      "action": "Get a lead",
      "description": "Get a lead by ID",
      "resource": "person"
    },
    {
      "name": "List Leads",
      "value": "list",
      "action": "List leads",
      "description": "List leads in a campaign",
      "resource": "person"
    },
    {
      "name": "Update Lead",
      "value": "update",
      "action": "Update a lead",
      "description": "Update an existing lead",
      "resource": "person"
    },
    {
      "name": "Add Lead to Campaign Exclusion List",
      "value": "addToExclusionList",
      "action": "Add lead to exclusion list",
      "description": "Blacklist a lead identifier for a campaign",
      "resource": "project"
    },
    {
      "name": "Create Campaign",
      "value": "create",
      "action": "Create a campaign",
      "description": "Create a new campaign",
      "resource": "project"
    },
    {
      "name": "Delete Campaign",
      "value": "delete",
      "action": "Delete a campaign",
      "description": "Delete a campaign",
      "resource": "project"
    },
    {
      "name": "Get Campaign Log",
      "value": "getCampaignLog",
      "action": "Get campaign log",
      "description": "Retrieve campaign timeline events",
      "resource": "project"
    },
    {
      "name": "Get Exclusion List",
      "value": "getExclusionList",
      "action": "Get exclusion list",
      "description": "Retrieve all identifiers blacklisted for a campaign",
      "resource": "project"
    },
    {
      "name": "Remove Lead From Campaign Exclusion List",
      "value": "removeFromExclusionList",
      "action": "Remove lead from exclusion list",
      "description": "Delete a specific identifier from a campaign blacklist",
      "resource": "project"
    },
    {
      "name": "Get Replies",
      "value": "list",
      "action": "Get replies",
      "description": "Get replies for a lead",
      "resource": "reply"
    },
    {
      "name": "Get Activities",
      "value": "getActivities",
      "action": "Get recent profile activities",
      "description": "Get a profile's recent activities (reactions and comments)",
      "resource": "linkedinActivity"
    },
    {
      "name": "Get Interactions for LinkedIn Post Search",
      "value": "searchPostReactors",
      "action": "Get interactions for linkedin post search",
      "description": "Retrieve LinkedIn profiles that interacted with posts returned by a content search URL",
      "resource": "linkedinActivity"
    },
    {
      "name": "Get Interactions for Profiles",
      "value": "profilesPostReactors",
      "action": "Get interactors for profiles",
      "description": "Retrieve interactors for posts authored by specific LinkedIn profiles",
      "resource": "linkedinActivity"
    },
    {
      "name": "Get Post Interactors",
      "value": "getPostReactors",
      "action": "Get post interactors",
      "description": "Get people who interact with posts and send to a webhook",
      "resource": "linkedinActivity"
    },
    {
      "name": "Get Profile Details",
      "value": "getProfile",
      "action": "Get profile details",
      "description": "Scrapes and returns details for a LinkedIn profile",
      "resource": "linkedinActivity"
    },
    {
      "name": "Get Recent Profile Posts",
      "value": "getPosts",
      "action": "Get recent profile posts",
      "description": "Get profile's recent posts",
      "resource": "linkedinActivity"
    },
    {
      "name": "Add Lead to Global Exclusion List",
      "value": "addLead",
      "action": "Add lead to global exclusion list",
      "description": "Blacklist an identifier for the entire organization",
      "resource": "globalExclusionList"
    },
    {
      "name": "Remove Lead From Global Exclusion List",
      "value": "removeLead",
      "action": "Remove lead from global exclusion list",
      "description": "Delete a specific identifier from the global blacklist",
      "resource": "globalExclusionList"
    },
    {
      "name": "Get Global Exclusion List",
      "value": "get",
      "action": "Get global exclusion list",
      "description": "Retrieve the global text-based blacklist for the authenticated organization",
      "resource": "globalExclusionList"
    },
    {
      "name": "Get LinkedIn Accounts",
      "value": "getLinkedinAccounts",
      "action": "Get linkedin accounts",
      "description": "Retrieve all connected outreach LinkedIn accounts",
      "resource": "outreach"
    },
    {
      "name": "Get Email Accounts",
      "value": "getEmailAccounts",
      "action": "Get email accounts",
      "description": "Retrieve all configured outreach email accounts",
      "resource": "outreach"
    }
  ]

npm_readme:
  # **n8n-nodes-leadspicker**

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

  Leadspicker is a B2B data and sales intelligence platform that helps businesses find, enrich, and connect with relevant contacts.

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

  [Installation](#installation)

  [Operations](#operations)

  [Triggers](#triggers)

  [Credentials](#credentials)

  [Compatibility](#compatibility)

  [Resources](#resources)

  [Changelog](#changelog)

  ## **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 resources and operations:

  * **Lead**
    * Create a new lead in a campaign
    * Delete a lead
    * Get a lead by ID
    * List leads in a campaign
    * Update an existing lead
    * Find leads by a company's LinkedIn URL
    * Find leads by a company's name
  * **Campaign**
    * Create a new campaign
    * Delete a campaign
    * Get the campaign log (timeline events with optional search, date, person, and type filters)
    * Add a lead to the campaign exclusion list
    * Remove a lead from the campaign exclusion list
    * Get the campaign exclusion list
  * **Reply**
    * Get replies based on filters (email accounts, campaigns, sentiment)
  * **Linkedin Activity**
    * Get a LinkedIn profile's details
    * Get a profile's latest posts
    * Get a profile's recent activities (reactions and comments)
    * Get people who reacted to posts and send the results to a webhook
    * Retrieve LinkedIn profiles that reacted to posts returned by a content search URL
    * Retrieve reactors for posts authored by specific LinkedIn profiles
  * **Global Exclusion List**
    * Add a lead identifier to the global exclusion list
    * Remove a lead identifier from the global exclusion list
    * Get the global exclusion list
  * **Outreach**
    * List LinkedIn outreach accounts
    * List email outreach accounts
  * **Account**
    * Get account info and limits

  Note: The Linkedin Activity operations "Search Post Reactors" and "Profiles Post Reactors" auto-paginate. They aggregate all pages internally (handling the cursor automatically) and return a single flat list of reactor profiles.

  ## **Triggers**

  The Leadspicker Trigger node lets you subscribe to webhook events across all projects or filter down to a single campaign and fire workflows from these Leadspicker events:

  * Account revoked (connected account access revoked)
  * Email bounced
  * Email reply
  * Email sent
  * LinkedIn reply
  * LinkedIn sent
  * Lead added to a project

  ## **Credentials**

  To use this node, you need to authenticate using your Leadspicker API credentials.

  1. Sign up for an account with [Leadspicker](https://leadspicker.com/).
  2. Find your API Key in your account settings on the Leadspicker platform.
  3. In n8n, create a new credential for the Leadspicker node.
  4. Enter your API Key into the credential configuration screen.

  ## **Compatibility**

  This node has been developed and tested against n8n version 1.0.0. It may work with older versions, but it is not guaranteed.

  ## **Resources**

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Leadspicker Website](https://leadspicker.com/)

  ## **Changelog**

  ### 0.4.3

  * Replaced global timer usage with n8n workflow sleep helper to satisfy community-node linting.

  ### 0.4.2

  * Compliance fixes for n8n verification (removed external dependency usage and updated auth helper).

  ### 0.4.1
  * Added an **Account** resource with a "Get Account Info" action that surfaces subscription renewal dates, allowed LinkedIn/email accounts, allowed robots, and how many robots are currently running.
  * Added an **Outreach** resource to list all connected LinkedIn accounts and configured email accounts in one call so workflows can fan out automatically.
  * Added campaign-level exclusion list management actions (add, remove, list).
  * Added a **Global Exclusion List** resource to manage the organization-wide blacklist and return categorized LinkedIn/email/domain identifiers.
  * Leadspicker Trigger can now listen to every project when no campaign is selected.
  * Leadspicker Trigger requests Leadspicker to immediately send a test payload whenever the node is executed manually so `Test workflow` runs receive sample data instantly.
  * Added a **Bulk Create Leads** action under the Lead resource to send multiple user-provided leads (with optional custom fields) to the `/persons/bulk` API endpoint in a single call.

  ### 0.4.0

  * **Breaking:** Replaced the legacy `leadspickerNode` with the new `Leadspicker` node (type `leadspicker`), renamed resources to Lead/Campaign/Reply/Linkedin, and moved the AutoCPH operations under the Lead resource. Existing workflows referencing `leadspickerNode` must be recreated.
  * **Breaking:** Lead operations now expose individual fields (name, email, company, socials, custom fields) and all ID selectors use "Name or ID" dropdowns with a manual ID fallback, so any references to the previous collection-style parameters need to be reconfigured.
  * **Breaking:** Lead responses are flattened (no nested `person_data`) and the Lead/Reply list operations auto-paginate to return the entire dataset rather than a single page, changing the output structure and removing pagination parameters.
  * Added the Leadspicker Trigger node that manages webhooks for account revoked, email sent/replied/bounced, LinkedIn sent/replied, and lead-added events per campaign.
  * Linkedin Activity operations gained new controls (include/exclude profile cards, opt-in liker/commenter collection) and cursor-based aggregation so reactor searches return a single deduplicated array.
  * Lead finders now return the same flattened lead payloads as create/get/update results, keeping company/contact metadata consistent when searching by company name or LinkedIn URL.

  ### 0.3.1

  * Legacy release of the original `leadspickerNode` implementation.

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the Leadspicker B2B sales intelligence API for managing leads, campaigns, LinkedIn activities, and outreach accounts.","capabilities":["Create, delete, list, and update leads by ID, company name, or LinkedIn URL","Bulk create leads in a single API call","Manage campaigns including logs, exclusion lists, and creation/deletion","Retrieve and filter replies based on email accounts, campaigns, or sentiment","Fetch LinkedIn profile details, posts, and recent activities","Search for and retrieve people who reacted to LinkedIn posts","Manage global and campaign-level exclusion lists","List connected LinkedIn and email outreach accounts","Retrieve account info and subscription limits","Subscribe to webhook events for account revocation, email bounces, sends, and replies"],"authentication":"API Key required","commonUseCases":["Automating lead generation and enrichment from company data","Managing B2B outreach campaigns and tracking engagement","Monitoring LinkedIn activity and collecting profile reactions","Handling email bounce and reply notifications via webhooks","Managing contact exclusion lists to prevent duplicate outreach"],"limitations":["Requires a paid Leadspicker account with API credentials","Requires n8n version 1.0.0 or later for guaranteed compatibility","Legacy node types (leadspickerNode) are deprecated and require workflow recreation","Lead responses are flattened and no longer support nested data structures"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Sleep","n8n Split In Batches"]}


