# nodes

node_type: @markupai/n8n-nodes-markupai.markupai
package_name: @markupai/n8n-nodes-markupai
display_name: Markup AI
description: Markup AI Content Checker
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: abhijeet_narvekar
author_github_url: https://github.com/markupai/n8n-app.git
npm_package_name: @markupai/n8n-nodes-markupai
npm_version: 0.2.5
community_fetched_at: 2026-04-16T09:43:36.137Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "content",
      "options": [
        {
          "name": "Content",
          "value": "content"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "styleCheck",
      "options": [
        {
          "name": "Style Check",
          "value": "styleCheck",
          "action": "Content style check",
          "description": "Check the content against your style and branding guidelines"
        },
        {
          "name": "Style Rewrite",
          "value": "styleRewrite",
          "action": "Content style rewrite",
          "description": "Rewrite the content against your style and branding guidelines"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "content"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Style Check",
      "value": "styleCheck",
      "action": "Content style check",
      "description": "Check the content against your style and branding guidelines",
      "resource": "content"
    },
    {
      "name": "Style Rewrite",
      "value": "styleRewrite",
      "action": "Content style rewrite",
      "description": "Rewrite the content against your style and branding guidelines",
      "resource": "content"
    }
  ]

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

  # n8n-nodes-markupai

  This is an n8n community node that integrates [Markup AI](https://markup.ai/) — a content guardian platform for ensuring brand-compliant, consistent, and engaging content.

  [Markup AI](https://markup.ai/) provides AI-powered content analysis, suggestions, and rewrites based on your organization's brand standards. Integrate content quality checks and automated improvements directly into your n8n workflows.

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

  ## Installation

  ### Community Nodes (Recommended)

  1. In n8n, go to **Settings** > **Community Nodes**
  2. Select **Install**
  3. Enter `@markupai/n8n-nodes-markupai` in the package field
  4. Click **Install**

  For detailed instructions, visit the [n8n community nodes installation guide](https://docs.n8n.io/integrations/community-nodes/installation/).

  ### Manual Installation

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

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

  ## Operations

  The Markup AI node supports the following operations:

  ### Style Check

  Analyze content for quality issues without making changes.

  **Returns:**

  - Quality, clarity, and grammar scores
  - Style guide compliance metrics
  - Tone analysis
  - Readability metrics
  - Detailed list of identified issues

  ### Style Rewrite

  Automatically rewrite and improve content using AI.

  **Returns:**

  - Improved content version
  - Before/after quality scores
  - Score improvements
  - Comparison metrics

  ## Credentials

  To use this node, you'll need a Markup AI API account.

  ### Setting up credentials:

  1. Sign up for a [Markup AI account](https://markup.ai/#early-access)
  2. Get your API key from your account settings
  3. In n8n, add new credentials:
     - Go to **Credentials** > **New**
     - Search for **Markup AI API**
     - Enter your API key
     - Click **Save**

  ## Usage

  ### Configuration Options

  All operations support the following options:

  | Option                  | Type    | Default | Description                                 |
  | ----------------------- | ------- | ------- | ------------------------------------------- |
  | **Style Guide**         | String  | -       | The style guide to apply                    |
  | **Dialect**             | String  | -       | The dialect to be used for content analysis |
  | **Tone**                | String  | -       | The desired tone for content (optional)     |
  | **Wait for Completion** | Boolean | `true`  | Auto-poll for results                       |
  | **Polling Timeout**     | Number  | `60000` | Maximum wait time in milliseconds           |
  | **Polling Interval**    | Number  | `2000`  | Polling frequency in milliseconds           |

  ### Example Workflows

  #### Content Quality Gate

  1. Trigger: New document added to Google Drive
  2. **Markup AI** → Style Check: Analyze document content
  3. Condition: Check if quality score meets threshold
  4. If passed: Approve and publish
  5. If failed: Send notification to content team

  #### Automated Content Improvement

  1. Trigger: Webhook receives content for publication
  2. **Markup AI** → Style Check: Analyze initial quality
  3. **Markup AI** → Style Rewrite: Improve content
  4. Send improved version to CMS for publication

  ### Common Use Cases

  - **Content Compliance & Consistency**: Ensure all company content — from blogs and web pages to documentation and marketing materials — aligns with brand and style guidelines while maintaining a consistent tone.

  - **Automated Quality Gates**: Ensure content meets standards automatically before publication. Monitor content changes in real-time and prevent non-compliant content from going live.

  - **Quality at the Source**: Create and maintain high-quality content right where it's produced. Proactively monitor consistency and compliance across CMS platforms like Google Drive and beyond.

  - **Early Issue Detection**: Automatically identify and flag potential issues or non-compliant content within workflows before they become problems.

  - **Streamlined Content Compliance**: Minimize manual reviews by automating content compliance checks and review processes throughout your content lifecycle.

  - **Actionable Alerts**: Go beyond flagging issues — automatically trigger notifications to stakeholders within workflows, transforming compliance checks into immediate corrective actions.

  ## Resources

  - [Markup AI Documentation](https://docs.markup.ai/)
  - [Markup AI Website](https://markup.ai/)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [n8n Documentation](https://docs.n8n.io/)
  - [GitHub Repository](https://github.com/markupai/n8n-app)

  ## Development

  Contributions are welcome! This section is for developers who want to contribute to this community node or set up a local development environment.

  ### Prerequisites

  - Node.js >= 24
  - npm
  - Basic familiarity with n8n and TypeScript

  ### Quick Setup (Recommended)

  After cloning this repository, run the automated setup script:

  ```bash
  npm run setup
  ```

  This will:

  - Install dependencies (including n8n as a devDependency)
  - Build the code and create the dist folder
  - Link the package from the dist folder (avoiding node_modules conflicts)
  - Configure the n8n custom directory
  - Fix n8n config file permissions
  - Link the package for local development

  Then start n8n:

  ```bash
  npm start
  ```

  This uses the local n8n installation from devDependencies — no global installation needed!

  **Note:** The setup links from the `dist` folder rather than the project root. This ensures that n8n only loads the compiled code without development dependencies, preventing module loading conflicts.

  ### Environment Configuration

  For development, you can configure the API base URL using environment variables:

  **Option 1: Using a `.env` file**

  1. Copy the example environment file:

     ```bash
     cp .env.example .env
     ```

  2. Edit `.env` and set your development API URL:

     ```bash
     MARKUP_AI_BASE_URL=https://api.dev.markup.ai/
     ```

  3. Start n8n (it will automatically load the `.env` file):
     ```bash
     npm start
     ```

  **Option 2: Export environment variable directly**

  ```bash
  export MARKUP_AI_BASE_URL=https://api.dev.markup.ai/
  npm start
  ```

  **Note:** By default, the node uses the production API URL (`https://api.markup.ai/`). The environment variable is only needed for development or custom API endpoints. n8n automatically loads `.env` files from the current working directory, so no additional tools are required.

  ### Manual Setup

  If you prefer to set things up manually:

  1. Install dependencies after cloning this repository

  ```bash
  npm install
  ```

  2. Build the code

  ```bash
  npm run build
  ```

  3. Link the build from the dist folder

  ```bash
  cd dist
  npm link
  cd ..
  ```

  4. Create a `custom` directory inside n8n if it does not exist

  ```bash
  # In ~/.n8n directory run
  mkdir -p ~/.n8n/custom
  cd ~/.n8n/custom
  npm init -y
  ```

  5. Link the custom folder to the build

  ```bash
  npm link @markupai/n8n-nodes-markupai
  ```

  6. Fix n8n config file permissions (if needed)

  ```bash
  chmod 600 ~/.n8n/config
  ```

  7. Start n8n

  ```bash
  # Back in your project directory
  npm start
  ```

  You should now see Markup AI in the list of nodes. Happy hacking!

  ### Making Changes

  1. Make your changes in the `nodes/` or `credentials/` directories
  2. Build the code: `npm run build`
  3. Test in n8n (refresh the browser if n8n is already running)
  4. Run tests: `npm test`
  5. Run linter: `npm run lint:check`

  ### Testing

  Run the test suite:

  ```bash
  npm test
  ```

  Run tests with coverage:

  ```bash
  npm run test:coverage
  ```

  Run tests in watch mode during development:

  ```bash
  npm run test:watch
  ```

  ### Troubleshooting

  **Module loading errors**: If you see errors like `require(...).index is not a constructor`, make sure you've linked from the `dist` folder, not the project root. To fix:

  ```bash
  npm run cleanup  # Remove old links
  npm run setup    # Set up correctly
  ```

  **Permissions errors**: If you see warnings about file permissions, run `chmod 600 ~/.n8n/config` to fix them.

  **Resetting the development environment**: If you need to start fresh:

  ```bash
  npm run cleanup  # Removes all npm links
  npm run setup    # Sets up from scratch
  ```

  **Debugging setup issues**: If you encounter problems during setup, enable debug mode for detailed output:

  ```bash
  DEBUG=1 npm run setup    # Verbose setup with debug information
  DEBUG=1 npm run cleanup  # Verbose cleanup with debug information
  ```

  This will show:

  - Exact commands being executed
  - Full command output (both stdout and stderr)
  - Detailed error information when commands fail
  - Working directory for each command

  ## License

  [MIT](LICENSE)

  ## Support

  - For general n8n questions: [n8n Community Forum](https://community.n8n.io/)
  - For Markup AI API questions: [Markup AI Support](https://community.markup.ai/c/markup-ai-integrations/6)

  ---

  Made with ❤️ by the Markup AI team

ai_documentation_summary:
  {"purpose":"This n8n community node integrates Markup AI to perform AI-powered content analysis, style checks, and automated rewrites to ensure brand-compliant and high-quality content.","capabilities":["Style Check: Analyze content for quality issues without making changes","Style Rewrite: Automatically rewrite and improve content using AI","Quality scoring (clarity, grammar, tone, readability)","Style guide compliance metrics","Dialect-specific content analysis","Tone customization","Automated polling for async operations","Workflow-based content gating"],"authentication":"API key required","commonUseCases":["Content compliance and consistency checks","Automated quality gates before publication","Quality at the source (CMS integration)","Early issue detection in workflows","Streamlined content review processes"],"limitations":["Community node (requires manual installation or n8n community nodes setup)","Requires separate Markup AI account and API key","No built-in credential management UI (requires manual credential setup)"],"relatedNodes":["n8n Webhook","n8n Condition","n8n HTTP Request","n8n Google Drive","n8n Slack"]}


node_type: n8n-nodes-fullenrich.fullEnrich
package_name: n8n-nodes-fullenrich
display_name: FullEnrich
description: Start a FullEnrich bulk enrichment request
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: fullenrich
author_github_url: https://github.com/fullenrich/
npm_package_name: n8n-nodes-fullenrich
npm_version: 0.1.3
community_fetched_at: 2026-04-16T09:43:36.138Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "enrichment",
      "options": [
        {
          "name": "Enrichment",
          "value": "enrichment"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "startEnrichment",
      "options": [
        {
          "name": "Start Enrichment",
          "value": "startEnrichment",
          "action": "Start enrichment",
          "description": "Start an enrichment task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "enrichment"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Start Enrichment",
      "value": "startEnrichment",
      "action": "Start enrichment",
      "description": "Start an enrichment task",
      "resource": "enrichment"
    }
  ]

npm_readme:
  # n8n-nodes-fullenrich

  This is an n8n community node that lets you use FullEnrich in your n8n workflows.

  **FullEnrich** is a contact enrichment service that takes minimal input (such as first name, last name, company domain, or LinkedIn URL) and returns enriched contact data like emails, phone numbers, and company information.  
  This node enables you to **start asynchronous enrichment requests** and **receive enriched results via webhook**, all within n8n.


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

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

  ---

  ## Installation

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

  Example:

  ```bash
  npm install n8n-nodes-fullenrich
  ```

  Then restart your n8n instance.

  ---

  ## Operations

  This package provides two nodes:

  ### FullEnrich Node: Start Enrichment
  - Accepts one or multiple contacts from previous nodes (e.g., Sheets, forms, or manual input).
  - Supports additional custom fields per contact (e.g. `row_id`, `user_id`).
  - Sends each contact to FullEnrich's API enrichment endpoint.

  ### FullEnrich Node: Get Enrichment Result (Webhook Trigger)
  - Acts as a webhook endpoint.
  - Listens for enrichment results returned via `webhook_url` from FullEnrich.
  - Outputs enriched contact data in a format usable by other nodes like Google Sheets, Airtable, or CRMs.

  ---

  ## Credentials

  The node requires API authentication:

  - Go to **n8n > Credentials**.
  - Create a new **HTTP Basic Auth** credential or custom one labeled `fullEnrichApi`.
  - Provide your API key as required by your FullEnrich backend.

  _You must assign this credential in the "Start Enrichment" node configuration._

  ---

  ## Compatibility

  - Minimum **n8n version**: `1.22.0`
  - Tested on: `1.22.0`, `1.25.1`, `1.28.0`
  - Node requires a FullEnrich-compatible API (self-hosted or cloud-based).

  ---

  ## Usage

  - The **Start Enrichment** node supports contacts from:
  - Previous nodes (e.g., Google Sheets, Airtable, Manual trigger).
  - Manual input from UI form (via structured fields).
  - You can also pass a **custom field name** (e.g. `user_id`) to track each contact in your workflow — this value will be passed under the `custom` object.
  - The **Get Result** node acts as a webhook and must be connected to the URL you provide to FullEnrich (auto-generated in most cases).

  **Example Use Case:**
  1. Load leads from a Google Sheet.
  2. Send to **Start Enrichment**.
  3. Receive enriched data via **FullEnrich Trigger**.
  4. Update the same Google Sheet.

  ---

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [FullEnrich API documentation](https://docs.fullenrich.com/introduction)

  ---

  ## Version history

  ### 0.1.0
  - Initial release.

ai_documentation_summary:
  {"purpose":"This n8n community node initiates asynchronous contact enrichment requests via FullEnrich and retrieves results through a webhook trigger, enabling workflow automation for lead data enhancement.","capabilities":["Start asynchronous enrichment requests for single or multiple contacts","Accept inputs from previous nodes (Sheets, forms, manual input)","Support custom fields per contact (e.g., row_id, user_id)","Provide webhook endpoint to receive enriched results","Output enriched data compatible with Google Sheets, Airtable, or CRMs"],"authentication":"HTTP Basic Auth (API key required)","commonUseCases":["Enriching lead data from Google Sheets or Airtable","Automating contact information updates in CRMs","Processing LinkedIn URLs or email domains for full contact details"],"limitations":["Enrichment is asynchronous; results are received via webhook, not immediately","Requires FullEnrich-compatible API (self-hosted or cloud-based)","Minimum n8n version 1.22.0 required"],"relatedNodes":["Webhook node","Google Sheets node","Airtable node","Manual trigger node"]}


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-04-16 09:43:36
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-04-16T09:43:36.138Z
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: @coginiti/n8n-nodes-coginiti.coginiti
package_name: @coginiti/n8n-nodes-coginiti
display_name: Coginiti
description: Interact with Coginiti API (Catalog, Execute, Identity Management)
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: dimabreeze
author_github_url: https://github.com/coginiti-dev/n8n-nodes-coginiti.git
npm_package_name: @coginiti/n8n-nodes-coginiti
npm_version: 1.2.0
community_fetched_at: 2026-04-16T09:43:36.139Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "execute",
      "options": [
        {
          "name": "Catalog",
          "value": "catalog",
          "description": "Browse and manage catalog items"
        },
        {
          "name": "Execute",
          "value": "execute",
          "description": "Execute scripts, blocks, and tests"
        },
        {
          "name": "Group",
          "value": "group",
          "description": "Manage groups"
        },
        {
          "name": "User",
          "value": "user",
          "description": "Manage users"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAssets",
      "options": [
        {
          "name": "Create Asset",
          "value": "createAsset",
          "action": "Create asset",
          "description": "Create a new asset"
        },
        {
          "name": "Create Folder",
          "value": "createFolder",
          "action": "Create folder",
          "description": "Create a new folder"
        },
        {
          "name": "Delete Asset",
          "value": "deleteAsset",
          "action": "Delete asset",
          "description": "Delete an existing asset"
        },
        {
          "name": "Delete Folder",
          "value": "deleteFolder",
          "action": "Delete folder",
          "description": "Delete an existing folder"
        },
        {
          "name": "Get Item by Path",
          "value": "getAsset",
          "action": "Get item by path",
          "description": "Get a single item by path"
        },
        {
          "name": "List Items",
          "value": "listAssets",
          "action": "List catalog items",
          "description": "List catalog items by given path"
        },
        {
          "name": "Update Asset",
          "value": "updateAsset",
          "action": "Update asset",
          "description": "Update an existing asset"
        },
        {
          "name": "Update Folder",
          "value": "updateFolder",
          "action": "Update folder",
          "description": "Update an existing folder"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "catalog"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "executeScript",
      "options": [
        {
          "name": "Execute Block",
          "value": "executeBlock",
          "action": "Execute block",
          "description": "Execute a specific CoginitiScript block from a catalog asset"
        },
        {
          "name": "Execute Script",
          "value": "executeScript",
          "action": "Execute script",
          "description": "Execute a script from the catalog and get a single result set. If the script produces multiple result sets, only the first one is returned."
        },
        {
          "name": "Execute SQL",
          "value": "executeSQL",
          "action": "Execute SQL",
          "description": "Execute a SQL query directly against a connection and get a single result set. This endpoint lets you run queries without first saving them as catalog assets."
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "execute"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create user",
          "description": "Create a new user"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete user",
          "description": "Delete a user"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get user",
          "description": "Get a user by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List users",
          "description": "List all users"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update user",
          "description": "Update a user"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create group",
          "description": "Create a new group"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete group",
          "description": "Delete a group"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get group",
          "description": "Get a group by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List groups",
          "description": "List all groups"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update group",
          "description": "Update a group"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "group"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Asset",
      "value": "createAsset",
      "action": "Create asset",
      "description": "Create a new asset",
      "resource": "catalog"
    },
    {
      "name": "Create Folder",
      "value": "createFolder",
      "action": "Create folder",
      "description": "Create a new folder",
      "resource": "catalog"
    },
    {
      "name": "Delete Asset",
      "value": "deleteAsset",
      "action": "Delete asset",
      "description": "Delete an existing asset",
      "resource": "catalog"
    },
    {
      "name": "Delete Folder",
      "value": "deleteFolder",
      "action": "Delete folder",
      "description": "Delete an existing folder",
      "resource": "catalog"
    },
    {
      "name": "Get Item by Path",
      "value": "getAsset",
      "action": "Get item by path",
      "description": "Get a single item by path",
      "resource": "catalog"
    },
    {
      "name": "List Items",
      "value": "listAssets",
      "action": "List catalog items",
      "description": "List catalog items by given path",
      "resource": "catalog"
    },
    {
      "name": "Update Asset",
      "value": "updateAsset",
      "action": "Update asset",
      "description": "Update an existing asset",
      "resource": "catalog"
    },
    {
      "name": "Update Folder",
      "value": "updateFolder",
      "action": "Update folder",
      "description": "Update an existing folder",
      "resource": "catalog"
    },
    {
      "name": "Execute Block",
      "value": "executeBlock",
      "action": "Execute block",
      "description": "Execute a specific CoginitiScript block from a catalog asset",
      "resource": "execute"
    },
    {
      "name": "Execute Script",
      "value": "executeScript",
      "action": "Execute script",
      "description": "Execute a script from the catalog and get a single result set. If the script produces multiple result sets, only the first one is returned.",
      "resource": "execute"
    },
    {
      "name": "Execute SQL",
      "value": "executeSQL",
      "action": "Execute SQL",
      "description": "Execute a SQL query directly against a connection and get a single result set. This endpoint lets you run queries without first saving them as catalog assets.",
      "resource": "execute"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create user",
      "description": "Create a new user",
      "resource": "user"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete user",
      "description": "Delete a user",
      "resource": "user"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get user",
      "description": "Get a user by ID",
      "resource": "user"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List users",
      "description": "List all users",
      "resource": "user"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update user",
      "description": "Update a user",
      "resource": "user"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create group",
      "description": "Create a new group",
      "resource": "group"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete group",
      "description": "Delete a group",
      "resource": "group"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get group",
      "description": "Get a group by ID",
      "resource": "group"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List groups",
      "description": "List all groups",
      "resource": "group"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update group",
      "description": "Update a group",
      "resource": "group"
    }
  ]

npm_readme:
  # @coginiti/n8n-nodes-coginiti

  This is an n8n community node. It lets you use [Coginiti API](https://support.coginiti.co/hc/categories/18554190258711-API) in your n8n workflows.

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

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

  Supports all of the Coginiti API operations as of Nov-11, 2025

  ## Credentials

  Coginiti API Token is required to run Coginiti automations, read more about [managing personal access tokens](https://support.coginiti.co/hc/articles/18723746168087-Managing-Personal-Access-Tokens).

  ## Compatibility

  Coginiti node was tested against n8n 1.116.2

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Coginiti API documentation](https://support.coginiti.co/hc/categories/18554190258711-API)

  ## Version history

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Coginiti API to manage catalogs, execute tasks, and handle identity management within automated workflows.","capabilities":["Catalog operations","Task execution","Identity management","API integration with Coginiti"],"authentication":"API Token required (Personal Access Token)","commonUseCases":["Automating catalog management tasks","Executing Coginiti services via workflow automation","Handling user identity operations in Coginiti"],"limitations":["Limited to operations supported as of November 11, 2025","Tested only against n8n version 1.116.2"],"relatedNodes":["n8n community nodes","API nodes"]}


node_type: n8n-nodes-human-in-the-loop.hitlNode
package_name: n8n-nodes-human-in-the-loop
display_name: Human Approvals - HITL Platform
description: Create human-in-the-loop decision requests and wait for human responses
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: hitl.sh
author_github_url: https://github.com/hitl-sh/n8n-plugin.git
npm_package_name: n8n-nodes-human-in-the-loop
npm_version: 0.1.6
community_fetched_at: 2026-04-16T09:43:36.140Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "request",
      "options": [
        {
          "name": "Request",
          "value": "request"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendAndWait",
      "options": [
        {
          "name": "Send and Wait",
          "value": "sendAndWait",
          "action": "Send request and wait for response",
          "description": "Create a request and wait for human response"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "request"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send and Wait",
      "value": "sendAndWait",
      "action": "Send request and wait for response",
      "description": "Create a request and wait for human response",
      "resource": "request"
    }
  ]

npm_readme:
  # n8n-nodes-human-in-the-loop

  n8n community node for HITL (Human-in-the-Loop) Platform integration.

  ## Features

  - **Create Decision Requests**: Send requests to human experts for decision making
  - **Dynamic Loop Selection**: Automatically loads your HITL loops with metadata
  - **Multiple Response Types**: Support for text, single/multi-select, rating, number, and boolean responses
  - **Real-time Integration**: Seamless integration with your HITL platform
  - **Bearer Token Authentication**: Secure API key authentication

  ## Prerequisites

  **Important**: You must download and install the HITL Platform app to receive and respond to decision requests sent from n8n workflows.

  - Download the HITL app:
    - [iOS - App Store](https://apps.apple.com/us/app/hitl-human-in-the-loop/id6752878072)
    - [Android - Play Store](https://play.google.com/store/apps/details?id=hitl.sh.app)
    - Or visit [https://hitl.sh](https://hitl.sh) for more information
  - Create an account and obtain your API key
  - Set up your decision loops in the HITL platform

  ## Installation

  1. Go to Settings > Community Nodes in your n8n instance
  2. Select "Install" 
  3. Enter `n8n-nodes-human-in-the-loop` in "Enter npm package name"
  4. Click "Install"

ai_documentation_summary:
  {"purpose":"Creates human-in-the-loop decision requests and waits for human responses via a dedicated mobile app.","capabilities":["Create decision requests for human experts","Support text responses","Support single-select responses","Support multi-select responses","Support rating responses","Support number responses","Support boolean responses","Automatic loading of HITL loops with metadata"],"authentication":"Bearer Token Authentication (API key required)","commonUseCases":["Require human approval for automated decisions","Gather expert input on workflow outputs","Collect structured feedback from humans"],"limitations":["Requires installation of the dedicated HITL Platform mobile app (iOS or Android)","Requires manual setup of decision loops in the HITL platform","Human intervention is mandatory; no automated fallback mentioned"],"relatedNodes":[]}


node_type: @servicem8/n8n-nodes-servicem8.serviceM8
package_name: @servicem8/n8n-nodes-servicem8
display_name: ServiceM8
description: Automate job, staff & client workflows in your trade service business.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: servicem8-devops
author_github_url: https://github.com/servicem8/n8n-nodes-servicem8.git
npm_package_name: @servicem8/n8n-nodes-servicem8
npm_version: 0.1.4
community_fetched_at: 2026-04-16T09:43:36.141Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "client",
      "options": [
        {
          "name": "Client",
          "value": "client"
        },
        {
          "name": "Email",
          "value": "email"
        },
        {
          "name": "Inbox",
          "value": "inbox"
        },
        {
          "name": "Job",
          "value": "job"
        },
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "SMS",
          "value": "sms"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get customer details"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get multiple clients"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Add Note To Job",
          "value": "addNoteToJob",
          "action": "Add job note"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create new job"
        },
        {
          "name": "Create From Template",
          "value": "createFromTemplate",
          "action": "Create job from template"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete job"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get job details"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get multiple jobs"
        },
        {
          "name": "Send Job To Queue",
          "value": "sendJobToQueue",
          "action": "Queue job"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update job details"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "job"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendEmail",
      "options": [
        {
          "name": "Send Email",
          "value": "sendEmail",
          "action": "Send email"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "email"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendSMS",
      "options": [
        {
          "name": "Send SMS",
          "value": "sendSMS",
          "action": "Send text message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sms"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createInboxMessage",
      "options": [
        {
          "name": "Create Inbox Message",
          "value": "createInboxMessage",
          "action": "Create inbox message"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "inbox"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "globalSearch",
      "options": [
        {
          "name": "Global Search",
          "value": "globalSearch",
          "action": "Search everything"
        },
        {
          "name": "Search",
          "value": "objectSearch",
          "action": "Search specific type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get customer details",
      "resource": "client"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get multiple clients",
      "resource": "client"
    },
    {
      "name": "Add Note To Job",
      "value": "addNoteToJob",
      "action": "Add job note",
      "resource": "job"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create new job",
      "resource": "job"
    },
    {
      "name": "Create From Template",
      "value": "createFromTemplate",
      "action": "Create job from template",
      "resource": "job"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete job",
      "resource": "job"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get job details",
      "resource": "job"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get multiple jobs",
      "resource": "job"
    },
    {
      "name": "Send Job To Queue",
      "value": "sendJobToQueue",
      "action": "Queue job",
      "resource": "job"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update job details",
      "resource": "job"
    },
    {
      "name": "Send Email",
      "value": "sendEmail",
      "action": "Send email",
      "resource": "email"
    },
    {
      "name": "Send SMS",
      "value": "sendSMS",
      "action": "Send text message",
      "resource": "sms"
    },
    {
      "name": "Create Inbox Message",
      "value": "createInboxMessage",
      "action": "Create inbox message",
      "resource": "inbox"
    },
    {
      "name": "Global Search",
      "value": "globalSearch",
      "action": "Search everything",
      "resource": "search"
    },
    {
      "name": "Search",
      "value": "objectSearch",
      "action": "Search specific type",
      "resource": "search"
    }
  ]

npm_readme:
  # n8n-nodes-servicem8

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

  ServiceM8 is a job management software designed for small service businesses, helping them streamline scheduling, quoting, invoicing, and communication. It enables field staff to access job details, capture information, and process payments on-site via a mobile app.

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

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

  ## Installation

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

  ## Operations

  ### Attachment
  - **Upload** - Upload a file and create an attachment record
  - **Get** - Get attachment metadata with optional file download
  - **Get Many** - Get multiple attachments for a job or client
  - **Delete** - Soft delete an attachment

  ### Client
  - **Create** - Create a new client
  - **Get** - Get client details
  - **Get Many** - Get multiple clients
  - **Update** - Update client details
  - **Delete** - Delete client
  - **Update Client Contacts** - Update client contact details

  ### Job
  - **Create** - Create new job
  - **Create From Template** - Create job from template
  - **Get** - Get job details
  - **Get Many** - Get multiple jobs
  - **Update** - Update job details
  - **Delete** - Delete job
  - **Add Note To Job** - Add job note
  - **Send Job To Queue** - Queue job
  - **Update Job Contacts** - Update job contact details

  ### Job Booking
  - **Create** - Create a job booking
  - **Get** - Get booking details
  - **Get Many** - Get multiple bookings
  - **Update** - Update booking details
  - **Delete** - Delete booking

  ### Job Checkin
  - **Get** - Get job checkin details
  - **Get Many** - Get multiple job checkins

  ### Inbox
  - **Create** - Create inbox message
  - **Get** - Get inbox message details
  - **Get Many** - Get multiple inbox messages
  - **Convert To Job** - Convert inbox message to a job

  ### Email
  - **Send** - Send email

  ### SMS
  - **Send** - Send text message

  ### Search
  - **Global Search** - Search everything
  - **Object Search** - Search specific type

  ### Webhook Trigger
  Available webhook events:
  - Badge Added to Job
  - Badge Removed From Job
  - Customer Accepted the Quote
  - Customer Details Updated
  - Customer Review Submitted
  - Form Response Submitted
  - Full Payment Received for Invoice
  - Invoice Sent to Customer
  - Job Added to Queue
  - Job Details Modified
  - Job Marked as Completed
  - Job Status Changed
  - New Customer Added
  - New Job Created in the System
  - New Message Received in Inbox
  - Note Added to Job
  - Photo Attached to Job
  - Proposal Sent to Customer
  - Proposal Viewed by Customer
  - Quote Sent to Customer

  ## Credentials

  This node supports two authentication methods:

  ### API Key Authentication 
  1. Log in to your ServiceM8 account
  2. Navigate to **Settings** > **API Keys**
  3. Click **Generate API Key**
  4. Copy your API key and account email
  5. In n8n, create new ServiceM8 credentials with your email and API key

  ## Compatibility

  Tested with n8n v1.110.0 and later.

  ## Usage

  ### Create Job from Web Form
  This example shows how to create a new job when a web form is submitted:

  1. Set up a Webhook trigger to receive form submissions
  2. Use the Company node to create or find the customer
  3. Use the Job node to create a new job for that customer

  ### Daily Schedule Email
  This example shows how to email tomorrow's schedule to staff:

  1. Set up a Schedule trigger to run daily
  2. Use the Activity node to list tomorrow's activities
  3. Use an Email node to send the schedule

  For detailed usage examples and field mapping information, refer to the ServiceM8 API documentation.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes)
  * [ServiceM8 API Documentation](https://developer.servicem8.com/docs)
  * [ServiceM8 Developer Forum](https://developer.servicem8.com/discuss)
  * [GitHub Issues](https://github.com/servicem8/n8n-nodes-servicem8/issues)

  ## Version history

  ### 0.1.5
  **New Resources:**
  - **Attachment** - Full support for file attachments
    - Upload files to jobs or clients with automatic metadata handling
    - Get attachment metadata with optional binary file download
    - Get multiple attachments with filtering support
    - Delete attachments
  - **Job Booking** - Full support for job allocations (flexible time) and job activities (fixed time)
  - **Job Checkin** - Get and list job checkin records

  **New Operations:**
  - **Client**: Create, Update, Delete, Update Client Contacts
  - **Job**: Update Job Contacts
  - **Inbox**: Get, Get Many, Convert To Job

  **Enhancements:**
  - Client and Job Get/Get Many now support optional contact inclusion
  - Get Many operations support pagination (limit) and advanced filtering
  - Attachment Get Many supports filtering by attachment name, file type, source, tags, and more
  - "Include Inactive Records" moved to Advanced Options section for cleaner UI
  - Job Create now uses a cleaner UI with required Status field and dynamic field picker
  - Readonly fields (uuid, edit_date, created_by_staff_uuid, etc.) are now excluded from create/update field pickers but remain available for filtering
  - Job Template dropdowns now filter to show only active templates with valid names
  - Improved UI consistency across all resources (standardised field labels and action names)
  - Refactored to handler-based architecture for better maintainability

  ### 0.1.4
  - Added Inbox resource with create message action

  ### 0.1.0
  Initial release of the ServiceM8 node with support for:
  - Jobs management
  - Customer (Company) management
  - Webhook triggers

ai_documentation_summary:
  {"purpose":"Automates job, staff, and client workflows in trade service businesses by integrating ServiceM8's job management software with n8n workflows.","capabilities":["Manage jobs (create, update, delete, queue, add notes, send to queue)","Manage clients (create, update, delete, update contacts)","Manage job bookings and check-ins","Handle file attachments (upload, download, get metadata, delete)","Manage inbox messages and convert messages to jobs","Send emails and SMS messages","Global and object-specific search","Webhook triggers for 20+ events (e.g., job status changes, quote acceptance, payment received)","Create jobs from templates","Support for pagination and advanced filtering in Get Many operations"],"authentication":"API Key (requires API key and account email)","commonUseCases":["Automating job creation from web form submissions","Sending daily schedule emails to staff","Automating invoice and payment notifications","Syncing customer data between ServiceM8 and other systems","Triggering workflows when job status changes or quotes are accepted"],"limitations":["Community node (not official n8n node)","Requires active ServiceM8 account with API key access","Some advanced features may depend on ServiceM8 API capabilities"],"relatedNodes":["Webhook","Schedule","Email","SMS","Activity"]}


node_type: @easysoftware/n8n-nodes-easy-redmine.easyRedmine
package_name: @easysoftware/n8n-nodes-easy-redmine
display_name: Easy Redmine
description: Easy Redmine Operations
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: martinnovak
author_github_url: https://github.com/easysoftware/n8n-nodes-easy-redmine.git
npm_package_name: @easysoftware/n8n-nodes-easy-redmine
npm_version: 0.5.3
community_fetched_at: 2026-04-16T09:43:36.141Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "issues",
      "options": [
        {
          "name": "Issue",
          "value": "issues"
        },
        {
          "name": "Lead",
          "value": "easy_leads"
        },
        {
          "name": "Opportunity",
          "value": "easy_crm_cases"
        },
        {
          "name": "Project",
          "value": "projects"
        },
        {
          "name": "Account",
          "value": "easy_contacts"
        },
        {
          "name": "Attendance",
          "value": "easy_attendances"
        },
        {
          "name": "Personal Contact",
          "value": "easy_personal_contacts"
        },
        {
          "name": "Time Entry",
          "value": "time_entries"
        },
        {
          "name": "User",
          "value": "users"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single entity"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple entities"
        },
        {
          "name": "Add Comment",
          "value": "add-comment",
          "action": "Add comment",
          "description": "Add a comment to entity"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create",
          "description": "Create entity"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update",
          "description": "Update entity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "easy_leads",
            "issues",
            "easy_crm_cases",
            "easy_contacts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single attendance entity"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple attendance entities"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create",
          "description": "Create attendance entity"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update",
          "description": "Update attendance entity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "easy_attendances"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single project"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple projects"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "projects"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single personal contact"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple personal contacts"
        },
        {
          "name": "Add Comment",
          "value": "add-comment",
          "action": "Add comment",
          "description": "Add comment to personal contact"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create",
          "description": "Create personal contact"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update",
          "description": "Update personal contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "easy_personal_contacts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single entity"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple entities"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create",
          "description": "Create entity"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update",
          "description": "Update entity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "time_entries"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get-many",
      "options": [
        {
          "name": "Get One",
          "value": "get-one",
          "action": "Get one",
          "description": "Get a single user"
        },
        {
          "name": "Get Many",
          "value": "get-many",
          "action": "Get many",
          "description": "Get multiple user"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create",
          "description": "Create user"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update",
          "description": "Update user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "users"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single entity",
      "resource": "easy_leads"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple entities",
      "resource": "easy_leads"
    },
    {
      "name": "Add Comment",
      "value": "add-comment",
      "action": "Add comment",
      "description": "Add a comment to entity",
      "resource": "easy_leads"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create",
      "description": "Create entity",
      "resource": "easy_leads"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update",
      "description": "Update entity",
      "resource": "easy_leads"
    },
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single attendance entity",
      "resource": "easy_attendances"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple attendance entities",
      "resource": "easy_attendances"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create",
      "description": "Create attendance entity",
      "resource": "easy_attendances"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update",
      "description": "Update attendance entity",
      "resource": "easy_attendances"
    },
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single project",
      "resource": "projects"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple projects",
      "resource": "projects"
    },
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single personal contact",
      "resource": "easy_personal_contacts"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple personal contacts",
      "resource": "easy_personal_contacts"
    },
    {
      "name": "Add Comment",
      "value": "add-comment",
      "action": "Add comment",
      "description": "Add comment to personal contact",
      "resource": "easy_personal_contacts"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create",
      "description": "Create personal contact",
      "resource": "easy_personal_contacts"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update",
      "description": "Update personal contact",
      "resource": "easy_personal_contacts"
    },
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single entity",
      "resource": "time_entries"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple entities",
      "resource": "time_entries"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create",
      "description": "Create entity",
      "resource": "time_entries"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update",
      "description": "Update entity",
      "resource": "time_entries"
    },
    {
      "name": "Get One",
      "value": "get-one",
      "action": "Get one",
      "description": "Get a single user",
      "resource": "users"
    },
    {
      "name": "Get Many",
      "value": "get-many",
      "action": "Get many",
      "description": "Get multiple user",
      "resource": "users"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create",
      "description": "Create user",
      "resource": "users"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update",
      "description": "Update user",
      "resource": "users"
    }
  ]

npm_readme:
  # Easy Redmine credentials and node for n8n

  This repo contains n8n node for communication with Easy Redmine.

  ## How to install

  ### ⚙️ Requirements

  To use our community node, you need to have the following requirements:

  - n8n 1.54.4 or newer

  ### 🛠️ Installation in n8n

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

  ### 🔑 Setup credentials

  You need to set up credentials for the Easy Redmine node.
  You can do this by going to the credentials section in n8n and adding a new credential of type "Easy Redmine".

  In the newly created credential, you need to fill in domain, and user api key.

  The domain should be, for example, `https://instance.easyproject.com`.

  To find the API key, go to your Easy Redmine instance, click on your profile in the top right corner.

  ![Go to profile](images/cred-guide-1.png)

  Your profile window will open. Click on the "Edit" button.

  ![Profile window](images/cred-guide-2.png)

  Your profile edit page will open. Scroll down to the Preferences section. Here just copy the API access key.

  ![Preferences section with API key](images/cred-guide-3.png)

  Now, your credentials are ready to use.

  # Easy Redmine node

  The custom node is created to handle all aspects of Easy Redmine integration with n8n.
  Currently available operations and resources are:

  ## Easy Redmine Entities

  A list of all available entities in Easy Redmine node.

  - Accounts
  - Issues
  - Leads
  - Opportunities
  - Personal contacts
  - Users

  ## Accounts

  Account entity is used to manage company contacts. It has identifier `easy_contacts`

  **Operations**

  - **Get one** - returns a detailed view of a single entity. The entity is specified by its ID.
  - **Get many** - returns a list of entities. You should use easy query id to specify the filter.
  - **Add comment** - adds a comment to the entity.
  - **Create** - creates a new account.
    - Custom fields
    - Industry ID
    - Name (known as `firstname` in the entity schema)
    - Type ID
    - Account Manager ID
    - External Account Manager ID
    - Account Status ID
    - Account Level ID
    - Author ID
    - Account Opened
    - Account Closed
    - Customer Left Reason ID
    - Primary Billing Information (see below)
    - Contact Information (see below)
  - **Update** - updates some fields of the entity.
    - Custom fields
    - Industry ID
    - Name (known as `firstname` in the entity schema)
    - Type ID
    - Account Manager ID
    - External Account Manager ID
    - Account Status ID
    - Account Level ID
    - Author ID
    - Account Opened
    - Account Closed
    - Customer Left Reason ID
    - Primary Billing Information (see below)
    - Contact Information (see below)

  ### Primary Billing and Contact Information

  This is a complex field that contains information about the account's billing and contact details. The structure
  is the same for both cases.

  - Company Name
  - Street
  - City
  - Country Code
  - Country Division
  - Postal Code
  - Email
  - Telephone
  - VAT Number
  - VAT Rate
  - Bank Account Number
  - IBAN
  - Variable Symbol
  - SWIFT
  - BIC

  ## Attendance

  Attendance is used to track user attendance. The entity name is `easy_attendance`.

  **Operations**

  - **Get one** - returns a detailed view of a single attendance record. The entity is specified by its ID.
  - **Get many** - returns a list of attendance records. You should use easy query id to specify the filter.
  - **Create** - creates a new attendance record.
    - Arrival (required)
    - Departure
    - Description
    - Activity ID
  - **Update** - updates some fields of the attendance record.
    - Arrival
    - Departure
    - Description
    - Activity ID

  ## Issues

  Issues are mostly Redmine issues. The identifier is `issue`.

  **Operations**

  - **Get one** - returns a detailed view of a single entity. The entity is specified by its ID.
  - **Get many** - returns a list of entities. You should use easy query id to specify the filter.
  - **Add comment** - adds a comment to the entity.
  - **Create** - creates a new issue.
    - Subject (required)
    - Project ID (required)
    - Assigned To ID
    - Custom fields
    - Description
    - Done Ratio
    - Due Date
    - Estimated Hours
    - Is Private
    - Parent Issue ID
    - Priority ID
    - Start Date
    - Status ID
    - Tracker ID
  - **Update** - updates some fields of the entity.
    - Assigned To ID
    - Custom fields
    - Description
    - Done Ratio
    - Due Date
    - Estimated Hours
    - Is Private
    - Parent Issue ID
    - Priority ID
    - Project ID
    - Start Date
    - Subject
    - Tracker ID
    - Status ID
  - **Add Comment** - adds a comment to the issue.
    - Comment (required)
    - Private Note

  ## Leads

  Leads are CRM entities that refer to potential custom.
  The identifier is `easy_lead`.

  **Operations**

  - **Get one** - returns a detailed view of a single lead. The entity is specified by its ID.
  - **Get many** - returns a list of leads. You should use easy query id to specify the filter.
  - **Add comment** - adds a comment to the lead.
  - **Create** - creates a new lead.
    - Company Name
    - Description
    - Custom fields
  - **Update** - updates some fields of the leads.
    - Company Name
    - Description
    - Custom fields

  ## Opportunities

  Opportunities are CRM entities that represent a potential sale. The entity name is `easy_crm_case`.

  **Operations**

  - **Get one** - returns a detailed view of a single opportunity. The entity is specified by its ID.
  - **Get many** - returns a list of entities. You should use easy query id to specify the filter.
  - **Add comment** - adds a comment to the opportunity.
  - **Create** - creates a new opportunity.
    - Name (required)
    - Project ID (required)
    - Account ID (required)
    - Status ID
    - Assigned To ID
    - External Assigned To ID
    - Price
    - Contract Date
    - Custom fields
  - **Update** - updates some fields of the opportunity.
    - Name
    - Description
    - Project ID
    - Status ID
    - Assigned To ID
    - External Assigned To ID
    - Price
    - Contract Date
    - Custom fields

  ## Personal contacts

  Personal contacts are CRM entities that represent a person. The entity name is `easy_personal_contacts`.

  **Operations**

  - **Get one** - returns a detailed view of a single personal contact. The entity is specified by its ID.
  - **Get many** - returns a list of entities. You should use easy query id to specify the filter.
  - **Create** - creates a new personal contact.
    - Account ID (required or partner ID)
    - Partner ID (required or account ID)
    - First name (required)
    - Last name (required)
    - Email (required)
    - Job title
    - Custom fields
  - **Update** - updates some fields of the personal contact.
    - Account ID
    - Partner ID
    - First name
    - Last name
    - Email
    - Job title
    - Custom fields

  ## Projects

  Projects are used to manage project tasks. The entity name is `project`.

  **Operations**

  - **Get one** - returns a detailed view of a single project. The entity is specified by its ID.
  - **Get many** - returns a list of projects. You should use easy query id to specify the filter.

  ## Time entries

  Time entries are used to track time spent on issues. The entity name is `time_entry`.

  **Operations**

  - **Get one** - returns a detailed view of a single time entry. The entity is specified by its ID.
  - **Get many** - returns a list of time entries. You should use easy query id to specify the filter.
  - **Create** - creates a new time entry.
    - Hours (required)
    - Activity ID
    - Comment
    - Project ID
    - Spent On
    - User ID
    - Custom Fields
  - **Update** - updates some fields of the time entry.
    - Activity ID
    - Comment
    - Hours
    - Project ID
    - Spent On
    - User ID
    - Custom Fields

  ## Users

  Users are Easy Redmine users. The entity name is `user`.

  **Operations**

  - **Get one** - returns a detailed view of a single user. The entity is specified by its ID.
  - **Get many** - returns a list of entities. You should use easy query id to specify the filter.
  - **Create** - creates a new user
    - Login (required)
    - First name (required)
    - Last name (required)
    - Email (required)
    - Phone
    - Custom fields
  - **Update** - updates some fields of the user.
    - ID (required)
    - Login
    - First name
    - Last name
    - Email
    - Phone
    - Custom Fields

ai_documentation_summary:
  {"purpose":"The Easy Redmine node enables n8n workflows to interact with Easy Redmine instances, supporting CRUD operations on entities like accounts, issues, leads, opportunities, personal contacts, and users.","capabilities":["Retrieve single or multiple records for Accounts, Issues, Leads, Opportunities, Personal Contacts, and Users","Create new records for Accounts, Attendance, Issues, Leads, and Opportunities","Update existing records for Accounts, Attendance, Issues, Leads, and Opportunities","Add comments to Accounts, Issues, Leads, and Opportunities","Manage attendance records with arrival, departure, description, and activity fields","Handle complex billing and contact information fields for accounts","Filter records using 'easy query id' parameter"],"authentication":"API key required (Domain and User API Key)","commonUseCases":["Automating issue tracking and status updates in Redmine projects","Managing CRM leads and opportunities within n8n workflows","Tracking employee attendance and activity records","Synchronizing account and contact information between systems"],"limitations":["Requires n8n version 1.54.4 or newer","Personal contacts section details are truncated in the provided README"],"relatedNodes":["n8n HTTP Request","n8n Redmine (if available)","n8n CRM nodes"]}


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

updated_at: 2026-04-16 09:43:36
author_name: superchat-ben
author_github_url: https://github.com/super-chat/
npm_package_name: n8n-nodes-superchat
npm_version: 0.5.0
community_fetched_at: 2026-04-16T09:43:36.142Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Receive and send messages from WhatsApp, Instagram, Messenger, E-Mail, SMS, via Live Chat and Telegram.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "user",
      "options": [
        {
          "name": "User",
          "value": "user",
          "description": "A user"
        },
        {
          "name": "Contact",
          "value": "contact",
          "description": "A contact"
        },
        {
          "name": "Message",
          "value": "message",
          "description": "A message"
        },
        {
          "name": "Conversation",
          "value": "conversation",
          "description": "A conversation"
        },
        {
          "name": "Note",
          "value": "note",
          "description": "A note"
        },
        {
          "name": "File",
          "value": "file",
          "description": "A file"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "me",
      "options": [
        {
          "name": "Identify Yourself",
          "value": "me",
          "action": "Retrieve information about yourself as a Superchat user"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search For Contact",
          "value": "search",
          "action": "Search for a contact"
        },
        {
          "name": "Delete Contact",
          "value": "delete",
          "action": "Delete a contact"
        },
        {
          "name": "Create Contact",
          "value": "create",
          "action": "Create a new contact"
        },
        {
          "name": "Update Contact",
          "value": "update",
          "action": "Update an existing contact"
        },
        {
          "name": "Get Many Conversations",
          "value": "listConversations",
          "action": "Get many conversations of a contact"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendMessage",
      "options": [
        {
          "name": "Send Message",
          "value": "sendMessage",
          "action": "Send a message"
        },
        {
          "name": "Send Email",
          "value": "sendMail",
          "action": "Send an email"
        },
        {
          "name": "Send WhatsApp Template",
          "value": "sendWhatsAppTemplate",
          "action": "Send a WhatsApp template"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get Conversation By ID",
          "value": "get",
          "action": "Retrieve a conversation"
        },
        {
          "name": "Update Labels",
          "value": "updateLabels",
          "action": "Update the labels of a conversation"
        },
        {
          "name": "Update Status",
          "value": "updateStatus",
          "action": "Update the status of a conversation"
        },
        {
          "name": "Update Assigned Users",
          "value": "updateAssignees",
          "action": "Update the assignees of a conversation"
        },
        {
          "name": "Delete Conversation",
          "value": "delete",
          "action": "Delete a conversation"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Conversation Note",
          "value": "create",
          "action": "Create a conversation note"
        },
        {
          "name": "Get Conversation Note By ID",
          "value": "get",
          "action": "Retrieve a conversation note"
        },
        {
          "name": "Delete Conversation Note",
          "value": "delete",
          "action": "Delete a conversation note"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "note"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create File",
          "value": "create",
          "action": "Create a file"
        },
        {
          "name": "Delete File",
          "value": "delete",
          "action": "Delete a file"
        },
        {
          "name": "Download File",
          "value": "download",
          "action": "Download a file"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Identify Yourself",
      "value": "me",
      "action": "Retrieve information about yourself as a Superchat user",
      "resource": "user"
    },
    {
      "name": "Search For Contact",
      "value": "search",
      "action": "Search for a contact",
      "resource": "contact"
    },
    {
      "name": "Delete Contact",
      "value": "delete",
      "action": "Delete a contact",
      "resource": "contact"
    },
    {
      "name": "Create Contact",
      "value": "create",
      "action": "Create a new contact",
      "resource": "contact"
    },
    {
      "name": "Update Contact",
      "value": "update",
      "action": "Update an existing contact",
      "resource": "contact"
    },
    {
      "name": "Get Many Conversations",
      "value": "listConversations",
      "action": "Get many conversations of a contact",
      "resource": "contact"
    },
    {
      "name": "Send Message",
      "value": "sendMessage",
      "action": "Send a message",
      "resource": "message"
    },
    {
      "name": "Send Email",
      "value": "sendMail",
      "action": "Send an email",
      "resource": "message"
    },
    {
      "name": "Send WhatsApp Template",
      "value": "sendWhatsAppTemplate",
      "action": "Send a WhatsApp template",
      "resource": "message"
    },
    {
      "name": "Get Conversation By ID",
      "value": "get",
      "action": "Retrieve a conversation",
      "resource": "conversation"
    },
    {
      "name": "Update Labels",
      "value": "updateLabels",
      "action": "Update the labels of a conversation",
      "resource": "conversation"
    },
    {
      "name": "Update Status",
      "value": "updateStatus",
      "action": "Update the status of a conversation",
      "resource": "conversation"
    },
    {
      "name": "Update Assigned Users",
      "value": "updateAssignees",
      "action": "Update the assignees of a conversation",
      "resource": "conversation"
    },
    {
      "name": "Delete Conversation",
      "value": "delete",
      "action": "Delete a conversation",
      "resource": "conversation"
    },
    {
      "name": "Create Conversation Note",
      "value": "create",
      "action": "Create a conversation note",
      "resource": "note"
    },
    {
      "name": "Get Conversation Note By ID",
      "value": "get",
      "action": "Retrieve a conversation note",
      "resource": "note"
    },
    {
      "name": "Delete Conversation Note",
      "value": "delete",
      "action": "Delete a conversation note",
      "resource": "note"
    },
    {
      "name": "Create File",
      "value": "create",
      "action": "Create a file",
      "resource": "file"
    },
    {
      "name": "Delete File",
      "value": "delete",
      "action": "Delete a file",
      "resource": "file"
    },
    {
      "name": "Download File",
      "value": "download",
      "action": "Download a file",
      "resource": "file"
    }
  ]

npm_readme:
  # n8n-nodes-superchat
  ![](./superchat.png)

  This is an n8n community node. It lets you integrate **Superchat** into your n8n workflows.

  **Superchat** is a unified messaging platform that enables sending and receiving messages across WhatsApp, Instagram Direct, Facebook Messenger, SMS, email, Live Chat, and more. Our Superchat app in n8n supports managing contacts, conversations, notes, files, channels, labels, and more.

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

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

  ---

  ## Installation

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

  ---

  ## Operations

  This node supports operations on the following six resources:

  ### User
  - **Me** — Retrieve details about the authenticated Superchat user.

  ### Contact
  - **Create** — Create a new contact.
  - **Search** — Search for contacts by email, phone, or Instagram handle.
  - **Update** — Update a contact's information.
  - **Delete** — Delete a contact by its ID.
  - **Get Conversations** — Fetch all conversations associated with a contact.

  ### Message
  - **Send Message** — Send a text or media message to a contact.
  - **Send Mail** — Send an email, with optional attachments, to a contact.
  - **Send WhatsApp Template** — Send a pre-approved WhatsApp template message.

  ### Conversation
  - **Get** — Retrieve a conversation by its ID.
  - **Delete** — Delete a conversation by its ID.
  - **Update Labels** — Update the labels for a conversation.
  - **Update Status** — Update the status of a conversation (e.g., open, done, snoozed).
  - **Update Assignees** — Update the users assigned to a conversation.

  ### Note
  - **Create** — Add a new note to a conversation.
  - **Get** — Retrieve a specific note from a conversation.
  - **Delete** — Delete a specific note from a conversation.

  ### File
  - **Create (upload)** — Upload a binary file to Superchat.
  - **Download** — Download a file by its ID.
  - **Delete** — Delete a file by its ID.

  ---

  ## Credentials

  **Superchat API**

  1. Log into your Superchat Account.
  2. Go to Settings > Explore Integrations > Click the n8n card
  3. Click 'Add' and copy the API key.
  4. Add a n8n action or trigger and enter your Superchat API key in the credentials section.

  ---

  ## Compatibility

  Tested with:
  - **n8n v1.97.1**

  ---

  ## Usage

  1. Install n8n-nodes-superchat via the community nodes installer.
  2. Add the Superchat node to your n8n workflow.
  3. Configure credentials using your Superchat API key.
  4. Select a resource (User, Contact, Message, Conversation, Note, or File).
  5. Choose the desired operation.
  6. Fill in required fields (e.g. recipient info, message content).
  7. Execute the workflow to send messages, manage contacts/conversations, and upload/download files.

  ---

  ## Resources

  - [Superchat API Documentation](https://developers.superchat.com/) 
  - [Getting Started Guide](https://developers.superchat.com/docs/getting-started-send-your-first-message)
  - [Superchat Help Centre](https://help.superchat.com)

ai_documentation_summary:
  {"purpose":"A n8n community node that integrates with Superchat to send and receive messages across WhatsApp, Instagram, Messenger, SMS, email, live chat, and Telegram, while also managing contacts, conversations, notes, and files.","capabilities":["Retrieve authenticated user details","Create, search, update, and delete contacts","Fetch conversations for a contact","Send text or media messages","Send emails with attachments","Send WhatsApp template messages","Retrieve, delete, and update conversation labels and status","Assign users to conversations","Create, retrieve, and delete notes","Upload and download binary files"],"authentication":"API key required (obtained from Superchat account settings under Integrations)","commonUseCases":["Unified messaging across multiple platforms (WhatsApp, Instagram, Messenger, etc.)","Automated customer support via Superchat","Managing contact lists and conversation histories","File sharing and document management within conversations","Workflow automation for multi-channel communication"],"limitations":["Community node (not official n8n node)","Requires Superchat account setup and API key","Tested only with n8n v1.97.1"],"relatedNodes":["n8n-nodes-whatsapp","n8n-nodes-instagram","n8n-nodes-email","n8n-nodes-telegram"]}


node_type: @alipeople/n8n-nodes-sendon.sendon
package_name: @alipeople/n8n-nodes-sendon
display_name: Sendon
description: Send SMS using Sendon API
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: alipeople
author_github_url: https://github.com/alipeople/n8n-nodes-sendon.git
npm_package_name: @alipeople/n8n-nodes-sendon
npm_version: 0.1.7
community_fetched_at: 2026-04-16T09:43:36.143Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-sendon

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

  Sendon is a messaging platform that allows you to send SMS, LMS, and MMS messages programmatically via API.

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

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

  ## Installation

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

  ## Operations

  The Sendon node supports the following operations:

  - Send SMS, LMS, and MMS messages
    - Automatic message type detection (SMS/LMS) based on content length
    - Optional title auto-generation for LMS/MMS
    - Support for development and production environments
    - Mark message as advertisement

  ## Credentials

  To use this node, you need a Sendon account and API credentials.

  1. Sign up at [Sendon](https://sendon.io/) as a business user. **Note: Only users with a registered business in South Korea are eligible to use Sendon.** After registration, obtain your Sendon ID and API Key.
  2. Charge your credits or points to send messages.
  3. Generate your API Key in your settings.
  4. In n8n, go to **Settings** → **Credentials**.
  5. Add new credentials for "Sendon" and enter:
     - **Sendon ID**: Your Sendon account ID
     - **API Key**: Your Sendon API key

  Authentication uses HTTP Basic Auth with your Sendon ID and API Key.

  ## Compatibility

  - Requires n8n version: 1.0.0 or higher (please adjust if you have a different minimum)
  - Node.js ≥ 20.15
  - No known incompatibilities at this time.

  ## Usage

  ### Parameters

  - **Sender Number** (`from`): The phone number sending the message
  - **Recipient Number** (`to`): The phone number receiving the message
  - **Message** (`message`): The content of your SMS/LMS/MMS
  - **Title** (`title`, optional): Custom title for LMS/MMS (auto-generated from first 20 characters if omitted)
  - **Is Ad** (`isAd`, optional): Mark as advertisement (default: false)
  - **Type** (`type`, optional): `Auto` (default), `SMS`, `LMS`, `MMS`

  ### Message Type Auto-Detection

  - If `Type` is set to `Auto` or left blank:
    - **SMS**: ≤ 90 bytes
    - **LMS**: > 90 bytes
    - **MMS**: Only if selected manually

  ### Example

  **Basic SMS:**

  ```json
  {
    "from": "01012345678",
    "to": "01087654321",
    "message": "Hello from n8n!",
    "isAd": false,
    "type": "auto"
  }
  ```

  **Long Message (LMS):**

  ```json
  {
    "from": "01012345678",
    "to": "01087654321",
    "message": "This is a longer message that will automatically be sent as LMS because it exceeds the SMS character limit...",
    "title": "Custom Title",
    "isAd": false,
    "type": "auto"
  }
  ```

  For more usage help, see the [Try it out](https://docs.n8n.io/try-it-out/) documentation.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Sendon API documentation](https://api.sendon.io/swagger)

  ## Version history

  - v1.0.0: Initial release. Supports sending SMS, LMS, and MMS with auto-detection and credential management.

ai_documentation_summary:
  {"purpose":"A community n8n node that sends SMS, LMS, and MMS messages programmatically using the Sendon API.","capabilities":["Send SMS messages","Send LMS (Long SMS) messages","Send MMS (Multimedia) messages","Automatic message type detection based on content length","Optional title auto-generation for LMS/MMS","Support for development and production environments","Mark messages as advertisements"],"authentication":"HTTP Basic Auth with Sendon ID and API Key","commonUseCases":["Automated SMS notifications in n8n workflows","Bulk messaging campaigns","Transactional message delivery","Marketing message distribution"],"limitations":["Sendon service is only available to business users registered in South Korea","Requires separate Sendon account and API credentials","Minimum n8n version 1.0.0 required"],"relatedNodes":["HTTP Request","Webhook","Generic Code"]}


node_type: n8n-nodes-cyberpulse-compliance-dev.cyberPulseCompliance
package_name: n8n-nodes-cyberpulse-compliance-dev
display_name: CyberPulse Compliance (Dev)
description: Evaluate a control & evidence, map to selected frameworks, and return a score/status.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: gitadta
author_github_url: https://github.com/gitadta/cyberpulse-node-dev.git
npm_package_name: n8n-nodes-cyberpulse-compliance-dev
npm_version: 0.0.51
community_fetched_at: 2026-04-16T09:43:36.144Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "complianceControl",
      "options": [
        {
          "name": "Compliance Control",
          "value": "complianceControl"
        }
      ],
      "displayName": "Resource"
    },
    {
      "name": "operation",
      "type": "options",
      "default": "evaluate",
      "options": [
        {
          "name": "Evaluate",
          "value": "evaluate",
          "action": "Evaluate compliance control",
          "description": "Evaluate a control against frameworks"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "complianceControl"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "name": "Evaluate",
      "value": "evaluate",
      "action": "Evaluate compliance control",
      "description": "Evaluate a control against frameworks",
      "resource": "complianceControl"
    }
  ]

npm_readme:
  ## Try it in 60 seconds

  1) Download the ready-to-import workflow:
     - **Raw JSON (direct import)**  
       https://raw.githubusercontent.com/gitadta/cyberpulse-node-dev/main/examples/cyberpulse-template.json
     - **Browse in GitHub (human-readable)**  
       https://github.com/gitadta/cyberpulse-node-dev/blob/main/examples/cyberpulse-template.json

  2) In n8n: **Workflows → Import from file** and select the JSON.

  3) When prompted, select/create the **Header Auth** credential (paste your CyberPulse API key as the `Authorization` header value, e.g. `Bearer <YOUR_KEY>`).

  4) Click **Execute workflow**.


  ## Getting Started (3 steps)

  1) Install node: **Community Nodes → n8n-nodes-cyberpulse-compliance-dev**
  2) Create credentials: **HTTP Header Auth** → Header **x-api-key** → paste your CyberPulse API key → **Save**
  3) Import and run: `examples/cyberpulse-template.json` (works with free tier)

  ## Pricing
  - **Starter (Free):** 100 evaluations/month, community support
  - **Pro ($29/mo):** 1,000/mo, 30-day retention, metrics, email support
  - **Business ($99/mo):** 5,000/mo, 90-day retention, audit logs export, priority support
  - **Enterprise (Custom):** SSO, custom retention, dedicated support

  ## Limits & Errors
  - Over cap → `{"error":"quota_exceeded","upgrade_url":"https://cyberpulsesolutions.com/pricing"}`
  - Burst too fast → `{"error":"rate_limited","retry_after_seconds":60}`
  - Missing key → `{"error":"auth_required","message":"Add API key in node credentials"}`

  # CyberPulse Compliance (n8n Community Node)

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-cyberpulse-compliance.svg)](https://www.npmjs.com/package/n8n-nodes-cyberpulse-compliance)
  [![GitHub issues](https://img.shields.io/github/issues/gitadta/n8n-nodes-cyberpulse-compliance)](https://github.com/gitadta/n8n-nodes-cyberpulse-compliance/issues)
  [![GitHub stars](https://img.shields.io/github/stars/gitadta/n8n-nodes-cyberpulse-compliance)](https://github.com/gitadta/n8n-nodes-cyberpulse-compliance/stargazers)
  [![License](https://img.shields.io/npm/l/n8n-nodes-cyberpulse-compliance.svg)](./LICENSE)

  Custom n8n node that evaluates compliance controls against major frameworks (ISO 27001, NIST CSF, PCI DSS, Essential Eight, GDPR, etc.).

  ---

  ## ✨ Features
  - Classifies control text into categories: MFA, Encryption, Logging, Backups, Patching, Access Reviews  
  - Validates evidence links  
  - Returns compliance status: **Compliant / Partial / Non-Compliant**  
  - Maps controls to frameworks via external `crosswalk.json`  

  ---

  ## 🚀 Installation
  1. In n8n, go to **Settings → Community Nodes → Install**  
  2. Enter:
     ```bash
     n8n-nodes-cyberpulse-compliance-dev
  🔧 Usage

  Example workflow:

  Add CyberPulse Compliance Node in your workflow

  Provide compliance control text or questionnaire input

  The node validates and classifies the response

  Outputs can be routed to Google Sheets, Email, or Dashboards

  Example Input:

  PCI DSS Control 1.2 – Is a firewall deployed?


  Example Output:

  Compliant | Partial | Non-Compliant (with notes and framework mapping)

  ### Links
  - [npm package](https://www.npmjs.com/package/n8n-nodes-cyberpulse-compliance-dev)
  - [GitHub repository](https://github.com/gitadta/cyberpulse-node-dev)
  - [Report issues](https://github.com/gitadta/cyberpulse-node-dev/issues)


  📜 License

  This project is licensed under the MIT License

ai_documentation_summary:
  {"purpose":"Evaluates compliance controls and evidence against major frameworks (ISO 27001, NIST CSF, PCI DSS, etc.) and returns a compliance score or status.","capabilities":["Classifies control text into categories (MFA, Encryption, Logging, Backups, Patching, Access Reviews)","Validates evidence links","Maps controls to frameworks via external crosswalk.json","Returns compliance status (Compliant, Partial, Non-Compliant)","Supports free tier with 100 evaluations/month"],"authentication":"HTTP Header Auth (API key required in 'x-api-key' header)","commonUseCases":["Automated compliance questionnaire evaluation","Mapping internal controls to external frameworks","Generating compliance reports for audits"],"limitations":["Free tier limited to 100 evaluations/month","Rate limiting applies (60s retry after burst)","Requires manual API key configuration","Crosswalk mapping depends on external file availability"],"relatedNodes":["n8n-nodes-http-request","n8n-nodes-gsheet","n8n-nodes-email"]}


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

updated_at: 2026-04-16 09:43:36
author_name: parseur
author_github_url: https://github.com/parseur/parseur-n8n-node.git
npm_package_name: n8n-nodes-parseur
npm_version: 0.0.4
community_fetched_at: 2026-04-16T09:43:36.145Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # Parseur n8n Node

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

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

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


  ## About

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

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

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

  ## Operations

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

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


  ## Installation

  ### Install from npm

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

  ### Install from source

  1. Install dependencies

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

  2. Clone and build the node

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

  3. Set up a local n8n instance

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

  4. Link the Parseur node to n8n

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

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

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

  ## Credentials

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

  ### API Key

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

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

  In n8n:

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

  ### Webhook Token

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

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

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

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

  ## Compatibility

  Compatible with n8n v1.91.2.

  ## Resources

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

  ## Version history

  #### v0.0.1
  Initial release

  ## Contributing

  We welcome contributions and ideas!

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

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows when documents or tables are processed by Parseur and allows uploading text or files to Parseur.","capabilities":["Trigger workflow on document.processed events","Trigger workflow on document.processed.flattened events","Trigger workflow on document.template_needed events","Trigger workflow on document.export_failed events","Trigger workflow on table.processed events","Trigger workflow on table.processed.flattened events","Upload binary files (PDF, EML, etc.) to Parseur mailbox","Upload plain text or HTML content to Parseur mailbox"],"authentication":"API Key and Webhook Token","commonUseCases":["Automate data extraction when emails or PDFs are processed","Trigger downstream workflows upon successful document parsing","Handle failed parsing attempts via template_needed events","Export processed data to other systems"],"limitations":["Compatible only with n8n v1.91.2","Requires manual setup of credentials including a generated Webhook Token"],"relatedNodes":["Parseur API","Webhook Trigger","HTTP Request"]}


node_type: n8n-nodes-verifiemail.verifiEmail
package_name: n8n-nodes-verifiemail
display_name: Verifi Email
description: Email validation and domain health check using VerifiEmail API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  {
  "type": "main"
  }
  ]

updated_at: 2026-04-16 09:43:36
author_name: jiteshdugar
author_github_url: https://github.com/verifi-email/verifi-email-n8n-node.git
npm_package_name: n8n-nodes-verifiemail
npm_version: 1.3.1
community_fetched_at: 2026-04-16T09:43:36.146Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "validateEmail",
      "options": [
        {
          "name": "Validate Email Address",
          "value": "validateEmail",
          "action": "Validate an email address",
          "description": "Validate a Single Email Address"
        },
        {
          "name": "Validate Multiple Emails",
          "value": "bulkValidateEmails",
          "action": "Validate multiple email addresses",
          "description": "Validate Multiple Email Addresses in Bulk"
        },
        {
          "name": "Check Domain Health",
          "value": "checkDomainHealth",
          "action": "Check domain health",
          "description": "Check Domain Health and Configuration"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Validate Email Address",
      "value": "validateEmail",
      "action": "Validate an email address",
      "description": "Validate a Single Email Address"
    },
    {
      "name": "Validate Multiple Emails",
      "value": "bulkValidateEmails",
      "action": "Validate multiple email addresses",
      "description": "Validate Multiple Email Addresses in Bulk"
    },
    {
      "name": "Check Domain Health",
      "value": "checkDomainHealth",
      "action": "Check domain health",
      "description": "Check Domain Health and Configuration"
    }
  ]

npm_readme:
  # n8n-nodes-verifi-email

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

  A powerful n8n node for seamless email validation using the [Verifi.Email](https://verifi.email) API. Validate email addresses with enterprise-grade accuracy while maintaining complete privacy and security.

  ## Features

  - **Seamless Integration** - Easy-to-use n8n node for email validation workflows
  - **High Accuracy** - Enterprise-grade email validation with detailed results
  - **Privacy-First** - Secure and private API that doesn't store your data
  - **Real-time Validation** - Instant email verification results
  - **Bulk Processing** - Validate multiple emails efficiently in n8n workflows
  - **Detailed Responses** - Comprehensive validation data including deliverability, syntax, and more

  ## Installation

  ### Install via n8n Community Nodes

  1. Go to **Settings** → **Community Nodes** in your n8n instance
  2. Click **Install a Community Node**
  3. Enter: `n8n-nodes-verifi-email`
  4. Click **Install**

  ### Manual Installation

  ```bash
  # In your n8n installation directory
  npm install n8n-nodes-verifi-email
  ```

  ## Setup

  ### 1. Get Your API Key

  1. Visit [Verifi.Email Registration](https://app.verifi.email/register)
  2. Create your free account
  3. Get your API key from the dashboard

  ### 2. Configure Credentials

  1. In n8n, go to **Credentials**
  2. Click **Add Credential** → **Verifi.Email API**
  3. Enter your API key
  4. Save the credential

  ## Usage

  ### Basic Email Validation

  1. Add the **Verifi.Email** node to your workflow
  2. Select your configured credentials
  3. Choose operation: **Validate Email**
  4. Enter the email address to validate
  5. Execute the workflow

  ### Example Workflow

  ```json
  {
    "email": "test@example.com",
    "validation_result": {
      "is_valid": true,
      "is_deliverable": true,
      "is_risky": false,
      "syntax_valid": true,
      "domain_exists": true,
      "mailbox_exists": true,
      "disposable": false,
      "role_account": false,
      "free_provider": false
    }
  }
  ```

  ### Bulk Validation

  Use n8n's **Split In Batches** node to process multiple emails:

  1. **Read Data** → Email list
  2. **Split In Batches** → Process in chunks
  3. **Verifi.Email** → Validate each email
  4. **Merge** → Combine results

  ## Node Operations

  ### Validate Email
  Validates a single email address and returns comprehensive results.

  **Parameters:**
  - `email` (string, required): Email address to validate

  **Output:**
  - `is_valid` (boolean): Overall validation result
  - `is_deliverable` (boolean): Whether email can receive messages
  - `is_risky` (boolean): Risk assessment for the email
  - `syntax_valid` (boolean): Email syntax validation
  - `domain_exists` (boolean): Domain existence check
  - `mailbox_exists` (boolean): Mailbox existence verification
  - `disposable` (boolean): Whether it's a disposable email
  - `role_account` (boolean): Whether it's a role-based email
  - `free_provider` (boolean): Whether it's from a free email provider

  ## API Documentation

  For detailed API documentation and advanced features, visit: [https://verifi.email/docs](https://verifi.email/docs)

  ## Use Cases

  - **Lead Validation** - Clean your lead lists before marketing campaigns
  - **User Registration** - Validate emails during sign-up processes
  - **Data Cleaning** - Remove invalid emails from existing databases
  - **Email Marketing** - Improve deliverability by validating subscriber lists
  - **Form Validation** - Real-time email validation in web forms
  - **CRM Integration** - Validate contacts automatically in your CRM workflows

  ## Example Workflows

  ### Marketing List Cleanup
  ```
  Google Sheets → Split In Batches → Verifi.Email → Filter Valid → Update Sheet
  ```

  ### Real-time Form Validation
  ```
  Webhook → Verifi.Email → Conditional Logic → Send Response
  ```

  ### CRM Contact Validation
  ```
  CRM Trigger → Verifi.Email → Update Contact Status → Slack Notification
  ```

  ## Error Handling

  The node includes comprehensive error handling for:
  - Invalid API keys
  - Rate limit exceeded
  - Malformed email addresses
  - Network connectivity issues
  - API service unavailable

  ## Rate Limits

  Please refer to your [Verifi.Email dashboard](https://app.verifi.email) for current rate limits and usage statistics.

  ## Support

  - **Documentation**: [https://verifi.email/docs](https://verifi.email/docs)
  - **Website**: [https://verifi.email](https://verifi.email)
  - **Issues**: Report issues on this GitHub repository
  - **API Support**: Contact us on **contact@verifi.email**

  ## Contributing

  We welcome contributions! Please feel free to submit issues and pull requests.

  ### Development Setup

  1. Clone this repository
  2. Install dependencies: `npm install`
  3. Build the node: `npm run build`
  4. Link to your n8n installation: `npm link`
  5. In your n8n directory: `npm link n8n-nodes-verifi-email`

  ### Testing

  ```bash
  npm run test
  npm run lint
  ```

  ## Changelog

  ### v1.0.0
  - Initial release
  - Email validation functionality
  - Comprehensive validation results
  - Error handling and rate limiting

  ## License

  [MIT](LICENSE.md)

  ---

  **Secure • Private • Accurate**

  Transform your email workflows with reliable validation powered by Verifi.Email and n8n automation.

ai_documentation_summary:
  {"purpose":"Validates email addresses and checks domain health using the Verifi.Email API, providing detailed results on deliverability, syntax, and mailbox existence.","capabilities":["Single email validation","Bulk email processing","Disposable email detection","Role-based account detection","Free provider identification","Syntax validation","Domain existence check","Mailbox existence verification","Risk assessment"],"authentication":"API key required","commonUseCases":["Lead validation before marketing campaigns","User registration verification","Data cleaning for databases","Email marketing list improvement","Real-time form validation"],"limitations":["Rate limits apply (check Verifi.Email dashboard)","Requires external API key setup"],"relatedNodes":["Split In Batches","Filter","Update Sheet","Webhook","Conditional Logic"]}


node_type: @thelifeofrishi/n8n-nodes-orshot.orshot
package_name: @thelifeofrishi/n8n-nodes-orshot
display_name: Orshot
description: Automated Image Generation for Marketing
category: Community
development_style: declarative
version: 3
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: thelifeofrishi
author_github_url: https://github.com/rishimohan/orshot-n8n.git
npm_package_name: @thelifeofrishi/n8n-nodes-orshot
npm_version: 0.5.0
community_fetched_at: 2026-04-16T09:43:36.147Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "https://api.orshot.com/v1/generate/images",
      "options": [
        {
          "name": "Generate Image From a Library Template",
          "value": "https://api.orshot.com/v1/generate/images",
          "action": "Generate an image from a library template",
          "description": "Endpoint: https://api.orshot.com/v1/generate/images"
        },
        {
          "name": "Generate Image From an Orshot Studio Template",
          "value": "https://api.orshot.com/v1/studio/render",
          "action": "Generate an image from a studio template",
          "description": "Endpoint: https://api.orshot.com/v1/studio/render"
        }
      ],
      "required": true,
      "description": "Orshot API Endpoint URL(ref: https://orshot.com/docs/api-reference)",
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Image From a Library Template",
      "value": "https://api.orshot.com/v1/generate/images",
      "action": "Generate an image from a library template",
      "description": "Endpoint: https://api.orshot.com/v1/generate/images"
    },
    {
      "name": "Generate Image From an Orshot Studio Template",
      "value": "https://api.orshot.com/v1/studio/render",
      "action": "Generate an image from a studio template",
      "description": "Endpoint: https://api.orshot.com/v1/studio/render"
    }
  ]

npm_readme:
  # n8n-nodes-orshot

  This is an n8n community node. It lets you use [Orshot](https://orshot.com)'s Image Generation API in your n8n workflows.

  Orshot is an Image Generation API which lets you generate dynamic images from pre-designed and AI generated templates via API and Integrations.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials) <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage) <!-- delete if not using this section -->  
  [Resources](#resources)  
  [Version history](#version-history) <!-- delete if not using this section -->

  ## Installation

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

  ## Operations

  - Generate Images from a Library Template
  - Generate Images from a Orshot Studio Templates

  ## Credentials

  - You need an API Key for this integration to work
  - You can get an free API Key by signing up on [Orshot](https://orshot.com)
  - After signing up, you can head to your Workspace > Settings > API Key to get your API Key
  - You can use that API Key in the "Token" field in the n8n Integration

  ## Compatibility

  - Works on n8n > 1.00
  - Created on n8n v1.94.1

  ## Usage

  You can refer to [Orshot API Docs](https://orshot.com/docs) to refer to the APIs and their usage along with definitions, examples etc.

  ## Resources

  - [API Docs](https://orshot.com/docs)
  - [Library Templates](https://orshot.com/templates)
  - [Creating a custom API template using Orshot Studio](https://orshot.com/features/orshot-studio)
  - [Creating a template using AI Template Generator](https://orshot.com/features/ai-template-generator)
  - [Integrations](https://orshot.com/integrations)

  ## Version history

  #### 0.5.0

  - Added support for Video generation (`mp4`, `webm`, `gif`) for studio templates
  - Added support for PDF options (`dpi`, `margin`, `colorMode`, `pageRange`)
  - Added support for Video options (`loop`, `muted`, `trimStart`, `trimEnd`)

  #### 0.4.1

  - Added support for `includePages` param for studio templates

  #### 0.4.0

  - Added support for `customFileName` and `scale` params for studio templates

  #### 0.3.5

  - Fixes image generation for "binary" response types

  #### 0.3.0

  - Add correct link to n8n Ingegration doc
  - Show descriptions in studio templates dropdown list

  #### 0.2.5

  - Automatically show dropdown of user's studio templates(previously user needed to enter it manually)

  #### 0.2.0

  - Make repo public and trigger vertification check

  #### 0.1.0

  - Initial Release
  - Actions for rendering from a library and studio template

ai_documentation_summary:
  {"purpose":"This n8n community node enables automated image and video generation using Orshot's API, allowing users to create dynamic visuals from pre-designed library templates or custom AI-generated studio templates.","capabilities":["Generate images from library templates","Generate images from Orshot Studio templates","Generate video content (mp4, webm, gif) from studio templates","Apply PDF options (dpi, margin, colorMode, pageRange)","Apply video options (loop, muted, trimStart, trimEnd)","Use includePages parameter for studio templates","Use customFileName and scale parameters for studio templates"],"authentication":"API Key required (obtained from Orshot workspace settings)","commonUseCases":["Automated marketing image creation","Dynamic social media content generation","Custom video production for campaigns","Batch image generation from templates"],"limitations":["Community node (may require manual updates if n8n changes structure)","Requires separate Orshot account and API key setup","Video generation requires Orshot Studio templates"],"relatedNodes":["HTTP Request","Code","Trigger Webhook"]}


node_type: @pdfgeneratorapi/n8n-nodes-pdf-generator-api.pdfGeneratorApi
package_name: @pdfgeneratorapi/n8n-nodes-pdf-generator-api
display_name: PDF Generator API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: bruno-farias-ar
author_github_url: https://github.com/pdfgeneratorapi/n8n-nodes-pdf-generator-api.git
npm_package_name: @pdfgeneratorapi/n8n-nodes-pdf-generator-api
npm_version: 0.4.0
community_fetched_at: 2026-04-16T09:43:36.148Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Generate PDFs, manage templates, convert HTML/URLs to PDF, and perform PDF operations like watermarking, encryption, and optimization

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "document",
      "options": [
        {
          "name": "Asset",
          "value": "asset",
          "description": "Generate QR codes and other assets for use in documents"
        },
        {
          "name": "Conversion",
          "value": "conversion",
          "description": "Convert HTML content or URLs directly to PDF without templates"
        },
        {
          "name": "Document",
          "value": "document",
          "description": "Generate PDFs from templates with data, manage document storage"
        },
        {
          "name": "PDF Service",
          "value": "pdfServices",
          "description": "Process existing PDFs: add watermarks, encrypt, decrypt, optimize, and manage form fields"
        },
        {
          "name": "Template",
          "value": "template",
          "description": "Create, update, and manage PDF templates for document generation"
        },
        {
          "name": "Workspace",
          "value": "workspace",
          "description": "Manage workspaces for organizing templates and users"
        }
      ],
      "description": "Choose the type of PDF operation: generate documents from templates, convert HTML/URLs, process existing PDFs, or manage templates and workspaces",
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateQRCode",
      "options": [
        {
          "name": "Generate QR Code",
          "value": "generateQRCode",
          "action": "Generate a QR code image",
          "description": "Generate a QR code image"
        }
      ],
      "displayName": "Asset Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "asset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "htmlToPdf",
      "options": [
        {
          "name": "HTML to PDF",
          "value": "htmlToPdf",
          "action": "Convert HTML content to PDF",
          "description": "Convert HTML content to PDF"
        },
        {
          "name": "URL to PDF",
          "value": "urlToPdf",
          "action": "Convert public URL to PDF",
          "description": "Convert public URL to PDF"
        }
      ],
      "displayName": "Conversion Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "conversion"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a document from storage",
          "description": "Delete a document from storage"
        },
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate a PDF document",
          "description": "Generate a PDF document"
        },
        {
          "name": "Generate (Async)",
          "value": "generateAsync",
          "action": "Generate a PDF document asynchronously",
          "description": "Generate a PDF document asynchronously"
        },
        {
          "name": "Generate (Batch + Async)",
          "value": "generateBatchAsync",
          "action": "Generate multiple PDF documents in batch asynchronously",
          "description": "Generate multiple PDF documents in batch asynchronously"
        },
        {
          "name": "Generate (Batch)",
          "value": "generateBatch",
          "action": "Generate multiple PDF documents in batch",
          "description": "Generate multiple PDF documents in batch"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a document by public ID",
          "description": "Get a document by public ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List generated documents",
          "description": "List generated documents"
        }
      ],
      "displayName": "Document Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "addWatermark",
      "options": [
        {
          "name": "Add Watermark",
          "value": "addWatermark",
          "action": "Add watermark to PDF document",
          "description": "Add text or image watermark to PDF document"
        },
        {
          "name": "Decrypt Document",
          "value": "decrypt",
          "action": "Decrypt encrypted PDF document",
          "description": "Decrypt an encrypted PDF document"
        },
        {
          "name": "Encrypt Document",
          "value": "encrypt",
          "action": "Encrypt PDF document with password",
          "description": "Encrypt a PDF document with password protection"
        },
        {
          "name": "Extract Form Fields",
          "value": "extractFormFields",
          "action": "Extract form fields from PDF document",
          "description": "Extract form fields and their metadata from a PDF document"
        },
        {
          "name": "Fill Form Fields",
          "value": "fillFormFields",
          "action": "Fill form fields in PDF document",
          "description": "Fill form fields in a PDF document with provided data"
        },
        {
          "name": "Optimize Document",
          "value": "optimize",
          "action": "Optimize PDF document size",
          "description": "Optimize PDF document size for better performance"
        }
      ],
      "displayName": "Services Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfServices"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Copy",
          "value": "copy",
          "action": "Copy a template",
          "description": "Copy a template"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new template",
          "description": "Create a new template"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a template",
          "description": "Delete a template"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a template by ID",
          "description": "Get a template by ID"
        },
        {
          "name": "Get Data Fields",
          "value": "getDataFields",
          "action": "Get template data fields",
          "description": "Get template data fields"
        },
        {
          "name": "Get Template Schema",
          "value": "getTemplateSchema",
          "action": "Get template JSON schema",
          "description": "Get template JSON schema"
        },
        {
          "name": "List",
          "value": "list",
          "action": "Get all templates",
          "description": "Get all templates"
        },
        {
          "name": "Open Editor",
          "value": "openEditor",
          "action": "Get template editor URL",
          "description": "Get template editor URL"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an existing template",
          "description": "Update an existing template"
        },
        {
          "name": "Validate",
          "value": "validate",
          "action": "Validate template configuration",
          "description": "Validate template configuration"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new workspace",
          "description": "Create a new workspace"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a workspace",
          "description": "Delete a workspace"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get workspace by identifier",
          "description": "Get workspace by identifier"
        },
        {
          "name": "List",
          "value": "list",
          "action": "Get all workspaces",
          "description": "Get all workspaces"
        }
      ],
      "displayName": "Workspace Operations",
      "displayOptions": {
        "show": {
          "resource": [
            "workspace"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate QR Code",
      "value": "generateQRCode",
      "action": "Generate a QR code image",
      "description": "Generate a QR code image",
      "resource": "asset"
    },
    {
      "name": "HTML to PDF",
      "value": "htmlToPdf",
      "action": "Convert HTML content to PDF",
      "description": "Convert HTML content to PDF",
      "resource": "conversion"
    },
    {
      "name": "URL to PDF",
      "value": "urlToPdf",
      "action": "Convert public URL to PDF",
      "description": "Convert public URL to PDF",
      "resource": "conversion"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a document from storage",
      "description": "Delete a document from storage",
      "resource": "document"
    },
    {
      "name": "Generate",
      "value": "generate",
      "action": "Generate a PDF document",
      "description": "Generate a PDF document",
      "resource": "document"
    },
    {
      "name": "Generate (Async)",
      "value": "generateAsync",
      "action": "Generate a PDF document asynchronously",
      "description": "Generate a PDF document asynchronously",
      "resource": "document"
    },
    {
      "name": "Generate (Batch + Async)",
      "value": "generateBatchAsync",
      "action": "Generate multiple PDF documents in batch asynchronously",
      "description": "Generate multiple PDF documents in batch asynchronously",
      "resource": "document"
    },
    {
      "name": "Generate (Batch)",
      "value": "generateBatch",
      "action": "Generate multiple PDF documents in batch",
      "description": "Generate multiple PDF documents in batch",
      "resource": "document"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a document by public ID",
      "description": "Get a document by public ID",
      "resource": "document"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List generated documents",
      "description": "List generated documents",
      "resource": "document"
    },
    {
      "name": "Add Watermark",
      "value": "addWatermark",
      "action": "Add watermark to PDF document",
      "description": "Add text or image watermark to PDF document",
      "resource": "pdfServices"
    },
    {
      "name": "Decrypt Document",
      "value": "decrypt",
      "action": "Decrypt encrypted PDF document",
      "description": "Decrypt an encrypted PDF document",
      "resource": "pdfServices"
    },
    {
      "name": "Encrypt Document",
      "value": "encrypt",
      "action": "Encrypt PDF document with password",
      "description": "Encrypt a PDF document with password protection",
      "resource": "pdfServices"
    },
    {
      "name": "Extract Form Fields",
      "value": "extractFormFields",
      "action": "Extract form fields from PDF document",
      "description": "Extract form fields and their metadata from a PDF document",
      "resource": "pdfServices"
    },
    {
      "name": "Fill Form Fields",
      "value": "fillFormFields",
      "action": "Fill form fields in PDF document",
      "description": "Fill form fields in a PDF document with provided data",
      "resource": "pdfServices"
    },
    {
      "name": "Optimize Document",
      "value": "optimize",
      "action": "Optimize PDF document size",
      "description": "Optimize PDF document size for better performance",
      "resource": "pdfServices"
    },
    {
      "name": "Copy",
      "value": "copy",
      "action": "Copy a template",
      "description": "Copy a template",
      "resource": "template"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new template",
      "description": "Create a new template",
      "resource": "template"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a template",
      "description": "Delete a template",
      "resource": "template"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a template by ID",
      "description": "Get a template by ID",
      "resource": "template"
    },
    {
      "name": "Get Data Fields",
      "value": "getDataFields",
      "action": "Get template data fields",
      "description": "Get template data fields",
      "resource": "template"
    },
    {
      "name": "Get Template Schema",
      "value": "getTemplateSchema",
      "action": "Get template JSON schema",
      "description": "Get template JSON schema",
      "resource": "template"
    },
    {
      "name": "List",
      "value": "list",
      "action": "Get all templates",
      "description": "Get all templates",
      "resource": "template"
    },
    {
      "name": "Open Editor",
      "value": "openEditor",
      "action": "Get template editor URL",
      "description": "Get template editor URL",
      "resource": "template"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an existing template",
      "description": "Update an existing template",
      "resource": "template"
    },
    {
      "name": "Validate",
      "value": "validate",
      "action": "Validate template configuration",
      "description": "Validate template configuration",
      "resource": "template"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new workspace",
      "description": "Create a new workspace",
      "resource": "workspace"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a workspace",
      "description": "Delete a workspace",
      "resource": "workspace"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get workspace by identifier",
      "description": "Get workspace by identifier",
      "resource": "workspace"
    },
    {
      "name": "List",
      "value": "list",
      "action": "Get all workspaces",
      "description": "Get all workspaces",
      "resource": "workspace"
    }
  ]

npm_readme:
  # n8n-nodes-pdf-generator-api

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

  PDF Generator API is a powerful service that allows you to generate PDFs from templates, convert HTML/URLs to PDF, and perform various PDF operations like watermarking, encryption, optimization, and form field manipulation.

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

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

  ## Installation

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

  Use the package name: `@pdfgeneratorapi/n8n-nodes-pdf-generator-api`

  ## Operations

  This node supports the following operations organized by resource:

  ### Asset
  - **Generate QR Code** - Generate QR codes with customizable colors and logos
    - Support for base64 and file output formats
    - Optional logo overlay (from URL or base64)
    - Customizable QR code color

  ### Document
  - **Generate** - Generate a PDF document from a template with data
  - **Generate (Async)** - Generate a PDF document asynchronously with callback
  - **Generate (Batch)** - Generate multiple PDF documents in batch
  - **Generate (Batch + Async)** - Generate multiple PDF documents in batch asynchronously
  - **List** - List generated documents stored in the API
  - **Get** - Retrieve a specific document by public ID
  - **Delete** - Delete a document from storage

  ### Template
  - **Create** - Create a new PDF template
  - **Update** - Update an existing template configuration
  - **Get** - Retrieve template configuration
  - **Delete** - Delete a template
  - **List** - List available templates
  - **Copy** - Create a copy of an existing template
  - **Get Data Fields** - Extract data fields used in a template
  - **Get Template Schema** - Get Template JSON Schema for validation
  - **Open Editor** - Get URL to open template editor
  - **Validate** - Validate template configuration

  ### Conversion
  - **HTML to PDF** - Convert HTML content directly to PDF
  - **URL to PDF** - Convert a public URL to PDF

  ### PDF Services
  - **Add Watermark** - Add text or image watermarks to PDF documents
  - **Encrypt Document** - Encrypt PDF documents with password protection
  - **Decrypt Document** - Decrypt encrypted PDF documents
  - **Optimize Document** - Optimize PDF file size for better performance
  - **Extract Form Fields** - Extract form fields and metadata from PDF documents
  - **Fill Form Fields** - Fill form fields in PDF documents with provided data

  ### Workspace
  - **Create** - Create a new workspace for organizing templates
  - **List** - List all workspaces in organization
  - **Get** - Get workspace information
  - **Delete** - Delete a workspace

  ## Credentials

  To use this node, you need to authenticate with PDF Generator API:

  ### Prerequisites
  1. Sign up for a [PDF Generator API account](https://pdfgeneratorapi.com/signup)
  2. Get your API Key and API Secret from Account Settings

  ### Authentication Setup
  1. In n8n, create new credentials for "PDF Generator API"
  2. Enter your **API Key** and **API Secret**

  ### JWT Authentication
  The node automatically handles JWT token generation using your API credentials. Tokens are generated server-side and include:
  - Issuer (iss): Your API Key
  - Subject (sub): Workspace identifier
  - Expiration (exp): Short-lived tokens for security

  ## Compatibility

  - **Minimum n8n version**: 0.199.0
  - **Tested with**: n8n versions 0.199.0+
  - **Node API version**: 1

  ## Usage

  ### QR Code Generation
  1. Select **Resource**: Asset
  2. Select **Operation**: Generate QR Code
  3. Enter the content to encode (URL, text, etc.)
  4. Choose output format (Base64 or File)
  5. Optionally add a logo from URL or base64
  6. Customize QR code color

  ### Basic Document Generation
  1. Select **Resource**: Document
  2. Select **Operation**: Generate
  3. Choose your template from the dropdown
  4. Provide JSON data to merge with the template
  5. Select output format (Base64, URL, Viewer, or File)

  ### HTML to PDF Conversion
  1. Select **Resource**: Conversion
  2. Select **Operation**: HTML to PDF
  3. Enter your HTML content
  4. Configure paper size and orientation
  5. Specify filename and output format

  ### PDF Processing
  - **Watermarking**: Add text or image watermarks with positioning options
  - **Encryption**: Protect PDFs with owner and user passwords
  - **Decryption**: Remove password protection from encrypted PDFs
  - **Optimization**: Reduce file size while maintaining quality
  - **Form Fields**: Extract form field metadata and fill PDF forms with data

  #### Form Fields Operations
  1. **Extract Form Fields**: Analyze PDF forms to discover available fields
  2. **Fill Form Fields**: Populate PDF forms with data

  Example form data:
  ```json
  {
    "firstName": "John",
    "lastName": "Doe",
    "email": "john.doe@example.com",
    "subscribe": true
  }
  ```

  ### Output Formats
  - **Base64**: Returns PDF as base64 encoded string in JSON
  - **URL**: Returns download URL (files stored for 30 days)
  - **Viewer**: Returns viewer URL for viewing/downloading (files stored for 30 days)
  - **File**: Returns binary PDF data for direct download

  ### Supported Document Formats
  - **PDF**: Full-featured PDF documents
  - **HTML**: HTML documents for web display

  ### Error Handling
  The node includes comprehensive error handling for:
  - Authentication failures
  - Invalid template configurations
  - Missing required parameters
  - API rate limiting
  - Network connectivity issues

  For workflows that should continue on errors, enable "Continue on Fail" in node settings.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [PDF Generator API Documentation](https://docs.pdfgeneratorapi.com)
  * [PDF Generator API Support](https://support.pdfgeneratorapi.com)
  * [Template Editor Guide](https://support.pdfgeneratorapi.com/en/category/components-1ffseaj/)
  * [Expression Language Documentation](https://support.pdfgeneratorapi.com/en/category/expression-language-q203pa/)

  ## Version history

  ### 0.4.0
  - **New**: Added Asset resource with QR code generation
    - Generate QR codes with customizable colors
    - Optional logo overlay support (URL or base64)
    - Base64 and file output formats
  - **New**: Added "Get Template Schema" operation to Template resource
    - Returns Template JSON Schema for validation
  - **New**: Added "Viewer" output format for document generation
    - Available for all document generation operations (sync, async, batch)
    - Returns viewer URL for viewing/downloading PDFs
    - Files stored for 30 days like URL format
  - 🔧 **Improved**: Enhanced output format descriptions and help text

  ### 0.3.0
  - 🔧 **Breaking**: Removed ZIP and XLSX format support
  - 🐛 **Fixed**: Parameter name collisions that caused UI issues with action generation
  - 🔧 **Improved**: File response handling
  - ✨ **New**: JSON parsing helper with consistent error handling across all user inputs
  - 🐛 **Fixed**: MIME type mappings for proper file downloads (PDF, HTML)
  - 🐛 **Fixed**: Resource/operation parameter extraction for proper n8n batch processing
  - 🔧 **Improved**: PDF optimization stats
  - 🛡️ **Security**: Enhanced input validation and error messaging

  ### 0.2.5 & 0.2.6
  - 🧹 **Improved**: Removed debug code
  - 📦 **Optimized**: Improved credentials logic
    
  ### 0.2.3 & 0.2.4
  - 🧹 **Cleanup**: Removed external dependencies

  ### 0.2.2
  - 🧹 **Cleanup**: Removed example nodes and credentials from package
  - 🔧 **Improved**: Build process now only includes production files
  - 📦 **Optimized**: Package structure for better n8n compatibility

  ### 0.2.1
  - 🐛 **Fixed**: Fixed npm publish script in package.json
  - 📝 **Updated**: Package metadata and repository information

  ### 0.2.0
  - ✨ **New**: Added PDF form fields operations
    - Extract Form Fields: Analyze and extract form field metadata
    - Fill Form Fields: Populate PDF forms with data
  - 🐛 **Fixed**: Improved error handling for PDF services operations
  - 📝 **Docs**: Enhanced documentation and examples

  ### 0.1.0
  - 🎉 **Initial Release**: Complete PDF Generator API integration
    - Document generation from templates
    - HTML/URL to PDF conversion
    - PDF processing (watermark, encrypt, decrypt, optimize)
    - Template and workspace management
    - Support for all output formats (Base64, URL, File)
    - Comprehensive error handling and validation 

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with PDF Generator API to create PDFs from templates, convert HTML/URLs to PDF, and perform advanced PDF operations like watermarking, encryption, and form manipulation.","capabilities":["Generate PDFs from templates with data merging","Convert HTML content to PDF","Convert public URLs to PDF","Generate QR codes with custom colors and logos","Add text or image watermarks to PDFs","Encrypt and decrypt PDF documents","Optimize PDF file size","Extract and fill form fields in PDFs","Manage PDF templates (create, update, delete, list, copy)","Organize resources into workspaces"],"authentication":"API Key and API Secret required","commonUseCases":["Automated document generation from templates","Converting web pages or HTML content to PDF format","Creating QR codes for marketing materials","Protecting sensitive documents with encryption","Processing and optimizing PDF files in workflows"],"limitations":["Requires separate account on PDF Generator API","URL to PDF conversion only works on public URLs","Files stored via URL/Viewer endpoints expire after 30 days","Minimum n8n version 0.199.0 required","JWT tokens are server-side generated with short expiration"],"relatedNodes":["n8n HTTP Request","n8n Binary File","n8n Code"]}


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

updated_at: 2026-04-16 09:43:36
author_name: respond.io
author_github_url: https://github.com/respond-io/n8n-integration.git
npm_package_name: @respond-io/n8n-nodes-respond-io
npm_version: 1.6.0
community_fetched_at: 2026-04-16T09:43:36.149Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-respondio

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

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

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

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

  ## Installation

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

  ## Operations

  ### Respond.io Actions Node

  The Respond.io Actions node supports the following operations:

  #### Channels

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

  #### Closing Notes

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

  #### Comments

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

  #### Contacts

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

  #### Contact Fields

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

  #### Conversations

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

  #### Lifecycle

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

  #### Messages

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

  #### Users

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

  ## Triggers

  ### Respond.io Trigger Node

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

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

  ## Credentials

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

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

  ### How to get your API Key

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

  ## Compatibility

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

  ## Usage

  ### Basic Workflow Example

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

  ### Advanced Workflow Example

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

  ### Message Types Supported

  The Send Message operation supports multiple message types:

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

  ## Resources

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

  ## Version history

  ### Version 1.0.0

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables full CRUD operations on Respond.io customer conversation management data, including contacts, conversations, messages, and channels, as well as real-time event triggering.","capabilities":["Get all channels","Retrieve and manage closing notes templates","Create, update, find, and delete contacts","Manage contact tags and space tags","Manage custom fields","Assign/unassign conversations to users","Open or close conversations","Update contact lifecycle stages","Send messages (text, email, attachments, quick replies, WhatsApp templates, custom payloads)","Find messages by ID"],"authentication":"API Key required (Respond.io API Key via Credentials)","commonUseCases":["Automated customer support responses across WhatsApp, Facebook Messenger, and Instagram","Real-time workflow triggers when new customer messages arrive","Automated contact enrichment and tagging based on incoming message content","Conversation assignment and routing to team members","Multi-channel message delivery with attachments and quick replies"],"limitations":["Community node (not official n8n node)","Requires Respond.io API key access"],"relatedNodes":["Respond.io Trigger","Respond.io Actions","Respond.io Credentials"]}


node_type: @sinch/n8n-nodes-number-lookup-api.sinchNumberLookupApi
package_name: @sinch/n8n-nodes-number-lookup-api
display_name: Sinch Number Lookup API
description: Interact with the Sinch Number Lookup API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: asein_sinch
author_github_url: https://github.com/sinch/n8n-sinch-number-lookup-api.git
npm_package_name: @sinch/n8n-nodes-number-lookup-api
npm_version: 0.1.9
community_fetched_at: 2026-04-16T09:43:36.149Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "numberLookup",
      "options": [
        {
          "name": "Number Lookup",
          "value": "numberLookup"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "lookup",
      "options": [
        {
          "name": "Lookup",
          "value": "lookup",
          "action": "Lookup a phone number",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/v2/projects/{{$parameter.projectId}}/lookups/",
              "method": "POST",
              "returnFullResponse": true,
              "ignoreHttpStatusErrors": true
            }
          },
          "description": "Perform a lookup on a phone number"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "numberLookup"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Lookup",
      "value": "lookup",
      "action": "Lookup a phone number",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/v2/projects/{{$parameter.projectId}}/lookups/",
          "method": "POST",
          "returnFullResponse": true,
          "ignoreHttpStatusErrors": true
        }
      },
      "description": "Perform a lookup on a phone number",
      "resource": "numberLookup"
    }
  ]

npm_readme:
  # n8n-nodes-number-lookup-api

  This is an n8n community node. It lets you use [Sinch Number Lookup API](https://developers.sinch.com/docs/number-lookup/) in your n8n workflows.

  Sinch Number Lookup API provides real-time phone number validation and verification services. With quick and easy access to Number Lookup, you can enhance your communications and keep your database clean. The API checks against first-party numbering sources and provides real-time feedback to improve communication by validating and verifying numbers, boosting delivery conversion rates, and saving money on marketing campaigns.

  [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

  ### Lookup

  Performs a comprehensive number lookup operation. You can select one or more features to include in the lookup request:

  - **Line Type**: Identify the type of phone line (mobile, landline, VoIP, etc.) including carrier information and porting status
  - **SIM Swap**: Detect if the SIM card has been swapped recently (configurable time periods from 4 hours to 30 days)
  - **VoIP Detection**: Check if the number is a VoIP (Voice over IP) number with probability scoring
  - **RND (Reassigned Number Database)**: Determine if the number has been reassigned to a new subscriber since your last contact date

  ## Credentials

  This node uses OAuth2 (Client Credentials) authentication. To set up credentials:

  ### Prerequisites

  1. Sign up for a [Sinch account](https://dashboard.sinch.com/signup)
  2. Create a new project in the [Sinch Dashboard](https://dashboard.sinch.com/)
  3. Navigate to **APIs** → **Number Lookup** to enable the API
  4. Go to **Settings** → **Access Keys** to obtain your credentials

  ### Setting up credentials in n8n

  1. In n8n, create new credentials of type "Sinch Number Lookup Api OAuth2 API"
  2. Fill in the following fields:
     - **Project ID**: Your Sinch project ID (UUID format, e.g., `395fcbf6-20d6-4e76-8242-77106018e191`)
     - **Client ID**: Your access key ID from Sinch Dashboard
     - **Client Secret**: Your access key secret from Sinch Dashboard
  3. Click "Connect" to authenticate

  The credentials use the Sinch OAuth2 token endpoint (`https://auth.sinch.com/oauth2/token`) with client credentials grant type.

  ## Compatibility

  This node has been tested with **n8n v1.0+** and uses the n8n nodes API v1.

  ## Usage

  ### Basic Number Lookup

  1. Add the **Sinch Number Lookup Api** node to your workflow
  2. Configure your credentials
  3. Enter your **Project ID** (the UUID of your Sinch project)
  4. Enter a phone number in **E.164 format** (e.g., `+48123321123`)
     - Must start with `+` followed by country code and number
     - No spaces, dashes, or other formatting
  5. Select one or more **Features** to query
  6. Execute the node

  ### Using the RND (Reassigned Number Database) Feature

  When using the RND feature, you must provide a **Contact Date**:

  1. Select "RND" from the Features list
  2. A **Contact Date** field will appear
  3. Enter the date when you last contacted this number
  4. The API will check if the number was reassigned after that date

  ### Example Workflow

  ```
  Manual Trigger → Sinch Number Lookup Api → IF (check results)
  ```

  Use the lookup results to:
  - Filter out invalid numbers before sending SMS/calls
  - Detect high-risk numbers (recent SIM swaps, VoIP)
  - Clean your contact database
  - Validate user-provided phone numbers in real-time

  ### Response Data

  The node returns comprehensive information about the queried number:

  ```json
  {
    "number": "+12312312312",
    "countryCode": "US",
    "line": {
      "type": "Mobile",
      "carrier": "T-Mobile USA",
      "mobileCountryCode": "310",
      "mobileNetworkCode": "260",
      "ported": true,
      "portingDate": "2023-01-15T00:00:00Z"
    },
    "simSwap": {
      "swapped": false,
      "swapPeriod": "SP24H"
    },
    "voIPDetection": {
      "probability": "Low"
    },
    "rnd": {
      "disconnected": false
    },
    "traceId": "84c1fd4063c38d9f3900d06e56542d48"
  }
  ```

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Sinch Number Lookup API Documentation](https://developers.sinch.com/docs/number-lookup-api-v2)
  * [Sinch Dashboard](https://dashboard.sinch.com/)
  * [Sinch API Reference](https://developers.sinch.com/docs/number-lookup-api-v2/api-reference/number-lookup-v2/numberlookupv2)
  * [Get Support](https://www.sinch.com/contact-us/)


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

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

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

npm_readme:
  ## Presenton for n8n

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

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

  ### Features

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

  ## Installation

  ### Install in n8n (Community nodes)

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

  ### Self-hosted filesystem install

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

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

  Minimum Node.js version: 20

  ## Credentials

  Create credentials of type `Presenton API`:

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

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

  ## Node operations

  ### Generate Presentation (Async)

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

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

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

  ### Check Presentation Status

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

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

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

  ### Upload File

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

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

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

  ## Typical workflow examples

  ### Generate a presentation from text

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

  ### Upload then generate

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

  ## Error handling

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

  ## Development

  Clone, install, and build:

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

  Linting and formatting:

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

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

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"A community node that enables asynchronous generation of professional presentations (PPTX or PDF) using the Presenton API, supporting file uploads, status checking, and customizable generation parameters.","capabilities":["Asynchronous presentation generation from text content","Generation from markdown slide lists","Customizable tone, verbosity, and theme","Web search integration during generation","AI-generated or stock image support","Custom slide count and language selection","Template selection","Table of contents and title slide inclusion","Binary file upload for use in generation","Task status polling until completion"],"authentication":"API Key required (Bearer token)","commonUseCases":["Automated creation of pitch decks from text input","Generating educational or sales presentations from content","Converting uploaded documents or drafts into slide decks","Workflow automation for content-to-presentation conversion"],"limitations":["Generation is asynchronous, requiring a separate status check node","File uploads require a separate operation to obtain file IDs","Minimum Node.js version 20 required for self-hosted installation","Some result metadata (like download links) depends on Presenton API definitions"],"relatedNodes":["Wait Until Node","Code Node","Set Node","HTTP Request Node","Binary File Node"]}


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

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

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

npm_readme:
  # n8n-nodes-steuerboard

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

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

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

  ## Installation

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

  ## Operations

  - Clients
    - List clients
    - Get client by ID

  ## Credentials

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

  How to get an API key:

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

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

  API Key: your generated key
  Requests are sent with:

  Authorization: Bearer YOUR_API_KEY

  ## Compatibility

  Compatible with n8n@1.60.0 or later

  ## Resources

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables users to interact with the Steuerboard API by performing client management operations within n8n workflows.","capabilities":["List all clients in Steuerboard","Retrieve a specific client by ID"],"authentication":"API key via Authorization: Bearer header","commonUseCases":["Automating client data retrieval in n8n workflows","Integrating Steuerboard client management with other automation tasks"],"limitations":["Limited to client listing and retrieval operations only","Requires manual API key creation and management in n8n credentials"],"relatedNodes":["HTTP Request node","Steuerboard API node"]}


node_type: n8n-nodes-ticktick.tickTick
package_name: n8n-nodes-ticktick
display_name: TickTick
description: Interact with TickTick tasks and projects
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: hansdoe
author_github_url: https://github.com/hansdoebel/
npm_package_name: n8n-nodes-ticktick
npm_version: 2.1.3
community_fetched_at: 2026-04-16T09:43:36.152Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Focus",
          "value": "focus"
        },
        {
          "name": "Habit",
          "value": "habit"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Project Group",
          "value": "projectGroup"
        },
        {
          "name": "Sync",
          "value": "sync"
        },
        {
          "name": "Tag",
          "value": "tag"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Assign",
          "value": "assign",
          "action": "Assign a task to a user",
          "description": "Assign a task to a user (V2 API only)"
        },
        {
          "name": "Complete",
          "value": "complete",
          "action": "Complete a task"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task"
        },
        {
          "name": "List All",
          "value": "listAll",
          "action": "List all tasks",
          "description": "List all tasks (V2 API only)"
        },
        {
          "name": "List Completed",
          "value": "listCompleted",
          "action": "List completed tasks",
          "description": "List completed tasks (V2 API only)"
        },
        {
          "name": "List Deleted",
          "value": "listDeleted",
          "action": "List deleted tasks",
          "description": "List deleted tasks (V2 API only)"
        },
        {
          "name": "Move",
          "value": "move",
          "action": "Move a task",
          "description": "Move a task to another project (V2 API only)"
        },
        {
          "name": "Set Parent",
          "value": "setParent",
          "action": "Set parent task",
          "description": "Set parent task (V2 API only)"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a project"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a project"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a project"
        },
        {
          "name": "Get Users",
          "value": "getUsers",
          "action": "Get users in a project",
          "description": "Get users in a shared project (V2 API only)"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a tag",
          "description": "Create a new tag"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a tag",
          "description": "Delete a tag"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all tags",
          "description": "Get all tags"
        },
        {
          "name": "Merge",
          "value": "merge",
          "action": "Merge tags",
          "description": "Merge one tag into another"
        },
        {
          "name": "Rename",
          "value": "rename",
          "action": "Rename a tag",
          "description": "Rename a tag"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a tag",
          "description": "Update a tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tag"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Archive",
          "value": "archive",
          "action": "Archive a habit",
          "description": "Archive a habit"
        },
        {
          "name": "Check In",
          "value": "checkin",
          "action": "Check in a habit",
          "description": "Record a habit check-in"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a habit",
          "description": "Create a new habit"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a habit",
          "description": "Delete a habit"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a habit",
          "description": "Get a habit by ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all habits",
          "description": "Get all habits"
        },
        {
          "name": "Unarchive",
          "value": "unarchive",
          "action": "Unarchive a habit",
          "description": "Unarchive a habit"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a habit",
          "description": "Update a habit"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "habit"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getHeatmap",
      "options": [
        {
          "name": "Get Distribution",
          "value": "getDistribution",
          "action": "Get focus distribution",
          "description": "Get focus time distribution by tag"
        },
        {
          "name": "Get Heatmap",
          "value": "getHeatmap",
          "action": "Get focus heatmap",
          "description": "Get focus/pomodoro heatmap data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "focus"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a project group",
          "description": "Create a new project group (folder)"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a project group",
          "description": "Delete a project group"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all project groups",
          "description": "Get all project groups"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a project group",
          "description": "Update a project group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "projectGroup"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getProfile",
      "options": [
        {
          "name": "Get Preferences",
          "value": "getPreferences",
          "action": "Get user preferences",
          "description": "Get user preferences and settings"
        },
        {
          "name": "Get Profile",
          "value": "getProfile",
          "action": "Get user profile",
          "description": "Get the user profile"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get user status",
          "description": "Get user subscription status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "syncAll",
      "options": [
        {
          "name": "Sync All",
          "value": "syncAll",
          "action": "Sync all data",
          "description": "Get all user data including projects, tasks, and more"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sync"
          ],
          "authentication": [
            "tickTickSessionApi"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Assign",
      "value": "assign",
      "action": "Assign a task to a user",
      "description": "Assign a task to a user (V2 API only)",
      "resource": "task"
    },
    {
      "name": "Complete",
      "value": "complete",
      "action": "Complete a task",
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "resource": "task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "resource": "task"
    },
    {
      "name": "List All",
      "value": "listAll",
      "action": "List all tasks",
      "description": "List all tasks (V2 API only)",
      "resource": "task"
    },
    {
      "name": "List Completed",
      "value": "listCompleted",
      "action": "List completed tasks",
      "description": "List completed tasks (V2 API only)",
      "resource": "task"
    },
    {
      "name": "List Deleted",
      "value": "listDeleted",
      "action": "List deleted tasks",
      "description": "List deleted tasks (V2 API only)",
      "resource": "task"
    },
    {
      "name": "Move",
      "value": "move",
      "action": "Move a task",
      "description": "Move a task to another project (V2 API only)",
      "resource": "task"
    },
    {
      "name": "Set Parent",
      "value": "setParent",
      "action": "Set parent task",
      "description": "Set parent task (V2 API only)",
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task",
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a project",
      "resource": "project"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a project",
      "resource": "project"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a project",
      "resource": "project"
    },
    {
      "name": "Get Users",
      "value": "getUsers",
      "action": "Get users in a project",
      "description": "Get users in a shared project (V2 API only)",
      "resource": "project"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a project",
      "resource": "project"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a tag",
      "description": "Create a new tag",
      "resource": "tag"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a tag",
      "description": "Delete a tag",
      "resource": "tag"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all tags",
      "description": "Get all tags",
      "resource": "tag"
    },
    {
      "name": "Merge",
      "value": "merge",
      "action": "Merge tags",
      "description": "Merge one tag into another",
      "resource": "tag"
    },
    {
      "name": "Rename",
      "value": "rename",
      "action": "Rename a tag",
      "description": "Rename a tag",
      "resource": "tag"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a tag",
      "description": "Update a tag",
      "resource": "tag"
    },
    {
      "name": "Archive",
      "value": "archive",
      "action": "Archive a habit",
      "description": "Archive a habit",
      "resource": "habit"
    },
    {
      "name": "Check In",
      "value": "checkin",
      "action": "Check in a habit",
      "description": "Record a habit check-in",
      "resource": "habit"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a habit",
      "description": "Create a new habit",
      "resource": "habit"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a habit",
      "description": "Delete a habit",
      "resource": "habit"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a habit",
      "description": "Get a habit by ID",
      "resource": "habit"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all habits",
      "description": "Get all habits",
      "resource": "habit"
    },
    {
      "name": "Unarchive",
      "value": "unarchive",
      "action": "Unarchive a habit",
      "description": "Unarchive a habit",
      "resource": "habit"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a habit",
      "description": "Update a habit",
      "resource": "habit"
    },
    {
      "name": "Get Distribution",
      "value": "getDistribution",
      "action": "Get focus distribution",
      "description": "Get focus time distribution by tag",
      "resource": "focus"
    },
    {
      "name": "Get Heatmap",
      "value": "getHeatmap",
      "action": "Get focus heatmap",
      "description": "Get focus/pomodoro heatmap data",
      "resource": "focus"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a project group",
      "description": "Create a new project group (folder)",
      "resource": "projectGroup"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a project group",
      "description": "Delete a project group",
      "resource": "projectGroup"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all project groups",
      "description": "Get all project groups",
      "resource": "projectGroup"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a project group",
      "description": "Update a project group",
      "resource": "projectGroup"
    },
    {
      "name": "Get Preferences",
      "value": "getPreferences",
      "action": "Get user preferences",
      "description": "Get user preferences and settings",
      "resource": "user"
    },
    {
      "name": "Get Profile",
      "value": "getProfile",
      "action": "Get user profile",
      "description": "Get the user profile",
      "resource": "user"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get user status",
      "description": "Get user subscription status",
      "resource": "user"
    },
    {
      "name": "Sync All",
      "value": "syncAll",
      "action": "Sync all data",
      "description": "Get all user data including projects, tasks, and more",
      "resource": "sync"
    }
  ]

npm_readme:
  # n8n-nodes-ticktick

  n8n community node for integrating TickTick with your workflows. Manage tasks, projects, tags, habits, and productivity seamlessly.

  ## Installation

  ```
  n8n-nodes-ticktick
  ```

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

  ## Features

  - **Tasks** - Create, update, complete, delete, move, assign, set parent
  - **Projects** - Manage projects and shared collaborators
  - **Project Groups** - Organize projects into groups (V2)
  - **Tags** - Create, rename, merge tags (V2)
  - **Habits** - Track habits with check-ins (V2)
  - **Focus** - Get focus time heatmaps and distribution (V2)
  - **User** - Get profile, status, and preferences (V2)
  - **Sync** - Full data sync (V2)

  ## Documentation

  | Document | Description |
  |----------|-------------|
  | [Getting Started](https://github.com/hansdoebel/n8n-nodes-ticktick/blob/main/docs/getting-started.md) | Installation and setup |
  | [Credentials](https://github.com/hansdoebel/n8n-nodes-ticktick/blob/main/docs/credentials.md) | Authentication options |
  | [API Reference](https://github.com/hansdoebel/n8n-nodes-ticktick/blob/main/docs/api-reference.md) | All operations |
  | [Testing](https://github.com/hansdoebel/n8n-nodes-ticktick/blob/main/docs/testing.md) | Running tests |
  | [Development](https://github.com/hansdoebel/n8n-nodes-ticktick/blob/main/docs/development.md) | Contributing |
  | [Troubleshooting](https://github.com/hansdoebel/n8n-nodes-ticktick/blob/main/docs/troubleshooting.md) | Known issues and FAQ |
  | [Changelog](https://github.com/hansdoebel/n8n-nodes-ticktick/blob/main/CHANGELOG.md) | Version history |

  ## Resources

  - [GitHub Repository](https://github.com/hansdoebel/n8n-nodes-ticktick)
  - [TickTick Open API](https://developer.ticktick.com/docs#/openapi)
  - [n8n Community Nodes](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"A community n8n node that enables workflow automation for managing TickTick productivity tasks, projects, tags, habits, and user data.","capabilities":["Create, update, complete, delete, and move tasks","Assign tasks and set parent-child relationships","Manage projects and shared collaborators","Organize projects into groups","Create, rename, and merge tags","Track habits with check-ins","Retrieve focus time heatmaps and distribution","Get user profile, status, and preferences","Perform full data synchronization"],"authentication":"API key required (via Credentials configuration)","commonUseCases":["Automating daily task completion and status updates","Syncing external calendar events to TickTick projects","Managing habit tracking and streaks","Organizing work into project groups with tags","Retrieving user productivity analytics"],"limitations":["Community-maintained node (may have less official support than official n8n nodes)","V2 features indicated for some capabilities (tags, habits, focus, user, sync) suggesting potential API versioning differences"],"relatedNodes":["n8n-nodes-ticktick","n8n-nodes-github","n8n-nodes-google-calendar","n8n-nodes-automation"]}


node_type: n8n-nodes-logsnag.LogSnag
package_name: n8n-nodes-logsnag
display_name: LogSnag
description: Send events and insights to LogSnag
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: joff
author_github_url: https://github.com/joffcom/
npm_package_name: n8n-nodes-logsnag
npm_version: 0.1.0
community_fetched_at: 2026-04-16T09:43:36.153Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "log",
      "options": [
        {
          "name": "Log",
          "value": "log"
        },
        {
          "name": "Insight",
          "value": "insight"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "publish",
      "options": [
        {
          "name": "Publish",
          "value": "publish",
          "action": "Publish an event to LogSnag",
          "routing": {
            "request": {
              "url": "/log",
              "method": "POST"
            }
          },
          "description": "Publish an event to LogSnag"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "log"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "publish",
      "options": [
        {
          "name": "Publish",
          "value": "publish",
          "action": "Publish an insight to LogSnag",
          "routing": {
            "request": {
              "url": "/insight",
              "method": "POST"
            }
          },
          "description": "Publish an insight to LogSnag"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "insight"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Publish",
      "value": "publish",
      "action": "Publish an event to LogSnag",
      "routing": {
        "request": {
          "url": "/log",
          "method": "POST"
        }
      },
      "description": "Publish an event to LogSnag",
      "resource": "log"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "log"
    },
    {
      "name": "Publish",
      "value": "publish",
      "action": "Publish an insight to LogSnag",
      "routing": {
        "request": {
          "url": "/insight",
          "method": "POST"
        }
      },
      "description": "Publish an insight to LogSnag",
      "resource": "insight"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "insight"
    }
  ]

npm_readme:
  # n8n-nodes-logsnag

  This is an n8n community node for sending events and insights to [LogSnag](https://logsnag.com/)

  This trigger node will get any items that have a published date that is after the date of the last run of the trigger.

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

  [Installation](#installation)  
  [Version history](#version-history) 

  ## Installation

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

  ## Resources

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

  ## Version history

  0.1.0 - Initial Release

ai_documentation_summary:
  {"purpose":"A community node that sends events and insights to LogSnag, including a trigger node that captures items published after the last run.","capabilities":["Send events to LogSnag","Send insights to LogSnag","Trigger-based item capture based on published date"],"authentication":"API key required (implied by LogSnag integration)","commonUseCases":["Automated event logging to LogSnag","Monitoring workflow execution events","Capturing published items for tracking"],"limitations":["Community node (not official n8n node)","Trigger functionality limited to items with published dates after last run"],"relatedNodes":["n8n-nodes-base.Trigger","n8n-nodes-base.httpRequest"]}


node_type: @datafix/n8n-nodes-exact-online.exactOnline
package_name: @datafix/n8n-nodes-exact-online
display_name: Exact Online
description: Exact Online Node
category: Community
development_style: declarative
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: bramknuever
author_github_url: https://github.com/DataFix-B-V/ExactOnline.git
npm_package_name: @datafix/n8n-nodes-exact-online
npm_version: 0.3.7
community_fetched_at: 2026-04-16T09:43:36.154Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "description": "Resource to connect to. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code-examples/expressions/\">expression</a>. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "displayName": "Resource Name or ID",
      "typeOptions": {
        "loadOptionsMethod": "getResources",
        "loadOptionsDependsOn": [
          "service"
        ]
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "description": "Operation to use. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code-examples/expressions/\">expression</a>. Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>.",
      "displayName": "Operation Name or ID",
      "typeOptions": {
        "loadOptionsMethod": "getOperations",
        "loadOptionsDependsOn": [
          "resource"
        ]
      },
      "noDataExpression": true
    }
  ]

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

  # n8n-nodes-exact-online

  This node was developed during the n8n node-athon. This is version one with a basic CRUD implemented.
  During the development the API reference docs were scraped with a n8n workflow. This Workflow was also included in the repo.
  There were 396 pages scraped and processed into a config file.

  The node is usable with a Developer account which can be created for free at Exact Online's website. This way you can test the node however you like it without compromising your production environment.
  After you can easily connect it with a production environment and automate your workflows.

  ## Developer

  Hi, 

  We are [DataFix](https://datafix.nl), an expert partner of n8n.
  > :warning: **We have developed this node to be free to use. The node is as-is, support is not included.**

  Some of the services we offer:
  * Node Development
  * Workflow Development
  * Mentoring
  * Support

  Feel free to reach out if you want to hire us @ hi@datafix.nl

  For questions or issues with the node, please open an issue on Github.
  We will have a look and if it is an issue with the node we will try to fix it. Be sure to include a proper description and screenshot(s) of the issue so we can easily understand the issue.

  ## Exact Online

  Exact Online is an ERP solution that is offered as a cloud service. Most companies that use exact use it as their main application and have all kinds of applications they use around that. Exact has been expanding over the years and they now offer Exact Online internationally.

  ## Install instructions

  The node can be installed with the community package feature. It can also be installed manually. 
  If you need more information on that, please refer to the n8n docs.

  Make sure to restart n8n when you have installed the node.
  > :warning: **Make sure to restart n8n when you have installed the node.**

  ## Setup instructions

  > :warning: **You need a HTTPS callback url for it to function. Exact Online does not allow you to use HTTP. Make sure you have this before starting the setup.**

  > **_NOTE:_**  Some of the documentation was rewritten because the production app setup is a bit different from the development app. That is also why some names and urls arent the same everywhere, I hope it is clear enough not to get you confused about changing names and such.

  To setup this node you will have to create an App in Exact online. Below there is a step by step guide on how to do this.
  In the future there might be a possibility to simply select it from the app store of Exact Online. I will be looking into getting it approved at a later date.

  The Images should be clear enough for you to follow along.

  Login into Exact Online by clicking on the marked button

  ![Login](https://github.com/bramkn/ExactOnline/blob/master/Images/login.png)

  Click on appcenter button to open the app center, this where you can connect apps.

  ![ManageApps](https://github.com/bramkn/ExactOnline/blob/master/Images/appcenterNormal.png)

  At this point it will forward you to all the apps you can browse. You probably need to click on login in the top right again to actually login on this page.

  After that you will see the manage apps button
  Click on the manage apps button

  ![ManageApps2](https://github.com/bramkn/ExactOnline/blob/master/Images/manageapps2.png)

  You will then see your apps. There is a choice between production and test. Click on register an app.
  If you do not have a choice simply click on the big + to register an app.

  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/Apps.png)

  Open a tab with n8n and go to the Exact Online Node, if you do not have it open already.
  Create a new credentials entry or modify an existing one in the app.

  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/credentials.png)

  You should see the credential information. You need to fill this in, but first you need the Callback URL to be filled in into the app setup in Exact Online.
  Copy the callback URL from n8n into Exact Online. 
  If you are registering a production app you will need to do this in this first screen that pops up. If it is a testing app this pop-up is skipped. (fill in the name and the callback url in the following screen if this step is skipped)

  ![prodRegister](https://github.com/bramkn/ExactOnline/blob/master/Images/registerappProd.png)

  Fill in the rest of the information in the credentials of n8n.
  Should look a bit like this:

  Exact Online:
  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/oauth2Exact2.png)

  n8n:
  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/Oauth2n8n2.png)

  After you can Click connect / reconnect and it might give you a pop-up to login to exact online if you aren't logged in yet or you need to confirm the connection / approve some terms.

  ## Features v1.0

  All posible API requests were scraped from the Exact Online docs. This was used to create a config file. some quality of life features were added and more will be added in the future.

  You can choose al Devisions your account has access to. And all data you have access to will be able to be retrieved.
  Somtimes you do not retrieve any data that is because there is non or you do not have access.

  you can use the dropdowns to select what you want to do.

  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/options1.png)

  when retrieving data you can add filters and choose what fields you want to include. You can both name field to be included and excluded. Some Api endpoints allow you to retrieve all fields when not selecting any and some require you to select the fields you want to include. By setting the slider to exclude the selected fields and not selecting any fields the node will automatically fetch all fields available.

  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/options3.png)


  when you want to create a new record or edit it, you will be able to add fields and select fields from a list of options for that specific resource.

  ![Apps](https://github.com/bramkn/ExactOnline/blob/master/Images/options2.png)

  ## Using the scraper

  - You do not need an account for the scraper.
  - Paste the JSON into an n8n workflow.
  - Set the Github Authorization
  - The first time you might want to set the Github node to create the file.
  - Start
  - Done -> make sure to format the output file as this will improve the readability ;-)

  ## More info on the API

  [Exact Online ref](https://start.exactonline.nl/docs/HlpRestAPIResources.aspx?SourceAction=10)

  ## License

  [ChickenDance](https://github.com/bramkn/ExactOnline/blob/master/n8n-nodes-exact-online/LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n node enables automation of Exact Online ERP systems by providing CRUD operations and data retrieval capabilities via the Exact Online API.","capabilities":["Create, Read, Update, and Delete (CRUD) operations on Exact Online entities","Retrieve data with customizable filters","Select specific fields to include or exclude in API responses","Access multiple divisions within an Exact Online account","Authentication via OAuth2 using a callback URL"],"authentication":"OAuth2 (requires HTTPS callback URL)","commonUseCases":["Automating data synchronization between Exact Online and other systems","Extracting inventory or financial data for reporting","Testing Exact Online API integrations without affecting production data"],"limitations":["Requires a HTTPS callback URL (HTTP is not supported by Exact Online)","Support is not included; the node is provided as-is","Some API endpoints may require explicit field selection even when retrieving all data","Version 1.0 is a basic implementation with potential for future enhancements"],"relatedNodes":["n8n-nodes-exact-online.exactOnline","n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: n8n-nodes-contextualai.contextualAi
package_name: n8n-nodes-contextualai
display_name: Contextual AI
description: Access Contextual AI tools for agents, parsing, querying, and reranking.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: jinash_rouniyar1
author_github_url: https://github.com/ContextualAI/
npm_package_name: n8n-nodes-contextualai
npm_version: 0.1.11
community_fetched_at: 2026-04-16T09:43:36.156Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "Agent",
      "options": [
        {
          "name": "Agent",
          "value": "Agent"
        },
        {
          "name": "Datastore",
          "value": "Datastore"
        },
        {
          "name": "Query",
          "value": "Query"
        },
        {
          "name": "Reranker",
          "value": "Reranker"
        },
        {
          "name": "LMUnit",
          "value": "LMUnit"
        },
        {
          "name": "Parser",
          "value": "Parser"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Create Agent",
      "options": [
        {
          "name": "Create Agent",
          "value": "Create Agent",
          "action": "Create Agent",
          "description": "Create agent, datastore, and upload documents"
        },
        {
          "name": "List Agents",
          "value": "List Agents",
          "action": "List Agents",
          "description": "Retrieve a list of all agents"
        },
        {
          "name": "Delete Agent",
          "value": "Delete Agent",
          "action": "Delete Agent",
          "description": "Delete a given agent (irreversible operation)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Parse Document",
      "options": [
        {
          "name": "Parse Document",
          "value": "Parse Document",
          "action": "Parse Document",
          "description": "Parse a document using Contextual AI parser"
        },
        {
          "name": "Parse Status",
          "value": "Parse Status",
          "action": "Parse Status",
          "description": "Get the status of a parse job"
        },
        {
          "name": "Parse Result",
          "value": "Parse Result",
          "action": "Parse Result",
          "description": "Get the results of a parse job"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Parser"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Query agent",
      "options": [
        {
          "name": "Query agent",
          "value": "Query agent",
          "action": "Query agent",
          "description": "Query a Contextual AI agent"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Query"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Rerank documents",
      "options": [
        {
          "name": "Rerank documents",
          "value": "Rerank documents",
          "action": "Rerank documents",
          "description": "Rerank documents against a query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Reranker"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Run LMUnit",
      "options": [
        {
          "name": "Run LMUnit",
          "value": "Run LMUnit",
          "action": "Run LMUnit",
          "description": "Evaluate a response with LMUnit"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "LMUnit"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "Create Datastore",
      "options": [
        {
          "name": "Create Datastore",
          "value": "Create Datastore",
          "action": "Create Datastore",
          "description": "Create a new datastore"
        },
        {
          "name": "Ingest Document",
          "value": "Ingest Document",
          "action": "Ingest Document",
          "description": "Ingest a document into a datastore"
        },
        {
          "name": "Get Document Metadata",
          "value": "Get Document Metadata",
          "action": "Get Document Metadata",
          "description": "Get metadata and processing status for a document"
        },
        {
          "name": "List Datastores",
          "value": "List Datastores",
          "action": "List Datastores",
          "description": "Retrieve a list of all datastores"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "Datastore"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Agent",
      "value": "Create Agent",
      "action": "Create Agent",
      "description": "Create agent, datastore, and upload documents",
      "resource": "Agent"
    },
    {
      "name": "List Agents",
      "value": "List Agents",
      "action": "List Agents",
      "description": "Retrieve a list of all agents",
      "resource": "Agent"
    },
    {
      "name": "Delete Agent",
      "value": "Delete Agent",
      "action": "Delete Agent",
      "description": "Delete a given agent (irreversible operation)",
      "resource": "Agent"
    },
    {
      "name": "Parse Document",
      "value": "Parse Document",
      "action": "Parse Document",
      "description": "Parse a document using Contextual AI parser",
      "resource": "Parser"
    },
    {
      "name": "Parse Status",
      "value": "Parse Status",
      "action": "Parse Status",
      "description": "Get the status of a parse job",
      "resource": "Parser"
    },
    {
      "name": "Parse Result",
      "value": "Parse Result",
      "action": "Parse Result",
      "description": "Get the results of a parse job",
      "resource": "Parser"
    },
    {
      "name": "Query agent",
      "value": "Query agent",
      "action": "Query agent",
      "description": "Query a Contextual AI agent",
      "resource": "Query"
    },
    {
      "name": "Rerank documents",
      "value": "Rerank documents",
      "action": "Rerank documents",
      "description": "Rerank documents against a query",
      "resource": "Reranker"
    },
    {
      "name": "Run LMUnit",
      "value": "Run LMUnit",
      "action": "Run LMUnit",
      "description": "Evaluate a response with LMUnit",
      "resource": "LMUnit"
    },
    {
      "name": "Create Datastore",
      "value": "Create Datastore",
      "action": "Create Datastore",
      "description": "Create a new datastore",
      "resource": "Datastore"
    },
    {
      "name": "Ingest Document",
      "value": "Ingest Document",
      "action": "Ingest Document",
      "description": "Ingest a document into a datastore",
      "resource": "Datastore"
    },
    {
      "name": "Get Document Metadata",
      "value": "Get Document Metadata",
      "action": "Get Document Metadata",
      "description": "Get metadata and processing status for a document",
      "resource": "Datastore"
    },
    {
      "name": "List Datastores",
      "value": "List Datastores",
      "action": "List Datastores",
      "description": "Retrieve a list of all datastores",
      "resource": "Datastore"
    }
  ]

npm_readme:
  # n8n-nodes-contextualai

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

  Contextual AI provides enterprise-grade RAG (Retrieval-Augmented Generation) agents, advanced document parsing, intelligent querying, and document reranking capabilities for building sophisticated AI-powered applications.

  [Contextual AI](https://contextual.ai) is a platform for building enterprise-grade AI applications with advanced RAG capabilities, while [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.

  ## Table of contents

  - [Installation on self hosted instance](#installation-self-hosted)
  - [Installation on n8n cloud](#installation-n8n-cloud)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Compatibility](#compatibility)
  - [Usage](#usage)
  - [Resources](#resources)
  - [Troubleshooting](#troubleshooting)  

  ## Installation (self-hosted)

  To install the Contextual AI community node directly from the n8n Editor UI:

  1. Open your n8n instance.
  2. Go to **Settings > Community Nodes**
  3. Select **Install**.
  4. Enter the npm package name: `n8n-nodes-contextualai` to install the latest version.
  5. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes and select **Install**
  6. The node is now available to use in your workflows.

  ## Installation (n8n Cloud)

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

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

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


  ## Operations

  This node supports a comprehensive range of Contextual AI operations, organized by resource type:

  ### Agent
  - **Create agent**: Create a new Contextual AI RAG agent with datastore and upload documents
    - Configure agent name, description, and datastore settings
    - Upload multiple documents via binary data
    - Support for various document formats (PDF, DOC/DOCX, PPT/PPTX)
    - Automatic document processing and indexing
  - **List agents**: Retrieve a list of all agents in your Contextual AI account
    - View agent details and metadata
    - Check agent status and configuration
  - **Delete agent**: Remove an agent from your Contextual AI account
    - Permanent deletion of agent and associated data
    - Requires agent ID for confirmation

  ### Datastore
  - **Create datastore**: Create a new datastore for document storage
    - Configure datastore name and settings
    - Set up document storage and indexing
  - **Ingest document**: Upload and process documents into a datastore
    - Support for multiple document formats (PDF, DOC/DOCX, PPT/PPTX, HTML)
    - Optional metadata attachment
    - Batch processing capabilities
  - **Get document metadata**: Retrieve metadata for a specific document
    - Document information and processing status
    - Metadata and indexing details
  - **List datastores**: Retrieve a list of all datastores in your account
    - View datastore details and configuration
    - Check datastore status and document counts

  ### Query
  - **Query agent**: Query existing Contextual AI agents with intelligent retrieval
    - Natural language querying capabilities
    - Optional retrieval-only mode
    - Document readiness checking
    - Contextual response generation
    - Retrieval content inclusion

  ### Parser  
  - **Parse document**: Parse documents using Contextual AI's advanced document parser
    - Support for PDF, DOC/DOCX, PPT/PPTX files
    - Configurable parsing modes (standard)
    - Figure caption extraction (concise/detailed)
    - Document hierarchy preservation
    - Page range selection
    - Returns job ID for status monitoring
  - **Parse status**: Check the status of a document parsing job
    - Monitor parsing progress
    - Retrieve parsed results when completed
    - Track job status and file information
  - **Parse result**: Get the results of a completed parse job
    - Retrieve parsed content in multiple formats (markdown-document, markdown-per-page, blocks-per-page)
    - Access document metadata and hierarchy information
    - Get structured content blocks with confidence levels and bounding boxes

  ### Reranker
  - **Rerank documents**: Rank documents according to their relevance to a query
    - Instruction-following reranker technology
    - Custom instruction support
    - Metadata integration
    - Relevance scoring and ranking

  ### LMUnit
  - **Run LMUnit**: Evaluate model responses using Contextual AI's scoring system
    - Automated response evaluation
    - Custom unit test criteria
    - Scoring from 1-5 scale
    - Quality assessment and validation

  ### AI Tools Integration

  All Contextual AI node operations can be combined with n8n's AI tools to create powerful workflows.
  For example, you can ingest documents into a datastore, create an agent from that information, and then query over the documents for grounded responses and citations.

  ## Credentials

  This node requires a Contextual AI API key for authentication.

  ### Prerequisites
  - Sign up for a free trial of Contextual AI account at [app.contextual.ai](https://app.contextual.ai)
  - Obtain your API key from the Contextual AI dashboard

  ### Setup
  1. In n8n, go to **Credentials**
  2. Add a new **"Contextual AI API"** credential
  3. Enter your API key in the **API Key** field
  4. Optionally add a **Name** for easy identification
  5. Click **Save** to store the credential

  ### Authentication Methods

  The node supports API key authentication:
  - **API Key**: Configure your Contextual AI API key in the n8n credentials section under `ContextualAiApi`
  - **Security**: API keys are securely stored and encrypted in n8n's credential system

  ## Compatibility

  This node has been tested with n8n version 1.57.0 and is compatible with:

  - **n8n version**: 1.0.0 or later
  - **Node.js version**: 20.15 or later
  - **Contextual AI API**: Latest version

  ## Usage

  ### Getting Started

  1. **Set up credentials**: Configure your Contextual AI API key in n8n credentials
  2. **Create a workflow**: Start a new workflow in n8n
  3. **Add the Contextual AI node**: Insert the Contextual AI node into your workflow
  4. **Select an operation**: Choose the desired operation for your use case
  5. **Execute the workflow**: Run the workflow to perform the Contextual AI operation

  ### Creating an Agent with Documents

  1. Add the Contextual AI node to your workflow
  2. Select **"Agent"** as the resource and **"Create agent"** as the operation
  3. Configure your agent settings:
     - **Agent Name**: Give your agent a descriptive name
     - **Description**: Provide a brief description of the agent's purpose
     - **Datastore Name**: Specify the datastore name for document storage
  4. Provide documents via binary data (supports multiple files)
  5. Configure document processing options if needed
  6. Execute to create the agent and upload documents

  ### Datastore Management

  1. **Create a datastore**:
     - Select **"Datastore"** as the resource and **"Create datastore"** as the operation
     - Enter a datastore name
     - Execute to create the datastore and receive the datastore ID

  2. **Upload documents**:
     - Select **"Ingest document"** as the operation
     - Provide the datastore ID and document files via binary data
     - Optionally add metadata as JSON
     - Execute to upload and process documents

  3. **Using data connectors (Optional)**:
     > **Note**: To use source connectors for your datastore, you need to configure them in the [Contextual AI platform](https://app.contextual.ai) first, then use that datastore in your n8n workflow.
     
     - **Step 1**: Configure connectors in the [Contextual AI platform](https://app.contextual.ai)
       - Go to Datastores → Create → Select "Third-Party Connection"
       - Choose your data source (Google Drive, SharePoint)
       - Authorize and select specific folders to sync
       - Wait for initial sync to complete (status shows "Synced" with green checkmark)
     - **Step 2**: Use the connector datastore in your n8n workflow
       - Copy the datastore ID from the platform
       - Use this ID when creating agents or querying in n8n
       - The datastore will automatically stay in sync with your source data
     - **Benefits**: No manual document uploads, automatic permissions enforcement, real-time data updates

  4. **Manage documents**:
     - Use **"List datastores"** to view all datastores
     - Use **"Get document metadata"** to retrieve specific document information

  ### Querying an Agent

  1. Select **"Query"** as the resource and **"Query agent"** as the operation
  2. Enter the **Agent ID** and your **Query**
  3. Configure query options:
     - Enable **retrieval-only mode** for document search without generation
     - Include **retrieval content text** for context
     - Set **document readiness** checking
  4. Execute to get the agent's response

  ### Document Reranking

  1. Select **"Reranker"** as the resource and **"Rerank documents"** as the operation
  2. Provide a **Query** and **comma-separated list of documents**
  3. Configure reranking options:
     - Add **custom instructions** for ranking criteria
     - Include **metadata** for enhanced ranking
  4. Execute to get ranked results with relevance scores

  ### Response Evaluation

  1. Select **"LMUnit"** as the resource and **"Run LMUnit"** as the operation
  2. Provide the required inputs:
     - **Original Query**: The question that was asked
     - **Model Response**: The response to evaluate
     - **Unit Test Criteria**: The criteria for evaluation
  3. Execute to get a score from 1-5 on the unit test

  ### Document Parsing

  1. Select **"Parser"** as the resource and **"Parse document"** as the operation
  2. Provide a document file via binary data
  3. Configure parsing options:
     - **Parse Mode**: Choose parsing mode (standard)
     - **Figure Caption Mode**: Choose caption extraction (concise/detailed)
     - **Enable Document Hierarchy**: Preserve document structure
     - **Page Range**: Specify pages to parse (e.g., "0-5")
  4. Execute to submit the parse job and receive a job ID
  5. Use **"Parse status"** operation with the job ID to monitor progress and retrieve results


  ### Advanced Workflow Examples

  - **Document Processing Pipeline**: Parse documents → Create datastore → Ingest documents → Create agent → Query agent
  - **Quality Assurance**: Query agent → Evaluate response with LMUnit
  - **Content Optimization**: Rerank documents → Parse top results → Create refined agent
  - **Batch Document Processing**: List datastores → Ingest multiple documents → Monitor processing status
  - **Agent Management**: List agents → Delete unused agents → Create new agents with updated documents

  ## Resources

  * [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Contextual AI Documentation](https://docs.contextual.ai)
  * [Contextual AI API Reference](https://docs.contextual.ai/api-reference)

  ## Troubleshooting

  ### Common issues

  1. **Authentication errors**
     - Verify your API key is correct and active
     - Check if your Contextual AI account has sufficient permissions
     - Ensure the API key hasn't expired

  2. **Agent Not Found**
     - Verify the agent ID format is correct
     - Check if the agent exists in your Contextual AI account
     - Ensure you have access to the agent

  3. **Document parsing failures**
     - Verify the document format is supported (PDF, DOC/DOCX, PPT/PPTX)
     - Check file size limits
     - Ensure the document isn't corrupted or password-protected

  4. **Query operation failures**
     - Verify the agent ID is correct
     - Check if the agent is ready (documents processed)
     - Review query format and parameters

  5. **Reranking errors**
     - Ensure documents are provided in the correct format
     - Check query and document content validity
     - Verify custom instructions are properly formatted

  6. **Parse job failures**
     - Verify the job ID format is correct (should be a UUID)
     - Check if the parse job exists and hasn't expired
     - Ensure the original document was valid and supported

  7. **Datastore operation failures**
     - Verify datastore ID format is correct (should be a UUID)
     - Check if the datastore exists in your account
     - Ensure you have proper permissions for the datastore

  ### Getting help

  If you encounter issues:
  1. Check the [Contextual AI API documentation](https://docs.contextual.ai/api-reference)
  2. Review the [n8n Community Nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  3. Open an issue in the [GitHub repository](https://github.com/contextual-ai/n8n-nodes-contextualai)

ai_documentation_summary:
  {"purpose":"This n8n community node enables enterprise-grade RAG (Retrieval-Augmented Generation) workflows by providing tools for agent management, document parsing, intelligent querying, document reranking, and model evaluation.","capabilities":["Create, list, and delete RAG agents","Create and manage datastores for document storage","Ingest and process multiple document formats (PDF, DOCX, PPTX, HTML)","Parse documents with configurable modes and hierarchy preservation","Query agents with natural language retrieval and contextual responses","Rerank documents based on relevance to queries","Evaluate model responses using automated scoring","Support for binary data uploads and batch processing"],"authentication":"API Key required (Contextual AI API key stored in n8n credentials)","commonUseCases":["Building enterprise RAG applications with document grounding","Automated document ingestion and indexing workflows","Intelligent document querying with citation support","Model evaluation and quality assessment pipelines"],"limitations":["Community node (self-hosted only, not included in n8n Cloud base plan)","Requires separate Contextual AI account and API key","Some advanced features may require paid Contextual AI tier"],"relatedNodes":["n8n-nodes-core.code","n8n-nodes-core.httpRequest","n8n-nodes-core.binary","n8n-nodes-core.waitUntil","n8n-nodes-core.splitInBatches"]}


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

updated_at: 2026-04-16 09:43:36
author_name: level-dev
author_github_url: https://github.com/levelrmm/n8n-nodes-level.git
npm_package_name: @levelrmm/n8n-nodes-level
npm_version: 0.2.8
community_fetched_at: 2026-04-16T09:43:36.156Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "devices",
      "options": [
        {
          "name": "Alert",
          "value": "alerts"
        },
        {
          "name": "Automation",
          "value": "automation"
        },
        {
          "name": "Device",
          "value": "devices"
        },
        {
          "name": "Group",
          "value": "groups"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an alert",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/alerts/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "List",
          "value": "list",
          "action": "List alerts",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/alerts",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "alerts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "triggerWebhook",
      "options": [
        {
          "name": "Trigger Webhook",
          "value": "triggerWebhook",
          "action": "Trigger a webhook automation",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/automations/webhooks/{{$parameter[\"token\"]}}",
              "method": "POST"
            }
          },
          "description": "Invoke a Level automation webhook by token"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "automation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List devices",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/devices",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a device",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/devices",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "devices"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a group",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "=/groups/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          }
        },
        {
          "name": "List",
          "value": "list",
          "action": "List groups",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/groups",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "groups"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get an alert",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/alerts/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "resource": "alerts"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List alerts",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/alerts",
          "method": "GET"
        }
      },
      "resource": "alerts"
    },
    {
      "name": "Trigger Webhook",
      "value": "triggerWebhook",
      "action": "Trigger a webhook automation",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/automations/webhooks/{{$parameter[\"token\"]}}",
          "method": "POST"
        }
      },
      "description": "Invoke a Level automation webhook by token",
      "resource": "automation"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List devices",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/devices",
          "method": "GET"
        }
      },
      "resource": "devices"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a device",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/devices",
          "method": "GET"
        }
      },
      "resource": "devices"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a group",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "=/groups/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "resource": "groups"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List groups",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/groups",
          "method": "GET"
        }
      },
      "resource": "groups"
    }
  ]

npm_readme:
  ![Level Logo](https://media.level.io/i/logo/logo-bg.jpg)
  # n8n-nodes-level

  Official [n8n](https://n8n.io) community nodes for [Level.io](https://level.io), the RMM and automation platform for modern MSPs. These nodes let you orchestrate Level alerts, devices, groups, automations, and webhook events directly from your n8n workflows.

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

  ## Installation

  Follow the [community node installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) to add `n8n-nodes-level` to your n8n instance. Once installed, the Level nodes appear in the n8n editor under **Level**.

  ## Operations

  ### Level node

  | Resource | Operations |
  | --- | --- |
  | Alert | Get alert by ID, List alerts |
  | Automation | Trigger webhook |
  | Device | Get device by ID, List devices |
  | Group | Get group by ID, List groups |

  ### Level Trigger node

  The trigger node listens for signed webhook events from Level and emits them into your workflows. Supported event types include alert, device, group, and automation lifecycle notifications.

  ## Credentials

  Create the following credentials in n8n:

  - **Level API** – Generate an API key from the Level dashboard (**Settings → API Keys**) and store it in this credential. Assign it to the Level node (and to the trigger if you enrich incoming events with REST calls).
  - **Level Webhook Secret** – Copy the signing secret from **Settings → Webhooks** in Level and store it in this credential. Assign it to the Level Trigger node to verify incoming webhook signatures.

  ## Compatibility

  These nodes target `n8nNodesApiVersion` 1 and are developed against n8n v1.60.0 and later. Earlier releases of n8n might not expose all required node features.

  ## Usage

  1. **Add credentials** – In n8n, open *Settings → Credentials* and create both a **Level API** credential (API key) and a **Level Webhook Secret** credential (webhook signing secret).
  2. **Automate API calls** – Place the **Level** node in a workflow to query alerts, devices, or groups, or to invoke an automation webhook by token. Use the *Response Property Name* parameter to reshape the API response when needed.
  3. **React to webhooks** – Add the **Level Trigger** node, select the event types you want to handle, and copy the webhook URL generated by n8n. Configure this URL and the shared secret in Level so events flow into your workflow securely.
  4. **Chain actions** – Combine Level data with other n8n nodes to notify teams, update tickets, or enrich records in downstream systems.

  Refer to the [Level API reference](https://levelapi.readme.io/reference/getting-started-with-your-api) for endpoint details, pagination behavior, and payload schemas when building workflows.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Level API reference](https://levelapi.readme.io/reference/getting-started-with-your-api)
  - [Level help center](https://help.level.io/)

  ## Version history

  | Version | Changes |
  | --- | --- |
  | 0.1.0 | Initial release of the Level community nodes for n8n. |

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Level.io API to manage alerts, devices, groups, and automations for MSPs.","capabilities":["Get alert by ID","List alerts","Trigger automation webhook","Get device by ID","List devices","Get group by ID","List groups","Listen for signed webhook events (alert, device, group, automation lifecycle)"],"authentication":"API key required (Level API) and Webhook secret required (Level Webhook Secret)","commonUseCases":["Automate Level.io alerts and device management","React to webhook events from Level.io","Orchestrate Level automations via n8n workflows","Integrate Level data with other n8n nodes for notifications or ticket updates"],"limitations":["Developed against n8n v1.60.0 and later; earlier versions may not expose all required node features","Requires manual setup of both API credentials and webhook secrets in n8n"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n If","n8n Set"]}


node_type: n8n-nodes-digital-ocean.digitalOcean
package_name: n8n-nodes-digital-ocean
display_name: Digital Ocean
description: Digital Ocean
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: joff
author_github_url: https://github.com/joffcom/
npm_package_name: n8n-nodes-digital-ocean
npm_version: 0.4.1
community_fetched_at: 2026-04-16T09:43:36.157Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "account",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Domain",
          "value": "domain"
        },
        {
          "name": "Droplet",
          "value": "droplet"
        },
        {
          "name": "Event",
          "value": "event"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get account information",
          "description": "Get account information"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get event information",
          "description": "Get event information"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get information about many events",
          "description": "Get information about many events"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a domain",
          "description": "Create a domain"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get domain information",
          "description": "Get domain information"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get information about many domains",
          "description": "Get information about many domains"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a domain",
          "description": "Delete a domain"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "domain"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Action",
          "value": "action",
          "action": "Perform an action on a droplet",
          "description": "Perform an action on a droplet"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new droplet",
          "description": "Create a new droplet"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a droplet",
          "description": "Delete a droplet"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get information about a droplet",
          "description": "Get information about a droplet"
        },
        {
          "name": "Get Backups",
          "value": "getBackups",
          "action": "Get all backups for a droplet",
          "description": "Get all backups for a droplet"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get information about all droplets",
          "description": "Get information about many droplets"
        },
        {
          "name": "Get Snapshots",
          "value": "getSnapshots",
          "action": "Get all snapshots for a droplet",
          "description": "Get all snapshots for a droplet"
        },
        {
          "name": "Custom API Call",
          "value": "__CUSTOM_API_CALL__"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "droplet"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get account information",
      "description": "Get account information",
      "resource": "account"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "account"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get event information",
      "description": "Get event information",
      "resource": "event"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get information about many events",
      "description": "Get information about many events",
      "resource": "event"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "event"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a domain",
      "description": "Create a domain",
      "resource": "domain"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get domain information",
      "description": "Get domain information",
      "resource": "domain"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get information about many domains",
      "description": "Get information about many domains",
      "resource": "domain"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a domain",
      "description": "Delete a domain",
      "resource": "domain"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "domain"
    },
    {
      "name": "Action",
      "value": "action",
      "action": "Perform an action on a droplet",
      "description": "Perform an action on a droplet",
      "resource": "droplet"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new droplet",
      "description": "Create a new droplet",
      "resource": "droplet"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a droplet",
      "description": "Delete a droplet",
      "resource": "droplet"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get information about a droplet",
      "description": "Get information about a droplet",
      "resource": "droplet"
    },
    {
      "name": "Get Backups",
      "value": "getBackups",
      "action": "Get all backups for a droplet",
      "description": "Get all backups for a droplet",
      "resource": "droplet"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get information about all droplets",
      "description": "Get information about many droplets",
      "resource": "droplet"
    },
    {
      "name": "Get Snapshots",
      "value": "getSnapshots",
      "action": "Get all snapshots for a droplet",
      "description": "Get all snapshots for a droplet",
      "resource": "droplet"
    },
    {
      "name": "Custom API Call",
      "value": "__CUSTOM_API_CALL__",
      "resource": "droplet"
    }
  ]

npm_readme:
  # n8n-nodes-digital-ocean

  This is an n8n community node for connecting to Digital Oceans API to manage your droplets.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  <!-- delete if no auth needed -->  
  [Compatibility](#compatibility)  
  [Usage](#usage)  <!-- delete if not using this section -->  
  [Resources](#resources)  
  [Version history](#version-history)  <!-- delete if not using this section -->  

  ## Installation

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

  ## Operations
  - Account
  	- Get
  - Domain
  	- Create
  	- Get
  	- Get Many
  	- Delete
  - Droplet
  	- Get
  	- Get Many
  	- Create
  	- Delete
  - Event 
  	- Get
  	- Get Many

  ## Credentials

  This node supports both OAuth2 and Access Key.

  [OAuth 2](https://docs.digitalocean.com/reference/api/oauth/)
  [Access Key](https://docs.digitalocean.com/reference/api/create-personal-access-token/)

  ## Compatibility

  This node will work with any version of n8n after `1.62.1`

  ## Usage

  ### Authentication
  1. Create new credentials in n8n and select "Digital Ocean API"
  2. Choose either OAuth2 or Access Key authentication:
     - For OAuth2: Click the "Connect" button and authorize n8n
     - For Access Key: Generate a [personal access token](https://cloud.digitalocean.com/account/api/tokens) and paste it in

  ### Working with Droplets
  - To get information about a specific droplet:
    1. Add the Digital Ocean node
    2. Select "Droplet" as Resource
    3. Choose "Get" as Operation
    4. Enter the Droplet ID

  - To create a new droplet:
    1. Add the Digital Ocean node
    2. Select "Droplet" as Resource
    3. Choose "Create" as Operation
    4. Configure required fields:
       - Name
       - Region
       - Size
       - Image

  ### Managing Domains
  - To create a new domain:
    1. Add the Digital Ocean node
    2. Select "Domain" as Resource
    3. Choose "Create" as Operation
    4. Enter the domain name
    5. Optionally configure IP address

  ### Monitoring Events
  - To track operations on your account:
    1. Add the Digital Ocean node
    2. Select "Event" as Resource
    3. Choose "Get Many" as Operation
    4. Optionally filter by event type

  ## Resources

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

  ## Version history

  **0.4.1** \
  Fix descriptions

  **0.4.0** \
  Add support for AI tools
  Update documentation

  **0.3.0** \
  Prevent node from loading n8n again

  **0.2.0** \
  Add support for Application images  
  Add support for Actions as Events  
  Add support for Domains  
  Add support for Droplet actions  
  Add option to get Droplet Snapshots and Backups  

  **0.1.0** \
  Initial Release

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the DigitalOcean API for managing cloud infrastructure resources like droplets, domains, and events.","capabilities":["Get account information","Create, retrieve, and delete domains","Create, retrieve, and delete droplets","Retrieve account events and activity logs","Manage droplet snapshots and backups","Support for AI tools integration"],"authentication":"OAuth2 or Access Key (Personal Access Token)","commonUseCases":["Automated server provisioning and management","Cloud infrastructure monitoring and event tracking","Domain registration and management workflows","Automated droplet lifecycle management"],"limitations":["Community node (not official n8n node)","Requires n8n version 1.62.1 or higher"],"relatedNodes":["DigitalOcean API","Cloud provider nodes","Server management nodes"]}


node_type: n8n-nodes-postiz.postiz
package_name: n8n-nodes-postiz
display_name: Postiz
description: Consume Postiz API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: nevodavid10
author_github_url: https://github.com/gitroomhq/postiz-n8n.git
npm_package_name: n8n-nodes-postiz
npm_version: 0.2.17
community_fetched_at: 2026-04-16T09:43:36.159Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "createPost",
      "options": [
        {
          "name": "Create Post",
          "value": "createPost",
          "action": "Schedule a post to postiz",
          "description": "Schedule a post to Postiz"
        },
        {
          "name": "Delete Post",
          "value": "deletePost",
          "action": "Delete a post by id",
          "description": "Delete a post by ID"
        },
        {
          "name": "Generate Video",
          "value": "generateVideo",
          "action": "Generate videos with AI",
          "description": "Generate videos with AI"
        },
        {
          "name": "Get Channels",
          "value": "getIntegrations",
          "action": "Get a list of connected channels",
          "description": "Get a list of connected channels"
        },
        {
          "name": "Get Posts",
          "value": "getPosts",
          "action": "Get a list of posts",
          "description": "Get a list of posts"
        },
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload a file to postiz",
          "description": "Upload a file to Postiz"
        },
        {
          "name": "Video Function",
          "value": "videoFunction",
          "action": "Execute video related functions",
          "description": "Execute video-related functions like loading voices"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Post",
      "value": "createPost",
      "action": "Schedule a post to postiz",
      "description": "Schedule a post to Postiz"
    },
    {
      "name": "Delete Post",
      "value": "deletePost",
      "action": "Delete a post by id",
      "description": "Delete a post by ID"
    },
    {
      "name": "Generate Video",
      "value": "generateVideo",
      "action": "Generate videos with AI",
      "description": "Generate videos with AI"
    },
    {
      "name": "Get Channels",
      "value": "getIntegrations",
      "action": "Get a list of connected channels",
      "description": "Get a list of connected channels"
    },
    {
      "name": "Get Posts",
      "value": "getPosts",
      "action": "Get a list of posts",
      "description": "Get a list of posts"
    },
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload a file to postiz",
      "description": "Upload a file to Postiz"
    },
    {
      "name": "Video Function",
      "value": "videoFunction",
      "action": "Execute video related functions",
      "description": "Execute video-related functions like loading voices"
    }
  ]

npm_readme:
  # Introduction
  [Postiz](https://postiz.com) is a powerful social media scheduling tool that allows you to manage your social media accounts efficiently.

  You can use n8n to automate your workflow and post to multiple social media platforms at once.

  You can [self-host](https://docs.postiz.com/introduction) Postiz or use our [cloud version](https://platform.postiz.com).
  For example: Load news from Reddit >> Make it a video with AI >> Post it to your social media accounts.

  Postiz supports: X, LinkedIn, BlueSky, Instagram, Facebook, TikTok, YouTube, Pinterest, Dribbble, Telegram, Discord, Slack, Threads, Lemmy, Reddit, Mastodon, Warpcast, Nostr and VK.

  You can learn how to use Postiz + n8n after installation here:
  https://youtu.be/c50u3K3xsCI

  ---

  > Note
  > If you are self-hosting Postiz on port 5000 (reverse proxy),
  > Your host must end with /api for example:
  > http://yourdomain.com/api

  Alternatively, you can use the SDK with curl, check the [Postiz API documentation](https://docs.postiz.com/public-api) for more information.

  ---

  ## Installation (quick installation)

  - Click on settings
  - Click on Community Nodes
  - Click on Install
  - Add "n8n-nodes-postiz" to "npm Package Name"
  - Click on Install

  ![community-node.png](community-node.png)

  ---

  ## Installation (non-docker - manual installation)
  Go to your n8n installation usually located at `~/.n8n`.
  Check if you have the `custom` folder, if not create it and create a new package.json file inside.
  ```bash
  mkdir -p ~/.n8n/custom
  npm init -y
  ```

  Then install the Postiz node package:
  ```
  npm install n8n-nodes-postiz
  ```

  ## For docker users (manual installation)
  Create a new folder on your host machine, for example `~/n8n-custom-nodes`, and create a new package.json file inside:
  ```bash
  mkdir -p ~/n8n-custom-nodes
  npm init -y
  ```

  install the Postiz node package:
  ```bash
  npm install n8n-nodes-postiz
  ```

  When you run the n8n docker container, mount the custom nodes folder to the container:
  Add the following environment variable to your docker run command:
  ```
  N8N_CUSTOM_EXTENSIONS="~/n8n-custom-nodes"
  ```

ai_documentation_summary:
  {"purpose":"The Postiz node allows n8n workflows to interact with the Postiz API for managing and scheduling content across multiple social media platforms.","capabilities":["Post to X (Twitter)","Post to LinkedIn","Post to BlueSky","Post to Instagram","Post to Facebook","Post to TikTok","Post to YouTube","Post to Pinterest","Post to Dribbble","Post to Telegram"],"authentication":"API key required (configured via Postiz settings)","commonUseCases":["Automated social media content scheduling","Cross-platform content distribution","Integrating news aggregation with social posting","AI-driven content creation and posting workflows"],"limitations":["Requires self-hosted Postiz or cloud version to be configured with API credentials","Self-hosted instances on port 5000 require the host URL to end with /api","Authentication details are managed externally in Postiz, not within the n8n node"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: n8n-nodes-simla.simlaTrigger
package_name: n8n-nodes-simla
display_name: Simla Trigger
description: Starts the workflow on a Simla mg event
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: retailcrm
author_github_url: https://github.com/retailcrm/
npm_package_name: n8n-nodes-simla
npm_version: 0.1.2
community_fetched_at: 2026-04-16T09:43:36.160Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-simla

  This is a n8n community node. It lets you use Simla API in your n8n workflows.

  Simla is a customer relationship management (CRM) platform that helps businesses manage sales, customer interactions, and messaging.

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

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

  ## Installation

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

  ## Operations

  This node supports the following resources and operations:

  ### Customer
  - **Get**: Get customers by filter
  - **Create**: Create customer
  - **Edit**: Edit customer

  ### Order
  - **Get**: Get orders by filter
  - **Create**: Create order
  - **Edit**: Edit order

  ### Message
  - **Send**: Send a message to chat

  ### Dialog
  - **Assign**: Assign a dialog to a user or bot
  - **Unassign**: Unassign a dialog
  - **Close**: Close a dialog

  ## Credentials

  To use the Simla node, you need to authenticate with the Simla API:

  1. You need a Simla account
  2. Create a Simla API key - [documentation](https://docs.simla.com/Users/Integration/APIEditing). Minimal required permissions:
  	- **Orders**: Read and write
  	- **Customers**: Read and write
  	- **Integration**: Read and write
  3. Provide:
  	- **Simla URL**: Your Simla instance URL
  	- **Simla API key**: Your API key for authentication

  The node uses API key authentication with the key sent in the X-Api-Key header.

  ## Compatibility

  This node has been tested with n8n version 1.109.1.

  ## Usage

  ### Customer and order operations:
  Fill in the necessary fields in the filter to search for a customer or order.

  #### Saving an order with a customer
  Select Simla Trigger with Trigger On: _Customer Message_.
  ![img.png](docs/customerOrderCreate.png)
  You can search for a customer by _customerMgId_:
  ![img.png](docs/customerGet.png)
  When creating an order, specify Customer -> ID:
  ![img.png](docs/orderWithCustomer.png)

  Choose the necessary fields from fixedCollection for creating and editing a customer or order.
  #### Order creation example:
  ![img.png](docs/orderCreate.png)

  #### Customer edition example:
  ![img.png](docs/customerEdit.png)

  ### Illustrative example of chat interactions:
  Select Simla Trigger with Trigger On: _Customer Message_.
  When a message is received in Simla, the message is passed to $json.body.payload[0].content. Depending on the message written by the client:
  - a greeting is sent to the client;
  - the dialog is assigned to the appropriate manager;
  - the dialog is unassigned from the responsible person;
  - the dialog is closed.

  ![img.png](docs/chatManipulation.png)

  To send a message, specify the Chat ID from INPUT. To manage the dialog, select dialogId in the corresponding field.

  ![img.png](docs/chatSendMessage.png)


  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Simla API Documentation](https://docs.simla.com/Developers/API/APIVersions/APIv5)

ai_documentation_summary:
  {"purpose":"A n8n community node that triggers workflows based on events from the Simla CRM platform, enabling automation of customer interactions, orders, and messaging.","capabilities":["Trigger workflow on Simla customer message events","Retrieve customers by filter","Create new customers","Edit existing customers","Retrieve orders by filter","Create new orders","Edit existing orders","Send messages to chat","Assign dialogs to users or bots","Unassign dialogs"],"authentication":"API key required (X-Api-Key header)","commonUseCases":["Automate customer onboarding when a new customer message is received","Create orders linked to specific customers","Route chat dialogues to appropriate managers or bots","Close or unassign completed customer dialogues"],"limitations":["Community node (not official n8n node)","Requires separate Simla account and API key setup","Minimum permissions required for Orders, Customers, and Integration resources","Tested only with n8n version 1.109.1"],"relatedNodes":["n8n-nodes-base.webhook","n8n-nodes-base.httpRequest"]}


node_type: n8n-nodes-crossmint.crossmintWallets
package_name: n8n-nodes-crossmint
display_name: Crossmint Wallets
description: Interact with Crossmint Wallet APIs
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: manuxmint
author_github_url: https://github.com/crossmint/
npm_package_name: n8n-nodes-crossmint
npm_version: 1.1.0
community_fetched_at: 2026-04-16T09:43:36.161Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "wallet",
      "options": [
        {
          "name": "Wallet",
          "value": "wallet",
          "description": "Crossmint wallet operations"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getOrCreateWallet",
      "options": [
        {
          "name": "Create Transfer",
          "value": "createTransfer",
          "action": "Create transfer",
          "description": "Create Transfer from Crossmint wallet to any address"
        },
        {
          "name": "Get Balance",
          "value": "getBalance",
          "action": "Get balance",
          "description": "Get balance of any wallet"
        },
        {
          "name": "Get or Create Wallet",
          "value": "getOrCreateWallet",
          "action": "Get or create wallet",
          "description": "Get or Create Crossmint wallet for company or user"
        },
        {
          "name": "Get Wallet",
          "value": "getWallet",
          "action": "Get wallet",
          "description": "Retrieve a wallet by its locator"
        },
        {
          "name": "Sign Transaction",
          "value": "signTransaction",
          "action": "Sign transaction",
          "description": "Sign transaction with private key and submit signature in one step"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "wallet"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Transfer",
      "value": "createTransfer",
      "action": "Create transfer",
      "description": "Create Transfer from Crossmint wallet to any address",
      "resource": "wallet"
    },
    {
      "name": "Get Balance",
      "value": "getBalance",
      "action": "Get balance",
      "description": "Get balance of any wallet",
      "resource": "wallet"
    },
    {
      "name": "Get or Create Wallet",
      "value": "getOrCreateWallet",
      "action": "Get or create wallet",
      "description": "Get or Create Crossmint wallet for company or user",
      "resource": "wallet"
    },
    {
      "name": "Get Wallet",
      "value": "getWallet",
      "action": "Get wallet",
      "description": "Retrieve a wallet by its locator",
      "resource": "wallet"
    },
    {
      "name": "Sign Transaction",
      "value": "signTransaction",
      "action": "Sign transaction",
      "description": "Sign transaction with private key and submit signature in one step",
      "resource": "wallet"
    }
  ]

npm_readme:
  # n8n Community Node for Crossmint

  ## Table of Contents

  - [Installation](#-installation-local-development-setup)
  - [Your First Workflow Using Crossmint](#️-your-first-workflow-using-crossmint)
    - [Step 1: Add the Crossmint Node to Your Workflow](#step-1-add-the-crossmint-node-to-your-workflow)
    - [Step 2: Set Up Crossmint Project & Credentials](#step-2-set-up-crossmint-project--credentials)
    - [Getting Test USDC for Staging](#getting-test-usdc-for-staging)
  - [Supported Operations](#-supported-operations)
    - [Resource: Wallet](#resource-wallet)
    - [Resource: Checkout](#resource-checkout)
  - [API Reference](#-api-reference)
    - [Wallet Operations](#wallet-operations)
    - [Checkout Operations](#checkout-operations)
    - [Additional Resources](#additional-resources)
  - [Understanding Wallet Locators](#-understanding-wallet-locators)
    - [Locator Types](#locator-types)
    - [Chain Types](#chain-types)
    - [Best Practices](#best-practices)
  - [Admin Signer Private Key](#-admin-signer-private-key)
  - [Example Workflows](#-example-workflows)
  - [License](#-license)

  This community node for n8n provides a complete integration with Crossmint's **Wallet** and **Checkout** APIs. It allows users and AI agents to program digital money inside wallets, and automate the purchase of physical products all within your n8n workflows.

  ### 🏗️ Recent Updates
  - **Modular Architecture**: Refactored codebase into organized modules for better maintainability
  - **Enhanced Error Handling**: Improved error reporting with proper API error propagation
  - **Development Workflow**: Added `npm run dev` for automatic rebuilds during development
  - **Code Quality**: Fixed all linting issues and added comprehensive type safety

  ## 🚀 Installation (Local Development Setup)


  For now you have to run the Crossmint node from source:

  1.  **Clone the repository:** (anywhere in your disk - doesn't need to be inside the n8n folder)
      ```bash
      git clone https://github.com/Crossmint/n8n-nodes-crossmint.git
      cd n8n-nodes-crossmint
      ```
  2.  **Install dependencies and build:**
      ```bash
      npm install
      npm run build
      ```

      **Development Commands:**
      ```bash
      sudo npm run dev          # Run in development mode with auto-reload
      ```


  > **📝 Note**: You must use the self-hosted version of n8n to run Crossmint nodes. Follow [this guide](https://docs.n8n.io/integrations/creating-nodes/build/n8n-node/) to set it up.


  ## ⚙️ Your First Workflow Using Crossmint

  Once you've installed the community node, here's how to add and configure your first Crossmint node:

  ### Step 1: Add the Crossmint Node to Your Workflow

  1. In your n8n workflow editor, click the **"+"** button to add a new node
  2. Search for **"Crossmint"** in the node library
  3. Select the **Crossmint** node from the results

  <div align="center">
  <img src="./images/crossmint-search.png" alt="Crossmint node search" width="50%">
  </div>


  4. For this example, we'll use **"Get or Create Wallet"** operation:

  <div align="center">
  <img src="./images/crossmint-config.png" alt="Crossmint node configuration" width="50%">
  </div>


  ### Step 2: Set Up Crossmint Project & Credentials

  5. First, create a Crossmint project in Staging:
     - Go to [Crossmint Staging Console](https://staging.crossmint.com/console/overview)
     - Create a new project or select an existing one
     - Copy your **server-side API key** from the project settings

  <div align="center">
  <img src="./images/crossmint-staging-console.png" alt="Crossmint staging console" width="75%">
  </div>


  6. Back in n8n, in your Crossmint node, click on **"Credential to connect with"** dropdown
  7. Select **"Create New"** to add your Crossmint credentials (this will be available for all future Crossmint nodes)

  8. In the credential configuration:
     - Enter your Crossmint **API Key** (must be a **server-side** API key)
     - Set **Environment** to **"Staging"** for testing
     - Click **"Save"**

  <div align="center">
  <img src="./images/credential-form.png" alt="Crossmint API credential form" width="75%">
  </div>


  9. Complete the wallet configuration (e.g., set Owner Type to "Email" and enter an email address)

  <div align="center">
  <img src="./images/completed-config.png" alt="Completed node configuration" width="50%">
  </div>


  > **⚠️ Important**: Always use **server-side API keys** from Crossmint. Client-side keys will not work. For initial testing, always use **Staging** environment.

  ### Getting Test USDC for Staging

  To test transactions in staging, you'll need test USDC tokens. You can get them from:

  - **Circle Faucet**: [https://faucet.circle.com/](https://faucet.circle.com/) - Get free testnet USDC
  - **Crossmint Telegram**: [https://t.me/crossmintdevs](https://t.me/crossmintdevs) - Request USDC from Crossmint

  ## 💡 Supported Operations

  The node is organized into two primary resources: **Wallet** and **Checkout**.

  ### Resource: Wallet
  Operations for managing blockchain wallets which can hold and transfer money (in cryptocurrencies like USDC).

  * **Get or Create Wallet**: Creates a non-custodial smart wallet or retrieves an existing one. You maintain full control via a private key that authorizes all transactions. This operation is idempotent.
    - `Chain Type` - Blockchain type (solana)
    - `Owner Type` - Optional owner identifier type (email, userId, phone, twitter, x, none)
    - `Owner Details` - Specific owner information based on selected type
    - `Admin Signer` - Private key that authorizes all transactions from this wallet ([see Admin Signer Private Key](#🔐-admin-signer-private-key))

  * **Get Wallet**: Retrieves wallet details using its wallet locator (address, email, user ID, etc.).
    - `Wallet` - Wallet identifier (address, email, userId, phone, twitter, x)
    - `Chain Type` - Required for non-address locators (solana)

  * **Create Transfer**: Sends tokens (like USDC) between wallets. Requires the wallet's private key to digitally sign and authorize the transfer.
    - `Blockchain Type` - Network type for both wallets (solana)
    - `Origin Wallet` - Source wallet for the transfer
    - `Recipient Wallet` - Destination wallet for the transfer
    - `Token Chain` - Specific blockchain network (e.g., solana, solana-devnet)
    - `Token Name` - Token symbol or identifier (e.g., usdc)
    - `Amount` - Token amount to transfer

  * **Get Balance**: Checks token balances for a wallet across one or more blockchain networks.
    - `Wallet` - Wallet locator to check balance for (address, email, userId, phone, twitter, x)
    - `Chain Type` - Required for non-address locators (solana)
    - `Chains` - Blockchain network to query (e.g., solana, solana-devnet)
    - `Tokens` - Comma-separated list of token symbols to query

  * **Sign Transaction**: Signs a transaction with a private key and submits the signature to complete pending transactions.
    - `Chain` - Blockchain network for transaction signing
    - `Wallet Address` - Wallet address from Create Transfer response
    - `Transaction ID` - Transaction ID that needs approval
    - `Transaction Data` - Hash or message to sign from transfer response
    - `Signer Address` - Address of the external signer
    - `Signer Private Key` - Private key to sign the transaction
    - `Wait for Completion` - Poll until transaction reaches final status

  ### Resource: Checkout
  Operations to automate the purchase of products using digital money (e.g. tokens like USDC). This is a two-step process.

  * **Create Order**: Creates a purchase order for a product from Amazon or Shopify.
    - `Platform` - E-commerce platform (amazon or shopify)
    - `Product Identifier` - Product URL or ASIN/ID from platform (e.g., Amazon URL or ASIN like B01DFSADS2)
    - `Recipient Email` - Email address for order confirmation
    - `Recipient Name` - Full name for shipping address
    - `Address Line 1` - Primary shipping address
    - `Address Line 2` - Secondary address (optional)
    - `City` - Shipping city
    - `State` - Shipping state/province (optional)
    - `Postal Code` - ZIP/postal code
    - `Country` - Shipping country (Amazon: US only, Shopify: varies by store)
    - `Environment` - Environment to use for payment methods (Staging/Testnet or Production/Mainnet)
    - `Payment Method` - Blockchain network for payment
    - `Payment Currency` - Currency for payment (e.g., usdc)
    - `Payer Address` - Wallet address that will pay for the order

  * **Pay Order**: Executes the payment for a previously created order using the serialized transaction from Create Order.
    - `Serialized Transaction` - Transaction data from Create Order response
    - `Payment Chain` - Blockchain network for payment
    - `Payer Wallet Address` - Wallet address making the payment
    - `Private Key` - Private key to authorize the payment


  ## 📖 API Reference

  For detailed information about each operation, parameters, and response formats, refer to the official Crossmint API documentation:

  ### Wallet Operations
  - **Get or Create Wallet**: [Crossmint Wallets API](https://docs.crossmint.com/api-reference/wallets/create-wallet)
  - **Get Wallet**: [Crossmint Wallets API - Get Wallet](https://docs.crossmint.com/api-reference/wallets/get-wallet-by-locator)
  - **Create Transfer**: [Crossmint Wallets API - Transfer Tokens](https://docs.crossmint.com/api-reference/wallets/transfer-token)
  - **Get Balance**: [Crossmint Wallets API - Get Balance](https://docs.crossmint.com/api-reference/wallets/get-wallet-balance)
  - **Sign Transaction**: [Crossmint Wallets API - Submit Approvals](https://docs.crossmint.com/api-reference/wallets/submit-transaction-approvals)

  ### Checkout Operations
  - **Create Order**: [Crossmint Checkout API - Create Order](https://docs.crossmint.com/api-reference/headless/create-order)
  - **Pay Order**: [Crossmint Checkout API - Submit Transaction](https://docs.crossmint.com/api-reference/wallets/create-transaction)


  ### Additional Resources
  - [Supported Chains and Tokens](https://docs.crossmint.com/introduction/supported-chains#supported-chains)

  ## 🔑 Understanding Wallet Locators

  Wallet locators are a key concept used throughout all Crossmint node operations. They provide a flexible way to identify and reference wallets using different types of identifiers.

  ### Locator Types

  | Type | Format | Example | Use Case |
  |------|--------|---------|----------|
  | **Wallet Address** | `1A1z...` | `1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa` | Direct blockchain address reference |
  | **Email** | `email:{email}:{chainType}:smart` | `email:user@example.com:solana:smart` | User identification by email |
  | **User ID** | `userId:{id}:{chainType}:smart` | `userId:user-123:solana:smart` | Custom user identifier |
  | **Phone Number** | `phoneNumber:{phone}:{chainType}:smart` | `phoneNumber:+1234567890:solana:smart` | SMS-based identification |
  | **Twitter Handle** | `twitter:{handle}:{chainType}:smart` | `twitter:username:solana:smart` | Social media identification |
  | **X Handle** | `x:{handle}:{chainType}:smart` | `x:username:solana:smart` | X (formerly Twitter) identification |


  For more detailed information about wallet locator formats and specifications, see: [Crossmint Wallet Locators Documentation](https://docs.crossmint.com/api-reference/wallets/get-wallet-by-locator)

  ### Chain Types

  - **Solana**: Solana blockchain

  ### Best Practices

  1. **Email locators** are ideal for user-friendly identification
  2. **Wallet addresses** provide direct blockchain access
  3. **User ID locators** work well with existing user management systems
  4. Always specify the correct chain type for non-address locators

  ## 🔐 Admin Signer Private Key

  The **Admin Signer Private Key** is a critical security component that gives you full control over your Crossmint wallet. Understanding how it works is essential for secure wallet management.

  ### What is an Admin Signer?

  The Admin Signer is the private key that acts as the "master key" for your smart wallet. It's used to:
  - **Authorize all transactions** from the wallet
  - **Sign transfer approvals** when moving tokens
  - **Control wallet permissions** and operations

  ### Key Requirements by Blockchain

  **For Solana:**
  - Format: Base58 encoded string
  - Example: `5Kb8kLf9CJtPkDCe4jfE9TjC8d7X9e3Jh4F6h8F2K3h7J9F4K6h8F2K3h7J9F4K6h`
  - Typically 64 bytes when decoded

  ### Generating Private Keys

  You can generate secure private keys using:
  - **Crossmint Generator**: [https://www.val.town/x/Crossmint/crypto-address-generator](https://www.val.town/x/Crossmint/crypto-address-generator)
  - **Phantom Wallet**: Export private key from an existing Solana wallet
  - **Solana CLI**: Generate Solana keypairs
  - **Hardware wallets**: Export or derive keys securely

  ### Security Best Practices

  ⚠️ **Critical Security Guidelines:**

  1. **Never share** your private key with anyone
  2. **Store securely** - use environment variables or secure vaults
  3. **Use different keys** for staging vs production
  4. **Backup safely** - store in multiple secure locations
  5. **Test first** - always test with small amounts on testnet
  6. **Rotate regularly** - consider changing keys periodically

  ### How It Works in Crossmint

  1. **Wallet Creation**: Your private key becomes the admin signer for the smart wallet
  2. **Transaction Flow**:
     - Create transaction → Crossmint generates approval request
     - Sign with private key → Submit signature to complete transaction
  3. **Non-Custodial**: You control the key, you control the wallet

  ## 📁 Example Workflows

  Ready-to-use workflow examples are available in the `workflows-examples/` folder:

  - [buy-celsius.json](workflows-examples/buy-celsius.json): Complete flow demonstrating wallet operations (get wallet, check balance) followed by checkout (create order and pay order).

  <div align="center">
  <img src="./images/buy-celsius.png" alt="Buy Celsius workflow" width="100%">
  </div>

  - [buy-items-amazon.json](workflows-examples/buy-items-amazon.json): Advanced workflow with AI-powered order processing that accepts free-form messages via Chat (can be Telegram), extracts order details using OpenAI, and automatically purchases Amazon products.

  <div align="center">
  <img src="./images/buy-items-from-amazon.png" alt="Buy items from Amazon workflow" width="100%">
  </div>

  To use these examples:
  1. Import the JSON file into your n8n instance
  2. Configure your Crossmint API credentials
  3. Update any personal information (email addresses, wallet addresses, etc.)
  4. Execute the workflow

  ## 📄 License

  MIT

  -----

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with Crossmint's Wallet and Checkout APIs to manage digital wallets, create non-custodial smart wallets, and automate the purchase of physical products within n8n workflows.","capabilities":["Create or retrieve non-custodial smart wallets","Manage wallet details using various locator types (address, email, userId, phone, twitter, x)","Automate purchase of physical products via Checkout API","Handle blockchain transactions (e.g., Solana)","Support multiple owner identifier types (email, userId, phone, twitter, x, none)","Test transactions using Staging environment and testnet tokens"],"authentication":"API key required (server-side API key from Crossmint Console)","commonUseCases":["Automating digital wallet creation for AI agents or users","Testing wallet transactions in a staging environment","Automating the purchase of physical goods using blockchain payments","Managing wallet ownership via email or social identifiers"],"limitations":["Requires self-hosted n8n version (not available in cloud-hosted n8n)","Must use server-side API keys; client-side keys are not supported","Initial setup requires running node from source (git clone, npm install, npm run build)","Development mode requires manual setup of npm run dev for auto-rebuilds"],"relatedNodes":["n8n HTTP Request","n8n Credentials","n8n Blockchain nodes"]}


node_type: n8n-nodes-camino.camino
package_name: n8n-nodes-camino
display_name: Camino AI
description: Guide your AI agents through the real world with location intelligence
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: jamesbarney
author_github_url: https://github.com/Barneyjm/
npm_package_name: n8n-nodes-camino
npm_version: 0.1.1
community_fetched_at: 2026-04-16T09:43:36.162Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "description": "Search for places using free-form or structured queries"
        },
        {
          "name": "Query",
          "value": "query",
          "description": "Natural language queries for points of interest"
        },
        {
          "name": "Spatial",
          "value": "spatial",
          "description": "Spatial relationships, context, and journey planning"
        },
        {
          "name": "Route",
          "value": "route",
          "description": "Get routes between locations"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchPlaces",
      "options": [
        {
          "name": "Search Places",
          "value": "searchPlaces",
          "action": "Search for places",
          "routing": {
            "request": {
              "url": "/search",
              "method": "POST"
            }
          },
          "description": "Search for places using free-form or structured queries"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "queryPoi",
      "options": [
        {
          "name": "Query POI",
          "value": "queryPoi",
          "action": "Query points of interest",
          "routing": {
            "request": {
              "url": "/query",
              "method": "GET"
            }
          },
          "description": "Natural language query for points of interest"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "query"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "relationship",
      "options": [
        {
          "name": "Calculate Relationship",
          "value": "relationship",
          "action": "Calculate spatial relationship",
          "routing": {
            "request": {
              "url": "/relationship",
              "method": "POST"
            }
          },
          "description": "Calculate spatial relationships between two points"
        },
        {
          "name": "Get Place Context",
          "value": "context",
          "action": "Get place context",
          "routing": {
            "request": {
              "url": "/context",
              "method": "POST"
            }
          },
          "description": "Get context-aware information about a location"
        },
        {
          "name": "Plan Journey",
          "value": "journey",
          "action": "Plan a journey",
          "routing": {
            "request": {
              "url": "/journey",
              "method": "POST"
            }
          },
          "description": "Multi-waypoint journey planning with route optimization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "spatial"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getRoute",
      "options": [
        {
          "name": "Get Route",
          "value": "getRoute",
          "action": "Get a route",
          "routing": {
            "request": {
              "url": "/route",
              "method": "GET"
            }
          },
          "description": "Get route from start to end point"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "route"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search Places",
      "value": "searchPlaces",
      "action": "Search for places",
      "routing": {
        "request": {
          "url": "/search",
          "method": "POST"
        }
      },
      "description": "Search for places using free-form or structured queries",
      "resource": "search"
    },
    {
      "name": "Query POI",
      "value": "queryPoi",
      "action": "Query points of interest",
      "routing": {
        "request": {
          "url": "/query",
          "method": "GET"
        }
      },
      "description": "Natural language query for points of interest",
      "resource": "query"
    },
    {
      "name": "Calculate Relationship",
      "value": "relationship",
      "action": "Calculate spatial relationship",
      "routing": {
        "request": {
          "url": "/relationship",
          "method": "POST"
        }
      },
      "description": "Calculate spatial relationships between two points",
      "resource": "spatial"
    },
    {
      "name": "Get Place Context",
      "value": "context",
      "action": "Get place context",
      "routing": {
        "request": {
          "url": "/context",
          "method": "POST"
        }
      },
      "description": "Get context-aware information about a location",
      "resource": "spatial"
    },
    {
      "name": "Plan Journey",
      "value": "journey",
      "action": "Plan a journey",
      "routing": {
        "request": {
          "url": "/journey",
          "method": "POST"
        }
      },
      "description": "Multi-waypoint journey planning with route optimization",
      "resource": "spatial"
    },
    {
      "name": "Get Route",
      "value": "getRoute",
      "action": "Get a route",
      "routing": {
        "request": {
          "url": "/route",
          "method": "GET"
        }
      },
      "description": "Get route from start to end point",
      "resource": "route"
    }
  ]

npm_readme:
  # n8n-nodes-camino

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

  Camino AI provides location intelligence and spatial reasoning APIs for AI agents, enabling them to search places, plan routes, understand spatial relationships, and make location-aware decisions.

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

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

  ## Installation

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

  ## Operations

  ### Search
  - **Search Places**: Search for places using free-form queries or structured address components

  ### Query
  - **Query POI**: Natural language queries for points of interest with AI-powered ranking

  ### Spatial
  - **Calculate Relationship**: Calculate spatial relationships between two points (distance, direction, travel time)
  - **Get Place Context**: Get context-aware information about a location including nearby places and weather
  - **Plan Journey**: Multi-waypoint journey planning with route optimization

  ### Route
  - **Get Route**: Get routes between locations with support for car, bike, and foot modes

  ## Credentials

  To use this node, you need a Camino AI API key. You can get one by signing up at [getcamino.ai](https://getcamino.ai).

  Configure your credentials with:
  - **API Key**: Your Camino AI API key
  - **Environment**: Use the Production url (api.getcamino.ai) 

  ## Example Agent Prompt
  ```
  You are a helpful and knowledgeable location intelligence agent that helps users discover places, plan routes, and understand spatial relationships in the real world. Your job is to provide accurate, contextual location information using Camino AI's powerful tools.
  Your Main Purpose

  Help users find places using natural language queries
  Provide spatial intelligence about distances, directions, and travel times
  Plan optimal routes and journeys
  Give rich context about locations and areas
  Make location-based decisions easy and data-driven

  Your Available Camino AI Tools
  camino_query
  Primary search tool for finding places

  Use for natural language location searches
  Examples: "coffee shops near Golden Gate Bridge", "restaurants in downtown Seattle"
  Accepts latitude/longitude for precise searches
  Can filter by radius (default 1000m)
  Returns AI-ranked results by relevance
  Set generate_answer: true for human-readable summaries

  camino_search
  Structured address-based search

  Use when you have specific address components
  Good for finding specific businesses or addresses
  Can search by city, state, street, postal code
  Alternative to camino_query for more structured searches

  camino_spatial_relationship
  Calculate relationships between two points

  Get distance, direction, and travel time between locations
  Essential for "how far is X from Y" questions
  Provides human-readable descriptions of spatial relationships

  camino_place_context
  Get contextual information about a location

  Discover what's nearby a specific point
  Understand area characteristics
  Include weather with include_weather: true
  Specify context like "business meeting" or "family outing" for tailored insights

  camino_journey_planning
  Multi-waypoint route optimization

  Plan routes with multiple stops
  Optimize for time budgets
  Choose transport mode (walking, driving, cycling)
  Get feasibility analysis and recommendations

  camino_route_planning
  Point-to-point routing

  Calculate routes between two locations
  Get turn-by-turn directions
  Estimate travel times
  Choose mode: car, bike, or foot

  Interaction Style
  When Users Ask About Places

  Start with camino_query for natural language searches
  Use AI ranking for best results: rank: true
  Generate answers for readable summaries: generate_answer: true
  Present results clearly with key details
  Ask if they want more specific information

  When Users Need Navigation

  Use camino_route_planning for simple A-to-B routes
  Use camino_journey_planning for multi-stop trips
  Always specify appropriate transport mode
  Provide time estimates and distances
  Consider route alternatives if appropriate

  When Users Compare Locations

  Use camino_spatial_relationship to calculate distances
  Provide context about travel times
  Help users understand which option is more convenient
  Consider factors like traffic patterns if relevant

  When Users Want Area Information

  Use camino_place_context with relevant context string
  Include weather if trip planning: include_weather: true
  Describe what makes the area suitable for their needs
  Mention nearby amenities and attractions

  Response Guidelines
  Location Discovery

  Always understand intent before searching
  Use specific coordinates when provided
  Adjust search radius based on context (urban vs rural)
  Explain why recommendations fit user needs

  Providing Directions

  Choose appropriate transport mode
  Give realistic time estimates
  Mention key landmarks or waypoints
  Warn about potential challenges (traffic, distance)

  Contextual Advice

  Consider user's purpose (work, leisure, family)
  Factor in time of day when relevant
  Suggest alternatives if initial results aren't ideal
  Provide practical tips (parking, hours, accessibility)

  Example Interactions
  User: "Find quiet coffee shops near the Golden Gate Bridge"
  You: "I'll search for quiet coffee shops in that area..." [uses camino_query with context about quiet atmosphere]
  "Based on real location data, here are some excellent quiet coffee shops:

  Caffe Trieste: Historic spot with intimate atmosphere, cash-only (tends to be calmer)
  Peet's Coffee in Laurel Village: Residential neighborhood, less touristy
  Would you like directions to any of these?"

  User: "How far is it from Times Square to Central Park?"
  You: "Let me calculate that for you..." [uses camino_spatial_relationship]
  "It's about 0.8 miles (1.3 km) from Times Square to Central Park - roughly a 15-minute walk north. Would you like a walking route with turn-by-turn directions?"
  User: "Plan a day trip visiting the Statue of Liberty, Empire State Building, and Brooklyn Bridge"
  You: "Great itinerary! Let me optimize that route for you..." [uses camino_journey_planning with walking mode]
  "Here's an efficient route... [provides optimized journey]. This would take approximately 4-5 hours with stops. Would you like restaurant recommendations near any of these stops?"
  Best Practices
  Always

  Use real location data, never make up places
  Provide specific addresses and details when available
  Consider user's context and needs
  Offer to dive deeper if they want more info
  Cite that information comes from Camino AI

  Never

  Hallucinate locations or businesses
  Provide outdated information without caveat
  Ignore user's specific constraints (budget, time, accessibility)
  Give directions without checking feasibility

  Tool Selection Strategy

  Discovery: Start with camino_query or camino_search
  Comparison: Use camino_spatial_relationship
  Deep dive: Follow with camino_place_context
  Navigation: Use camino_route_planning or camino_journey_planning

  Keep It Helpful

  Be proactive in suggesting relevant follow-up information
  Explain location choices with data-driven reasoning
  Adapt to user's familiarity with the area
  Make complex spatial decisions simple
  Help users make informed location-based decisions

  Remember: Your goal is to ground AI conversations in real-world location intelligence. Provide accurate, contextual, and actionable location insights that help users navigate and understand their physical world!
  ```

  ## Compatibility

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

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Camino AI Documentation](https://docs.getcamino.ai)
  - [Camino AI Website](https://getcamino.ai)

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node integrates Camino AI to provide location intelligence and spatial reasoning capabilities for AI agents, enabling them to search places, plan routes, and understand spatial relationships.","capabilities":["Search places using free-form queries or structured address components","Query points of interest with AI-powered ranking","Calculate spatial relationships (distance, direction, travel time)","Get contextual information about locations including nearby places and weather","Plan multi-waypoint journeys with route optimization","Get point-to-point routes with support for car, bike, and foot modes"],"authentication":"API key required","commonUseCases":["Location-based discovery for AI agents","Route planning and navigation assistance","Spatial relationship analysis for travel time estimation","Context-aware location recommendations"],"limitations":["Requires external API key from Camino AI","Limited to production environment configuration"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-http-request"]}


node_type: n8n-nodes-onenote.onenote
package_name: n8n-nodes-onenote
display_name: OneNote
description: Work with the Microsoft OneNote (Microsoft Graph) API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: weilchen
author_github_url: https://github.com/Elliotes/
npm_package_name: n8n-nodes-onenote
npm_version: 0.2.1
community_fetched_at: 2026-04-16T09:43:36.163Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "page",
      "options": [
        {
          "name": "Page",
          "value": "page"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a page",
          "description": "Get a page"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many pages",
          "description": "Get many pages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "page"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a page",
      "description": "Get a page",
      "resource": "page"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many pages",
      "description": "Get many pages",
      "resource": "page"
    }
  ]

npm_readme:
  # n8n-nodes-onenote

  This package provides nodes for **n8n** that enable full integration with **Microsoft OneNote** through the **Microsoft Graph API**.  
  It allows automation, integration, and orchestration of note-related operations directly within n8n workflows.

  ---

  ## About the Author

  This community node was created and shared by **Liam Chen** for the n8n community.  
  It was designed to simplify the complexity of using Microsoft Graph OneNote APIs by providing a clean and easy-to-use interface.

  ---

  ## Table of Contents

  - [Features](#features)
  - [Available Resources](#available-resources)
  - [Authentication Methods](#authentication-methods)
  - [Setting up the Application in Microsoft Entra ID (Azure AD)](#setting-up-the-application-in-microsoft-entra-id-azure-ad)
  - [Using the Node](#using-the-node)
  - [Limitations and Troubleshooting](#limitations-and-troubleshooting)
  - [Additional Resources](#additional-resources)
  - [License](#license)

  ---

  ## Features

  This package provides a simple **OneNote** node with flexible authentication and OneNote functionality.

  ### OneNote Node

  Comprehensive node supporting two authentication methods:

  1. **OAuth2 Authentication** – Secure connection through Microsoft Entra ID (formerly Azure AD).  
  2. **Bearer Token Authentication** – Direct token-based integration for advanced users.

  #### Available Features

  - Notebook, Section, and Page listing  
  - Page creation with plain text or HTML  
  - Retrieve page metadata and content  
  - Dynamic dropdowns for Notebook → Section → Page (list search with pagination)  
  - Optional support for multiple scopes (e.g., `/me`, `/users/{id}`, `/sites/{id}`)

  ---

  ## Available Resources

  ### Notebook Resources
  - **List Notebooks** – Retrieves all available notebooks for the authenticated user  
  - **Get Notebook Details** – Retrieves information about a specific notebook  

  ### Section Resources
  - **List Sections** – Retrieves all sections within a notebook  
  - **Get Section Details** – Retrieves metadata for a specific section  

  ### Page Resources
  - **List Pages** – Lists all pages within a section  
  - **Get Page** – Retrieves a specific page by ID  
  - **Create Page** – Creates a new page under the selected section  
  - **Get Page Content** – Retrieves the full HTML content of a page  

  ---

  ## Authentication Methods

  The OneNote node supports two authentication types:

  ### 1. OAuth2 Authentication

  **Use case:**  
  Recommended for most scenarios — enables secure, refreshable access via Microsoft Entra ID.

  **Credential type:**  
  `OneNote OAuth2 API`

  **Token management:**  
  Automatically refreshed when tokens expire.

  ### 2. Bearer Token Authentication

  **Use case:**  
  For advanced integrations or quick API testing.

  **Credential type:**  
  `OneNote API`

  **Token management:**  
  Manual — you must refresh the token periodically.

  ### Selecting Authentication Method

  1. In the node configuration, choose **Authentication** (OAuth2 or Bearer Token).  
  2. The appropriate credential type will automatically appear.  
  3. Fill in the corresponding credential fields.

  ---

  ## Setting up the Application in Microsoft Entra ID (Azure AD)

  To use OAuth2 authentication, you must register your application in **Microsoft Entra ID (Azure AD)**.

  ### 1. Register a New Application

  1. Go to the [Azure Portal](https://portal.azure.com).  
  2. Navigate to **Microsoft Entra ID → App registrations → New registration**.  
  3. Enter a name, e.g., `n8n OneNote Integration`.  
  4. Under **Supported account types**, choose your desired access scope (e.g., single organization).  
  5. Under **Redirect URI**, select **Web** and enter:  
     - For cloud-hosted n8n:  
       `https://your-n8n-domain/rest/oauth2-credential/callback`  
     - For local development:  
       `http://localhost:5678/rest/oauth2-credential/callback`  
  6. Click **Register**.

  ### 2. Configure API Permissions

  1. In your app’s menu, select **API Permissions → Add a permission → Microsoft Graph**.  
  2. Select **Delegated permissions**, then add:
     - `Notes.Read` or `Notes.ReadWrite` (required)
     - `offline_access`, `openid`, `profile` (recommended for OAuth2)
     - If you plan to access other users’ notebooks: `Sites.Read.All`, `Users.Read.All`
  3. Click **Add permissions**, and request **Admin consent** if necessary.

  ### 3. Create a Client Secret

  1. Go to **Certificates & secrets → New client secret**.  
  2. Add a description and choose an expiration period.  
  3. Click **Add**, and **copy the secret value immediately** (you cannot see it again).

  ### 4. Gather Required Values

  You’ll need the following for n8n configuration:

  - **Client ID** – Found under **Overview → Application (client) ID**  
  - **Client Secret** – The value you just copied  
  - **Tenant ID** – Found under **Overview → Directory (tenant) ID**

  ---

  #### For Bearer Token Authentication:
  - **Credential type:** OneNote API  
  - **Access Token:** Paste your Microsoft Graph access token manually.  
  - Select **Resource** (Notebook, Section, Page) and **Operation**.  
  - Configure operation-specific parameters (Notebook ID, Section ID, etc.).  
  - Execute the node and verify the output.

  ---

  ## Limitations and Troubleshooting

  ### Microsoft Graph OneNote API Limitations

  - **Rate limits:** Standard Graph API rate limits apply. Reduce frequency or use pagination for large queries.  
  - **Permissions:** Ensure your app has `Notes.ReadWrite` and admin consent if required.  
  - **HTML format requirements:** For `Create Page`, your content must include valid HTML (`<html><head>...</head><body>...</body></html>`).  
  - **Access scope:** To access shared notebooks or other users’ data, proper delegated permissions and consent are required.  
  - **Bearer Token expiry:** Tokens expire unless obtained via OAuth2 refresh flow.

  ---

  ## Additional Resources

  - [Microsoft Graph – OneNote API Overview](https://learn.microsoft.com/graph/onenote-concept-overview)  
  - [Microsoft Graph Explorer](https://developer.microsoft.com/graph/graph-explorer)  
  - [Microsoft Graph Permissions Reference](https://learn.microsoft.com/graph/permissions-reference)  
  - [n8n Custom Node Development Guide](https://docs.n8n.io/integrations/creating-nodes/)  

  ---

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n node enables full integration with Microsoft OneNote via the Microsoft Graph API, allowing automation of note-related operations such as listing, creating, and retrieving pages, sections, and notebooks.","capabilities":["List notebooks, sections, and pages","Get details for specific notebooks, sections, and pages","Create new pages with plain text or HTML content","Retrieve page content and metadata","Dynamic dropdowns for Notebook → Section → Page selection with pagination","Support for multiple scopes (e.g., /me, /users/{id}, /sites/{id})","OAuth2 authentication via Microsoft Entra ID","Bearer token authentication for advanced use cases"],"authentication":"OAuth2 (via Microsoft Entra ID) or Bearer Token","commonUseCases":["Automating note-taking workflows in n8n","Syncing notes between systems and OneNote","Creating structured documentation pages","Integrating OneNote with other Microsoft 365 services","Centralizing note management across multiple notebooks"],"limitations":["Subject to Microsoft Graph API rate limits","Requires valid HTML format for page creation","Bearer tokens require manual refresh","Access to shared notebooks requires proper permissions and admin consent","Limited support for advanced OneNote features not exposed via Graph API"],"relatedNodes":["Microsoft Graph","Microsoft 365","Office 365","Azure AD"]}


node_type: n8n-nodes-alive5.alive5
package_name: n8n-nodes-alive5
display_name: Alive5
description: Send SMS messages via alive5 API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: assadvirgo
author_github_url: https://github.com/wearealive5/
npm_package_name: n8n-nodes-alive5
npm_version: 1.0.27
community_fetched_at: 2026-04-16T09:43:36.164Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "sms",
      "options": [
        {
          "name": "SMS",
          "value": "sms"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Send",
          "value": "send",
          "action": "Send an SMS message",
          "description": "Send an SMS message"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sms"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Send",
      "value": "send",
      "action": "Send an SMS message",
      "description": "Send an SMS message",
      "resource": "sms"
    }
  ]

npm_readme:
  ![Banner image](https://go.alive5.com/images/alive5-banner-1584x396.png)

  # n8n-nodes-alive5

  This is an n8n community node package for Alive5:

  - Send SMS messages (Action node)
  - Trigger workflows when a new message is received (Trigger node)

  [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 these steps to install this community node in your n8n instance:

  1. Open n8n.
  2. Go to **Settings** > **Community Nodes**.
  3. Click **Install Community Node**.
  4. Enter the name of this package: `n8n-nodes-alive5`
  5. Click **Install**.

  For more details, see the [official n8n documentation](https://docs.n8n.io/integrations/community-nodes/installation/verified-install/).

  ## Operations

  - **Send SMS**
    - Send SMS messages via Alive5 API
    - Dynamically select a Channel with a valid phone number
    - Dynamically select a User (Admin or Agent) from the selected Channel
  - **On Message Received (Trigger)**
    - Automatically start a workflow when a new message is received in Alive5
    - Dynamically select a Channel (business line) to listen on
    - Automatically registers and cleans up webhooks on activation/deactivation

  ## Credentials

  The node requires the following credentials:

  - **Alive5 API**
    - API Key: Your Alive5 API key
    - API Base URL: The base URL for the Alive5 API (default: https://api.alive5.com/public/1.1)
    - To obtain an Alive5 SMS account and API key, please contact us at support@alive5.com, view our website at https://www.alive5.com, or book a demo at https://demo.alive5.com

  ## Compatibility

  This node has been tested with n8n version 1.0.0 and above.

  ## Usage

  ### Send SMS

  This operation allows you to send SMS messages using the Alive5 API.

  #### Parameters

  - **From phone Number**
    - The phone number to send the SMS from (e.g., +1234567890)
  - **To phone number**
    - The phone number to send the SMS to (e.g., +1234567890)
  - **Message**
    - The text message to send
  - **Channel**
    - Dynamically select a Channel with a valid phone number
  - **User**
    - Dynamically select a User (Admin or Agent) from the selected Channel

  #### Example

  ```json
  {
  	"nodes": [
  		{
  			"parameters": {
  				"fromPhoneNumber": "+1234567890",
  				"toPhoneNumber": "+1234567890",
  				"message": "Hello from n8n!",
  				"channel": "Channel Name",
  				"agent": "Agent Name"
  			},
  			"name": "Send SMS",
  			"type": "n8n-nodes-alive5.SendSMS",
  			"typeVersion": 1,
  			"position": [300, 300]
  		}
  	],
  	"connections": {}
  }
  ```

  1. Add the Alive5 node to your workflow.
  2. Configure the Alive5 API credentials with your API key.
  3. Set the required parameters:
     - **From phone number**: Your sender phone number.
     - **To phone number**: Recipient's phone number.
     - **Message**: Your SMS message.
     - **Channel**: Select a Channel with a valid phone number.
     - **User**: Select a User (Admin or Agent) from the selected Channel.
  4. Execute the workflow to send the SMS.

  ### On Message Received (Trigger)

  This trigger starts a workflow when Alive5 sends an inbound message event to n8n.

  #### Parameters

  - **Channel**
    - Dynamically select which Alive5 Channel (business line) to listen on

  #### Activation / Deactivation behavior

  - **On activation**: n8n registers your workflow webhook URL in Alive5 for the selected channel
  - **On deactivation**: n8n removes the registered webhook URL from Alive5

  Alive5 webhook registration endpoint used by this node:

  - `POST /1.0/channel/register-webhook-url` with form fields `action=add|remove`, `channel_id`, `webhook_url`

  #### Output

  The trigger outputs the received webhook JSON payload as-is (raw body), so your workflow can map fields like sender phone number, message content, channel id, and timestamp.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Alive5 API Documentation](https://support.alive5.com/public-api-overview)

  ## License

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

ai_documentation_summary:
  {"purpose":"An n8n community node that enables sending SMS messages via the Alive5 API and triggers workflows when new messages are received.","capabilities":["Send SMS messages with dynamic channel and user selection","Trigger workflows on inbound message receipt","Automatically register and clean up webhooks for channel activation/deactivation","Support for Admin and Agent user roles within selected channels"],"authentication":"API Key required (configured via Alive5 API credentials with optional Base URL)","commonUseCases":["Automated customer notifications and alerts via SMS","Two-factor authentication (2FA) code delivery","Receiving SMS-based triggers to initiate business workflows","Monitoring SMS channels for real-time event processing"],"limitations":["Requires separate Alive5 account and API key (must contact Alive5 support)","Compatible only with n8n version 1.0.0 and above","Trigger outputs raw webhook payload requiring manual field mapping in workflows"],"relatedNodes":["n8n-nodes-alive5.SendSMS","n8n-nodes-alive5.OnMessageReceived","n8n-nodes-http.request"]}


node_type: n8n-nodes-scrape-creators.scrapeCreators
package_name: n8n-nodes-scrape-creators
display_name: Scrape Creators
description: Get real time social media data
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: adrianhorning08
author_github_url: https://github.com/adrianhorning08/
npm_package_name: n8n-nodes-scrape-creators
npm_version: 0.1.9
community_fetched_at: 2026-04-16T09:43:36.164Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "instagram",
      "options": [
        {
          "name": "Facebook",
          "value": "facebook"
        },
        {
          "name": "Facebook Ad Library",
          "value": "facebookAdLibrary"
        },
        {
          "name": "Google Ad Library",
          "value": "googleAdLibrary"
        },
        {
          "name": "Google Search",
          "value": "googleSearch"
        },
        {
          "name": "Instagram",
          "value": "instagram"
        },
        {
          "name": "LinkedIn",
          "value": "linkedin"
        },
        {
          "name": "LinkedIn Ad Library",
          "value": "linkedinAdLibrary"
        },
        {
          "name": "Pinterest",
          "value": "pinterest"
        },
        {
          "name": "Reddit",
          "value": "reddit"
        },
        {
          "name": "Thread",
          "value": "threads"
        },
        {
          "name": "TikTok",
          "value": "tiktok"
        },
        {
          "name": "Truth Social",
          "value": "truthsocial"
        },
        {
          "name": "Twitter (X)",
          "value": "twitter"
        },
        {
          "name": "YouTube",
          "value": "youtube"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInstagramProfile",
      "options": [
        {
          "name": "Get Profile",
          "value": "getInstagramProfile",
          "action": "Get instagram profile",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/instagram/profile",
              "method": "GET"
            }
          },
          "description": "Get an Instagram profile"
        },
        {
          "name": "Get User's Posts",
          "value": "getInstagramUserPosts",
          "action": "Get an instagram user s posts",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v2/instagram/user/posts",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get an Instagram user's posts"
        },
        {
          "name": "Get Post",
          "value": "getInstagramPost",
          "action": "Get an instagram post",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/instagram/post",
              "method": "GET"
            }
          },
          "description": "Get an Instagram post or reel"
        },
        {
          "name": "Get Post Transcript",
          "value": "getInstagramPostTranscript",
          "action": "Get an instagram post transcript",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v2/instagram/media/transcript",
              "method": "GET"
            }
          },
          "description": "Get an Instagram post transcript"
        },
        {
          "name": "Get User's Reels",
          "value": "getInstagramUserReels",
          "action": "Get an instagram user s reels",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/instagram/user/reels",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get an Instagram user's reels"
        },
        {
          "name": "Get User's Story Highlights",
          "value": "getInstagramUserStoryHighlights",
          "action": "Get an instagram user s story highlights",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/instagram/user/highlights",
              "method": "GET"
            }
          },
          "description": "Get an Instagram user's story highlights"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "instagram"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTikTokProfile",
      "options": [
        {
          "name": "Get Profile",
          "value": "getTikTokProfile",
          "action": "Get tik tok profile",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/tiktok/profile",
              "method": "GET"
            }
          },
          "description": "Get a TikTok profile"
        },
        {
          "name": "Get Profile's Videos",
          "value": "getTikTokProfileVideos",
          "action": "Get a tik tok profile s videos",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v3/tiktok/profile/videos",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a TikTok profile's videos"
        },
        {
          "name": "Get TikTok Video",
          "value": "getTikTokVideo",
          "action": "Get a tik tok video",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v2/tiktok/video",
              "method": "GET"
            }
          },
          "description": "Get a TikTok video"
        },
        {
          "name": "Get TikTok Video Transcript",
          "value": "getTikTokVideoTranscript",
          "action": "Get a tik tok video transcript",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/tiktok/video/transcript",
              "method": "GET"
            }
          },
          "description": "Get a TikTok video transcript"
        },
        {
          "name": "Get TikTok Video Comments",
          "value": "getTikTokVideoComments",
          "action": "Get a tik tok video comments",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/tiktok/video/comments",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a TikTok video comments"
        },
        {
          "name": "Get TikTok Following",
          "value": "getTikTokFollowing",
          "action": "Get a tik tok following",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/tiktok/user/following",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a TikTok following"
        },
        {
          "name": "Get TikTok Followers",
          "value": "getTikTokFollowers",
          "action": "Get a tik tok followers",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/tiktok/user/followers",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a TikTok followers"
        },
        {
          "name": "Search TikTok Users",
          "value": "searchTikTokUsers",
          "action": "Search tik tok users",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}"
              },
              "url": "v1/tiktok/search/users",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Search TikTok's by Hashtag",
          "value": "searchTikTokByHashtag",
          "action": "Search tik tok by hashtag",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "hashtag": "={{$parameter.hashtag}}"
              },
              "url": "v1/tiktok/search/hashtag",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search TikTok by hashtag"
        },
        {
          "name": "Search TikTok's by Keyword",
          "value": "searchTikTokByKeyword",
          "action": "Search tik tok by keyword",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}"
              },
              "url": "v1/tiktok/search/keyword",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search TikTok by keyword"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tiktok"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getYouTubeChannelDetails",
      "options": [
        {
          "name": "Get YouTube Channel Details",
          "value": "getYouTubeChannelDetails",
          "action": "Get a you tube channel details",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}",
                "channelId": "={{$parameter.channelId}}"
              },
              "url": "v1/youtube/channel",
              "method": "GET"
            }
          },
          "description": "Get a YouTube channel details"
        },
        {
          "name": "Get YouTube Channel Videos",
          "value": "getYouTubeChannelVideos",
          "action": "Get a you tube channel videos",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "sort": "={{$parameter.additionalFields.sort}}",
                "handle": "={{$parameter.handle}}",
                "channelId": "={{$parameter.channelId}}"
              },
              "url": "v1/youtube/channel-videos",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a YouTube channel videos"
        },
        {
          "name": "Get YouTube Channel Shorts",
          "value": "getYouTubeChannelShorts",
          "action": "Get a you tube channel shorts",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "sort": "={{$parameter.additionalFields.sort}}",
                "handle": "={{$parameter.handle}}",
                "channelId": "={{$parameter.channelId}}"
              },
              "url": "v1/youtube/channel/shorts",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a YouTube channel shorts"
        },
        {
          "name": "Get YouTube Video Details",
          "value": "getYouTubeVideoDetails",
          "action": "Get a you tube video details",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/youtube/video",
              "method": "GET"
            }
          },
          "description": "Get a YouTube video details"
        },
        {
          "name": "Get YouTube Video Transcript",
          "value": "getYouTubeVideoTranscript",
          "action": "Get a you tube video transcript",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/youtube/video/transcript",
              "method": "GET"
            }
          },
          "description": "Get a YouTube video transcript"
        },
        {
          "name": "Search YouTube Videos by Keyword",
          "value": "searchYouTubeVideosByKeyword",
          "action": "Search you tube videos",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "query": "={{$parameter.query}}"
              },
              "url": "v1/youtube/search",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search YouTube videos"
        },
        {
          "name": "Search YouTube Videos by Hashtag",
          "value": "searchYouTubeVideosByHashtag",
          "action": "Search you tube videos by hashtag",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "hashtag": "={{$parameter.hashtag}}"
              },
              "url": "v1/youtube/search/hashtag",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Comments",
          "value": "getComments",
          "action": "Get comments",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/youtube/video/comments",
              "method": "GET"
            },
            "operations": {}
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "youtube"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getLinkedinProfile",
      "options": [
        {
          "name": "Get LinkedIn Profile",
          "value": "getLinkedinProfile",
          "action": "Get a linked in profile",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/linkedin/profile",
              "method": "GET"
            }
          },
          "description": "Get a LinkedIn profile"
        },
        {
          "name": "Get LinkedIn Company Page",
          "value": "getLinkedinCompanyPage",
          "action": "Get a linked in company page",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/linkedin/company",
              "method": "GET"
            }
          },
          "description": "Get a LinkedIn company page"
        },
        {
          "name": "Get LinkedIn Post",
          "value": "getLinkedinPost",
          "action": "Get a linked in post",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/linkedin/post",
              "method": "GET"
            }
          },
          "description": "Get a LinkedIn post"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "linkedin"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFacebookProfile",
      "options": [
        {
          "name": "Get Facebook Profile",
          "value": "getFacebookProfile",
          "action": "Get a facebook profile",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/profile",
              "method": "GET"
            }
          },
          "description": "Get a Facebook profile"
        },
        {
          "name": "Get Facebook Profile Posts",
          "value": "getFacebookProfilePosts",
          "action": "Get a facebook profile posts",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/profile/posts",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a Facebook profile posts"
        },
        {
          "name": "Get Facebook Group Posts",
          "value": "getFacebookGroupPosts",
          "action": "Get a facebook group posts",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/group/posts",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a Facebook group posts"
        },
        {
          "name": "Get Reel",
          "value": "getReel",
          "action": "Get a facebook reel",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/user/reel",
              "method": "GET"
            }
          },
          "description": "Get a Facebook reel"
        },
        {
          "name": "Get Facebook Post",
          "value": "getFacebookPost",
          "action": "Get a facebook post",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/user/post",
              "method": "GET"
            }
          },
          "description": "Get a Facebook post"
        },
        {
          "name": "Get Transcript",
          "value": "getTranscript",
          "action": "Get a facebook transcript",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/facebook/post/transcript",
              "method": "GET"
            }
          },
          "description": "Get the transcript of a post or reel"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "facebook"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFacebookLibraryAd",
      "options": [
        {
          "name": "Get Ad",
          "value": "getFacebookLibraryAd",
          "action": "Get a facebook ad library ad",
          "routing": {
            "request": {
              "qs": {
                "id": "={{$parameter.id}}",
                "trim": true
              },
              "url": "v1/facebook/adLibrary/ad",
              "method": "GET"
            }
          },
          "description": "Get a Facebook ad library ad"
        },
        {
          "name": "Search Ads",
          "value": "searchAds",
          "action": "Search for ads",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}",
                "status": "={{$parameter.additionalFields.status}}",
                "ad_type": "={{$parameter.additionalFields.ad_type}}",
                "country": "={{$parameter.additionalFields.country}}",
                "end_date": "={{$parameter.additionalFields.end_date}}",
                "media_type": "={{$parameter.additionalFields.media_type}}",
                "start_date": "={{$parameter.additionalFields.start_date}}",
                "search_type": "={{$parameter.additionalFields.search_type}}"
              },
              "url": "v1/facebook/adLibrary/search/ads",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search for ads"
        },
        {
          "name": "Get A Company's Ads",
          "value": "getCompanyAds",
          "action": "Get a company s ads",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "pageId": "={{$parameter.pageId}}",
                "status": "={{$parameter.additionalFields.status}}",
                "country": "={{$parameter.additionalFields.country}}",
                "media_type": "={{$parameter.additionalFields.media_type}}"
              },
              "url": "v1/facebook/adLibrary/company/ads",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Search Companies",
          "value": "searchCompanies",
          "action": "Search for companies",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}"
              },
              "url": "v1/facebook/adLibrary/search/companies",
              "method": "GET"
            }
          },
          "description": "Search for companies"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "facebookAdLibrary"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCompanyGoogleAds",
      "options": [
        {
          "name": "Get A Company's Google Ads",
          "value": "getCompanyGoogleAds",
          "action": "Get a company s google ads",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "topic": "={{$parameter.additionalFields.topic}}",
                "domain": "={{$parameter.domain}}",
                "region": "={{$parameter.additionalFields.region}}",
                "advertiser_id": "={{$parameter.additionalFields.advertiser_id}}"
              },
              "url": "v1/google/company/ads",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Ad Details",
          "value": "getAdDetails",
          "action": "Get ad details",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/google/ad",
              "method": "GET"
            }
          },
          "description": "Get the details of a specific Google ad"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleAdLibrary"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getLinkedinAdDetails",
      "options": [
        {
          "name": "Search Ads",
          "value": "searchLinkedinAds",
          "action": "Search for ads",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "company": "={{$parameter.additionalFields.company}}",
                "endDate": "={{$parameter.additionalFields.endDate}}",
                "keyword": "={{$parameter.keyword}}",
                "countries": "={{$parameter.additionalFields.countries}}",
                "startDate": "={{$parameter.additionalFields.startDate}}"
              },
              "url": "v1/linkedin/ads/search",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search the LinkedIn Ad Library for ads"
        },
        {
          "name": "Get Ad Details",
          "value": "getLinkedinAdDetails",
          "action": "Get ad details",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/linkedin/ad",
              "method": "GET"
            }
          },
          "description": "Get the details of a specific LinkedIn ad"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "linkedinAdLibrary"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTwitterProfile",
      "options": [
        {
          "name": "Get Twitter Profile",
          "value": "getTwitterProfile",
          "action": "Get a twitter profile",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/twitter/profile",
              "method": "GET"
            }
          },
          "description": "Get a Twitter profile"
        },
        {
          "name": "Get User Tweets",
          "value": "getUserTweets",
          "action": "Get a user s tweets",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/twitter/user-tweets",
              "method": "GET"
            }
          },
          "description": "Get a user's tweets. This won't be their latest tweets, but will be 100 of their most popular tweets."
        },
        {
          "name": "Get Tweet Details",
          "value": "getTweetDetails",
          "action": "Get a tweet s details",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/twitter/tweet",
              "method": "GET"
            }
          },
          "description": "Get a tweet's details"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "twitter"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getSubredditPosts",
      "options": [
        {
          "name": "Get Subreddit Posts",
          "value": "getSubredditPosts",
          "action": "Get a subreddit s posts",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "sort": "={{$parameter.additionalFields.sort}}",
                "trim": true,
                "subreddit": "={{$parameter.subreddit}}",
                "timeframe": "={{$parameter.additionalFields.timeframe}}"
              },
              "url": "v1/reddit/subreddit",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a subreddit's posts"
        },
        {
          "name": "Get Post Comments",
          "value": "getRedditPostComments",
          "action": "Get a post s comments",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/reddit/post/comments",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a post's comments"
        },
        {
          "name": "Search Reddit",
          "value": "searchReddit",
          "action": "Search reddit",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "sort": "={{$parameter.additionalFields.sort}}",
                "trim": true,
                "query": "={{$parameter.query}}",
                "timeframe": "={{$parameter.additionalFields.timeframe}}"
              },
              "url": "v1/reddit/search",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Search Reddit for posts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reddit"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getThreadsProfile",
      "options": [
        {
          "name": "Get Threads Profile",
          "value": "getThreadsProfile",
          "action": "Get threads profile",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/threads/profile",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Threads User Posts",
          "value": "getThreadsUserPosts",
          "action": "Get threads user posts",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/threads/user/posts",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Threads Post",
          "value": "getThreadsPost",
          "action": "Get threads post",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/threads/post",
              "method": "GET"
            }
          }
        },
        {
          "name": "Search Threads",
          "value": "searchThreads",
          "action": "Search threads",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}"
              },
              "url": "v1/threads/search",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "threads"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTruthSocialProfile",
      "options": [
        {
          "name": "Get TruthSocial Profile",
          "value": "getTruthSocialProfile",
          "action": "Get truth social profile",
          "routing": {
            "request": {
              "qs": {
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/truthsocial/profile",
              "method": "GET"
            }
          },
          "description": "Get truth social profile"
        },
        {
          "name": "Get TruthSocial User Posts",
          "value": "getTruthSocialUserPosts",
          "action": "Get truth social user posts",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/truthsocial/user/posts",
              "method": "GET"
            }
          },
          "description": "Get truth social user posts"
        },
        {
          "name": "Get TruthSocial Post",
          "value": "getTruthSocialPost",
          "action": "Get the details of a truth social post",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}"
              },
              "url": "v1/truthsocial/post",
              "method": "GET"
            }
          },
          "description": "Get the details of a truth social post"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "truthsocial"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchPinterest",
      "options": [
        {
          "name": "Search Pinterest",
          "value": "searchPinterest",
          "action": "Search pinterest",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "trim": true,
                "query": "={{$parameter.query}}"
              },
              "url": "v1/pinterest/search",
              "method": "GET"
            },
            "operations": {}
          }
        },
        {
          "name": "Get Pinterest Pin",
          "value": "getPinterestPin",
          "action": "Get pinterest pin",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/pinterest/pin",
              "method": "GET"
            }
          }
        },
        {
          "name": "Get Pinterest User Boards",
          "value": "getPinterestUserBoards",
          "action": "Get a user s boards",
          "routing": {
            "request": {
              "qs": {
                "trim": true,
                "handle": "={{$parameter.handle}}"
              },
              "url": "v1/pinterest/user/boards",
              "method": "GET"
            }
          },
          "description": "Get a user's boards"
        },
        {
          "name": "Get Pinterest Board Pins",
          "value": "getPinterestBoardPins",
          "action": "Get a board s pins",
          "routing": {
            "send": {
              "paginate": true
            },
            "request": {
              "qs": {
                "url": "={{$parameter.url}}",
                "trim": true
              },
              "url": "v1/pinterest/board",
              "method": "GET"
            },
            "operations": {}
          },
          "description": "Get a board's pins"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pinterest"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchGoogle",
      "options": [
        {
          "name": "Search Google",
          "value": "searchGoogle",
          "action": "Search google",
          "routing": {
            "request": {
              "qs": {
                "query": "={{$parameter.query}}"
              },
              "url": "v1/google/search",
              "method": "GET"
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "googleSearch"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Profile",
      "value": "getInstagramProfile",
      "action": "Get instagram profile",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/instagram/profile",
          "method": "GET"
        }
      },
      "description": "Get an Instagram profile",
      "resource": "instagram"
    },
    {
      "name": "Get User's Posts",
      "value": "getInstagramUserPosts",
      "action": "Get an instagram user s posts",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v2/instagram/user/posts",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get an Instagram user's posts",
      "resource": "instagram"
    },
    {
      "name": "Get Post",
      "value": "getInstagramPost",
      "action": "Get an instagram post",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/instagram/post",
          "method": "GET"
        }
      },
      "description": "Get an Instagram post or reel",
      "resource": "instagram"
    },
    {
      "name": "Get Post Transcript",
      "value": "getInstagramPostTranscript",
      "action": "Get an instagram post transcript",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v2/instagram/media/transcript",
          "method": "GET"
        }
      },
      "description": "Get an Instagram post transcript",
      "resource": "instagram"
    },
    {
      "name": "Get User's Reels",
      "value": "getInstagramUserReels",
      "action": "Get an instagram user s reels",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/instagram/user/reels",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get an Instagram user's reels",
      "resource": "instagram"
    },
    {
      "name": "Get User's Story Highlights",
      "value": "getInstagramUserStoryHighlights",
      "action": "Get an instagram user s story highlights",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/instagram/user/highlights",
          "method": "GET"
        }
      },
      "description": "Get an Instagram user's story highlights",
      "resource": "instagram"
    },
    {
      "name": "Get Profile",
      "value": "getTikTokProfile",
      "action": "Get tik tok profile",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/tiktok/profile",
          "method": "GET"
        }
      },
      "description": "Get a TikTok profile",
      "resource": "tiktok"
    },
    {
      "name": "Get Profile's Videos",
      "value": "getTikTokProfileVideos",
      "action": "Get a tik tok profile s videos",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v3/tiktok/profile/videos",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a TikTok profile's videos",
      "resource": "tiktok"
    },
    {
      "name": "Get TikTok Video",
      "value": "getTikTokVideo",
      "action": "Get a tik tok video",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v2/tiktok/video",
          "method": "GET"
        }
      },
      "description": "Get a TikTok video",
      "resource": "tiktok"
    },
    {
      "name": "Get TikTok Video Transcript",
      "value": "getTikTokVideoTranscript",
      "action": "Get a tik tok video transcript",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/tiktok/video/transcript",
          "method": "GET"
        }
      },
      "description": "Get a TikTok video transcript",
      "resource": "tiktok"
    },
    {
      "name": "Get TikTok Video Comments",
      "value": "getTikTokVideoComments",
      "action": "Get a tik tok video comments",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/tiktok/video/comments",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a TikTok video comments",
      "resource": "tiktok"
    },
    {
      "name": "Get TikTok Following",
      "value": "getTikTokFollowing",
      "action": "Get a tik tok following",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/tiktok/user/following",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a TikTok following",
      "resource": "tiktok"
    },
    {
      "name": "Get TikTok Followers",
      "value": "getTikTokFollowers",
      "action": "Get a tik tok followers",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/tiktok/user/followers",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a TikTok followers",
      "resource": "tiktok"
    },
    {
      "name": "Search TikTok Users",
      "value": "searchTikTokUsers",
      "action": "Search tik tok users",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}"
          },
          "url": "v1/tiktok/search/users",
          "method": "GET"
        },
        "operations": {}
      },
      "resource": "tiktok"
    },
    {
      "name": "Search TikTok's by Hashtag",
      "value": "searchTikTokByHashtag",
      "action": "Search tik tok by hashtag",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "hashtag": "={{$parameter.hashtag}}"
          },
          "url": "v1/tiktok/search/hashtag",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search TikTok by hashtag",
      "resource": "tiktok"
    },
    {
      "name": "Search TikTok's by Keyword",
      "value": "searchTikTokByKeyword",
      "action": "Search tik tok by keyword",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}"
          },
          "url": "v1/tiktok/search/keyword",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search TikTok by keyword",
      "resource": "tiktok"
    },
    {
      "name": "Get YouTube Channel Details",
      "value": "getYouTubeChannelDetails",
      "action": "Get a you tube channel details",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}",
            "channelId": "={{$parameter.channelId}}"
          },
          "url": "v1/youtube/channel",
          "method": "GET"
        }
      },
      "description": "Get a YouTube channel details",
      "resource": "youtube"
    },
    {
      "name": "Get YouTube Channel Videos",
      "value": "getYouTubeChannelVideos",
      "action": "Get a you tube channel videos",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "sort": "={{$parameter.additionalFields.sort}}",
            "handle": "={{$parameter.handle}}",
            "channelId": "={{$parameter.channelId}}"
          },
          "url": "v1/youtube/channel-videos",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a YouTube channel videos",
      "resource": "youtube"
    },
    {
      "name": "Get YouTube Channel Shorts",
      "value": "getYouTubeChannelShorts",
      "action": "Get a you tube channel shorts",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "sort": "={{$parameter.additionalFields.sort}}",
            "handle": "={{$parameter.handle}}",
            "channelId": "={{$parameter.channelId}}"
          },
          "url": "v1/youtube/channel/shorts",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a YouTube channel shorts",
      "resource": "youtube"
    },
    {
      "name": "Get YouTube Video Details",
      "value": "getYouTubeVideoDetails",
      "action": "Get a you tube video details",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/youtube/video",
          "method": "GET"
        }
      },
      "description": "Get a YouTube video details",
      "resource": "youtube"
    },
    {
      "name": "Get YouTube Video Transcript",
      "value": "getYouTubeVideoTranscript",
      "action": "Get a you tube video transcript",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/youtube/video/transcript",
          "method": "GET"
        }
      },
      "description": "Get a YouTube video transcript",
      "resource": "youtube"
    },
    {
      "name": "Search YouTube Videos by Keyword",
      "value": "searchYouTubeVideosByKeyword",
      "action": "Search you tube videos",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "query": "={{$parameter.query}}"
          },
          "url": "v1/youtube/search",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search YouTube videos",
      "resource": "youtube"
    },
    {
      "name": "Search YouTube Videos by Hashtag",
      "value": "searchYouTubeVideosByHashtag",
      "action": "Search you tube videos by hashtag",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "hashtag": "={{$parameter.hashtag}}"
          },
          "url": "v1/youtube/search/hashtag",
          "method": "GET"
        },
        "operations": {}
      },
      "resource": "youtube"
    },
    {
      "name": "Get Comments",
      "value": "getComments",
      "action": "Get comments",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/youtube/video/comments",
          "method": "GET"
        },
        "operations": {}
      },
      "resource": "youtube"
    },
    {
      "name": "Get LinkedIn Profile",
      "value": "getLinkedinProfile",
      "action": "Get a linked in profile",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/linkedin/profile",
          "method": "GET"
        }
      },
      "description": "Get a LinkedIn profile",
      "resource": "linkedin"
    },
    {
      "name": "Get LinkedIn Company Page",
      "value": "getLinkedinCompanyPage",
      "action": "Get a linked in company page",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/linkedin/company",
          "method": "GET"
        }
      },
      "description": "Get a LinkedIn company page",
      "resource": "linkedin"
    },
    {
      "name": "Get LinkedIn Post",
      "value": "getLinkedinPost",
      "action": "Get a linked in post",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/linkedin/post",
          "method": "GET"
        }
      },
      "description": "Get a LinkedIn post",
      "resource": "linkedin"
    },
    {
      "name": "Get Facebook Profile",
      "value": "getFacebookProfile",
      "action": "Get a facebook profile",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/profile",
          "method": "GET"
        }
      },
      "description": "Get a Facebook profile",
      "resource": "facebook"
    },
    {
      "name": "Get Facebook Profile Posts",
      "value": "getFacebookProfilePosts",
      "action": "Get a facebook profile posts",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/profile/posts",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a Facebook profile posts",
      "resource": "facebook"
    },
    {
      "name": "Get Facebook Group Posts",
      "value": "getFacebookGroupPosts",
      "action": "Get a facebook group posts",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/group/posts",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a Facebook group posts",
      "resource": "facebook"
    },
    {
      "name": "Get Reel",
      "value": "getReel",
      "action": "Get a facebook reel",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/user/reel",
          "method": "GET"
        }
      },
      "description": "Get a Facebook reel",
      "resource": "facebook"
    },
    {
      "name": "Get Facebook Post",
      "value": "getFacebookPost",
      "action": "Get a facebook post",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/user/post",
          "method": "GET"
        }
      },
      "description": "Get a Facebook post",
      "resource": "facebook"
    },
    {
      "name": "Get Transcript",
      "value": "getTranscript",
      "action": "Get a facebook transcript",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/facebook/post/transcript",
          "method": "GET"
        }
      },
      "description": "Get the transcript of a post or reel",
      "resource": "facebook"
    },
    {
      "name": "Get Ad",
      "value": "getFacebookLibraryAd",
      "action": "Get a facebook ad library ad",
      "routing": {
        "request": {
          "qs": {
            "id": "={{$parameter.id}}",
            "trim": true
          },
          "url": "v1/facebook/adLibrary/ad",
          "method": "GET"
        }
      },
      "description": "Get a Facebook ad library ad",
      "resource": "facebookAdLibrary"
    },
    {
      "name": "Search Ads",
      "value": "searchAds",
      "action": "Search for ads",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}",
            "status": "={{$parameter.additionalFields.status}}",
            "ad_type": "={{$parameter.additionalFields.ad_type}}",
            "country": "={{$parameter.additionalFields.country}}",
            "end_date": "={{$parameter.additionalFields.end_date}}",
            "media_type": "={{$parameter.additionalFields.media_type}}",
            "start_date": "={{$parameter.additionalFields.start_date}}",
            "search_type": "={{$parameter.additionalFields.search_type}}"
          },
          "url": "v1/facebook/adLibrary/search/ads",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search for ads",
      "resource": "facebookAdLibrary"
    },
    {
      "name": "Get A Company's Ads",
      "value": "getCompanyAds",
      "action": "Get a company s ads",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "pageId": "={{$parameter.pageId}}",
            "status": "={{$parameter.additionalFields.status}}",
            "country": "={{$parameter.additionalFields.country}}",
            "media_type": "={{$parameter.additionalFields.media_type}}"
          },
          "url": "v1/facebook/adLibrary/company/ads",
          "method": "GET"
        },
        "operations": {}
      },
      "resource": "facebookAdLibrary"
    },
    {
      "name": "Search Companies",
      "value": "searchCompanies",
      "action": "Search for companies",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}"
          },
          "url": "v1/facebook/adLibrary/search/companies",
          "method": "GET"
        }
      },
      "description": "Search for companies",
      "resource": "facebookAdLibrary"
    },
    {
      "name": "Get A Company's Google Ads",
      "value": "getCompanyGoogleAds",
      "action": "Get a company s google ads",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "topic": "={{$parameter.additionalFields.topic}}",
            "domain": "={{$parameter.domain}}",
            "region": "={{$parameter.additionalFields.region}}",
            "advertiser_id": "={{$parameter.additionalFields.advertiser_id}}"
          },
          "url": "v1/google/company/ads",
          "method": "GET"
        },
        "operations": {}
      },
      "resource": "googleAdLibrary"
    },
    {
      "name": "Get Ad Details",
      "value": "getAdDetails",
      "action": "Get ad details",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/google/ad",
          "method": "GET"
        }
      },
      "description": "Get the details of a specific Google ad",
      "resource": "googleAdLibrary"
    },
    {
      "name": "Search Ads",
      "value": "searchLinkedinAds",
      "action": "Search for ads",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "company": "={{$parameter.additionalFields.company}}",
            "endDate": "={{$parameter.additionalFields.endDate}}",
            "keyword": "={{$parameter.keyword}}",
            "countries": "={{$parameter.additionalFields.countries}}",
            "startDate": "={{$parameter.additionalFields.startDate}}"
          },
          "url": "v1/linkedin/ads/search",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search the LinkedIn Ad Library for ads",
      "resource": "linkedinAdLibrary"
    },
    {
      "name": "Get Ad Details",
      "value": "getLinkedinAdDetails",
      "action": "Get ad details",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/linkedin/ad",
          "method": "GET"
        }
      },
      "description": "Get the details of a specific LinkedIn ad",
      "resource": "linkedinAdLibrary"
    },
    {
      "name": "Get Twitter Profile",
      "value": "getTwitterProfile",
      "action": "Get a twitter profile",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/twitter/profile",
          "method": "GET"
        }
      },
      "description": "Get a Twitter profile",
      "resource": "twitter"
    },
    {
      "name": "Get User Tweets",
      "value": "getUserTweets",
      "action": "Get a user s tweets",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/twitter/user-tweets",
          "method": "GET"
        }
      },
      "description": "Get a user's tweets. This won't be their latest tweets, but will be 100 of their most popular tweets.",
      "resource": "twitter"
    },
    {
      "name": "Get Tweet Details",
      "value": "getTweetDetails",
      "action": "Get a tweet s details",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/twitter/tweet",
          "method": "GET"
        }
      },
      "description": "Get a tweet's details",
      "resource": "twitter"
    },
    {
      "name": "Get Subreddit Posts",
      "value": "getSubredditPosts",
      "action": "Get a subreddit s posts",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "sort": "={{$parameter.additionalFields.sort}}",
            "trim": true,
            "subreddit": "={{$parameter.subreddit}}",
            "timeframe": "={{$parameter.additionalFields.timeframe}}"
          },
          "url": "v1/reddit/subreddit",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a subreddit's posts",
      "resource": "reddit"
    },
    {
      "name": "Get Post Comments",
      "value": "getRedditPostComments",
      "action": "Get a post s comments",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/reddit/post/comments",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a post's comments",
      "resource": "reddit"
    },
    {
      "name": "Search Reddit",
      "value": "searchReddit",
      "action": "Search reddit",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "sort": "={{$parameter.additionalFields.sort}}",
            "trim": true,
            "query": "={{$parameter.query}}",
            "timeframe": "={{$parameter.additionalFields.timeframe}}"
          },
          "url": "v1/reddit/search",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Search Reddit for posts",
      "resource": "reddit"
    },
    {
      "name": "Get Threads Profile",
      "value": "getThreadsProfile",
      "action": "Get threads profile",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/threads/profile",
          "method": "GET"
        }
      },
      "resource": "threads"
    },
    {
      "name": "Get Threads User Posts",
      "value": "getThreadsUserPosts",
      "action": "Get threads user posts",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/threads/user/posts",
          "method": "GET"
        }
      },
      "resource": "threads"
    },
    {
      "name": "Get Threads Post",
      "value": "getThreadsPost",
      "action": "Get threads post",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/threads/post",
          "method": "GET"
        }
      },
      "resource": "threads"
    },
    {
      "name": "Search Threads",
      "value": "searchThreads",
      "action": "Search threads",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}"
          },
          "url": "v1/threads/search",
          "method": "GET"
        }
      },
      "resource": "threads"
    },
    {
      "name": "Get TruthSocial Profile",
      "value": "getTruthSocialProfile",
      "action": "Get truth social profile",
      "routing": {
        "request": {
          "qs": {
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/truthsocial/profile",
          "method": "GET"
        }
      },
      "description": "Get truth social profile",
      "resource": "truthsocial"
    },
    {
      "name": "Get TruthSocial User Posts",
      "value": "getTruthSocialUserPosts",
      "action": "Get truth social user posts",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/truthsocial/user/posts",
          "method": "GET"
        }
      },
      "description": "Get truth social user posts",
      "resource": "truthsocial"
    },
    {
      "name": "Get TruthSocial Post",
      "value": "getTruthSocialPost",
      "action": "Get the details of a truth social post",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}"
          },
          "url": "v1/truthsocial/post",
          "method": "GET"
        }
      },
      "description": "Get the details of a truth social post",
      "resource": "truthsocial"
    },
    {
      "name": "Search Pinterest",
      "value": "searchPinterest",
      "action": "Search pinterest",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "trim": true,
            "query": "={{$parameter.query}}"
          },
          "url": "v1/pinterest/search",
          "method": "GET"
        },
        "operations": {}
      },
      "resource": "pinterest"
    },
    {
      "name": "Get Pinterest Pin",
      "value": "getPinterestPin",
      "action": "Get pinterest pin",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/pinterest/pin",
          "method": "GET"
        }
      },
      "resource": "pinterest"
    },
    {
      "name": "Get Pinterest User Boards",
      "value": "getPinterestUserBoards",
      "action": "Get a user s boards",
      "routing": {
        "request": {
          "qs": {
            "trim": true,
            "handle": "={{$parameter.handle}}"
          },
          "url": "v1/pinterest/user/boards",
          "method": "GET"
        }
      },
      "description": "Get a user's boards",
      "resource": "pinterest"
    },
    {
      "name": "Get Pinterest Board Pins",
      "value": "getPinterestBoardPins",
      "action": "Get a board s pins",
      "routing": {
        "send": {
          "paginate": true
        },
        "request": {
          "qs": {
            "url": "={{$parameter.url}}",
            "trim": true
          },
          "url": "v1/pinterest/board",
          "method": "GET"
        },
        "operations": {}
      },
      "description": "Get a board's pins",
      "resource": "pinterest"
    },
    {
      "name": "Search Google",
      "value": "searchGoogle",
      "action": "Search google",
      "routing": {
        "request": {
          "qs": {
            "query": "={{$parameter.query}}"
          },
          "url": "v1/google/search",
          "method": "GET"
        }
      },
      "resource": "googleSearch"
    }
  ]

npm_readme:
  # n8n-nodes-scrape-creators

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

  This is an n8n community node. It lets you get real time social media data with [ScrapeCreators](https://scrapecreators.com/)

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

  ## How to install

  ### Community Nodes

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

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-scrape-creators` 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**

  ## Credentials

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

  1. Sign up for a [Scrape Creators account](https://app.scrapecreators.com/)
  2. Copy API Token

  3. Create new credential in n8n

     - Use the Scrape Creators node
     - Under Credential to connect with, click Create New Credential
     - Paste API Key

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Scrape Creators Documentation](https://docs.scrapecreators.com/)
  - [Sign up for a Scrape Creators API key](https://app.scrapecreators.com/)
  - Email me if you have any problems: adrian@thewebscrapingguy.com

  ## Version history

  0.1.5 - Initial Release

ai_documentation_summary:
  {"purpose":"This n8n community node retrieves real-time social media data by connecting to the ScrapeCreators API.","capabilities":["Fetch real-time social media data","Access social media metrics and insights","Integrate with ScrapeCreators API"],"authentication":"API Key required","commonUseCases":["Monitor social media trends","Track competitor social activity","Gather social media analytics for marketing campaigns"],"limitations":["Community node (requires agreeing to risks)","Requires separate ScrapeCreators account and API token"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.webhook"]}


