# nodes

node_type: n8n-nodes-timizer.timizerTrigger
package_name: n8n-nodes-timizer
display_name: Timizer Trigger
description: Starts the workflow when Timizer 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: thibaulttimizer
author_github_url: https://github.com/timizerio/timizer-n8n-node.git
npm_package_name: n8n-nodes-timizer
npm_version: 0.1.4
community_fetched_at: 2026-04-16T09:43:36.281Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-timizer

  This is an [n8n](https://n8n.io/) community node for [Timizer](https://timizer.io), a timesheet and activity report management platform.

  It lets you interact with the Timizer API directly from your n8n workflows.

  ## Installation

  In your n8n instance:

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

  ## Credentials

  You need a Timizer API key and Team ID to authenticate. Configure them in n8n:

  1. Go to **Credentials > New Credential**
  2. Search for **Timizer API**
  3. Enter your **API Key** and **Team ID**

  ## Nodes

  ### Timizer

  Interact with Timizer resources. Supported resources and operations:

  | Resource | Operations |
  |---|---|
  | Activity Report | Create, Delete, Get, Update |
  | Client | Create, Delete, Get, Update |
  | Client Contact | Create, Delete, Update |
  | Contracted | Create, Delete, Get, Update |
  | Contracted Contact | Create, Delete, Update |
  | Mission | Create, Delete, Update |
  | Tag | Create, Delete, Update |
  | Team | Create, Delete, Update |
  | Team Member | Delete, Update |

  ### Timizer Trigger

  Starts a workflow when Timizer events occur via webhooks. Supported events:

  - Activity Report: Created, Deleted, Refused, Shared, Signed, Updated

  ## Compatibility

  Tested with n8n v1.x. Requires Node.js >= 18.

  ## Resources

  - [Timizer website](https://timizer.io)
  - [Timizer API documentation](https://api.timizer.io)
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"The Timizer Trigger node starts an n8n workflow when specific events occur in the Timizer timesheet and activity report management platform via webhooks.","capabilities":["Monitors Timizer events via webhooks","Triggers workflow execution on Activity Report events","Supports events: Created, Deleted, Refused, Shared, Signed, Updated","Integrates with Timizer API for timesheet management"],"authentication":"API key required (Timizer API Key and Team ID)","commonUseCases":["Automated timesheet processing","Activity report status notifications","Workflow automation based on client or team updates","Automated task assignment on mission creation"],"limitations":["Only supports Activity Report events (not all Timizer resources)","Missing Create operation for Activity Report events","Missing Create operation for Team Member resource","Limited to n8n v1.x compatibility","Requires Node.js >= 18"],"relatedNodes":["Timizer (full API interaction node)","Webhook","IF (conditionals)","Execute Workflow"]}


node_type: n8n-nodes-screenshotbase.screenshotBase
package_name: n8n-nodes-screenshotbase
display_name: ScreenshotBase
description: Capture screenshots via ScreenshotBase API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: everapi-user
author_github_url: https://github.com/everapihq/
npm_package_name: n8n-nodes-screenshotbase
npm_version: 0.1.3
community_fetched_at: 2026-04-16T09:43:36.282Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "getScreenshot",
      "options": [
        {
          "name": "Get Screenshot",
          "value": "getScreenshot",
          "action": "Fetch website screenshot",
          "routing": {
            "request": {
              "qs": {
                "url": "={{$parameter[\"url\"]}}"
              },
              "url": "/take",
              "method": "GET"
            }
          },
          "description": "Capture a screenshot from a given URL"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Screenshot",
      "value": "getScreenshot",
      "action": "Fetch website screenshot",
      "routing": {
        "request": {
          "qs": {
            "url": "={{$parameter[\"url\"]}}"
          },
          "url": "/take",
          "method": "GET"
        }
      },
      "description": "Capture a screenshot from a given URL"
    }
  ]

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

  # n8n-nodes-friendgrid

  This repo contains FriendGrid community nodes for [n8n](https://n8n.io), including a [ScreenshotBase](https://screenshotbase.com) node.

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

  If you would like your node to be available on n8n cloud you can also [submit your node for verification](https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/).

  ## Prerequisites

  You need the following installed on your development machine:

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

  ## Using this starter

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

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

  ## More information

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

  ## ScreenshotBase Node

  Capture website screenshots using the ScreenshotBase API.

  ### Credentials

  - Create credentials of type `ScreenshotBase API` and enter your API key (`https://app.screenshotbase.com/register`)).
  - Base URL defaults to `https://app.screenshotbase.com/v1`.

  ### Operation

  - Get Screenshot
    - URL (required)
    - File Name (optional)
    - Advanced: width, height, format (png/jpeg/webp), fullpage

  ### Notes

  - The node performs a GET to `/take` with your key injected by credentials.
  - Output is the HTTP response. Add a downstream node to persist the image as needed.

  ## License

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

ai_documentation_summary:
  {"purpose":"Captures website screenshots using the ScreenshotBase API by sending GET requests to the /take endpoint.","capabilities":["Capture screenshots from provided URLs","Customize output dimensions (width, height)","Select output format (png, jpeg, webp)","Capture full page screenshots","Customize file name for saved images"],"authentication":"API key required (entered in node credentials)","commonUseCases":["Web scraping for visual content","Website monitoring and change detection","Content archiving","Social media post generation"],"limitations":["Output is raw HTTP response; requires downstream node to save/process images","No built-in image storage or file management","Advanced options limited to width, height, format, and fullpage"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.downloadFile"]}


node_type: n8n-nodes-gatus-trigger.gatusTrigger
package_name: n8n-nodes-gatus-trigger
display_name: Gatus Trigger
description: Receives webhook alerts from Gatus monitoring system
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: twin.sh
author_github_url: https://github.com/TwiN/
npm_package_name: n8n-nodes-gatus-trigger
npm_version: 1.0.4
community_fetched_at: 2026-04-16T09:43:36.283Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-gatus-trigger
  [![npm package version](https://img.shields.io/npm/v/n8n-nodes-gatus-trigger)](https://www.npmjs.com/package/n8n-nodes-gatus-trigger)

  This is a n8n community node that lets you receive webhook alerts from [Gatus](https://github.com/TwiN/gatus), a developer-oriented health monitoring and status page system.


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

  ### npm

  ```bash
  npm install n8n-nodes-gatus-trigger
  ```

  ### n8n Cloud
  For n8n cloud users, follow the [n8n Cloud installation guide](https://docs.n8n.io/integrations/community-nodes/installation/gui-install/).

  ## Operations
  This node provides a single trigger operation:

  - **Webhook Trigger**: Receives HTTP POST webhooks from Gatus when alerts are triggered or resolved

  ## Configuring Gatus
  To send alerts to this n8n trigger node, configure Gatus to use the n8n alerting provider:

  ### 1. Get Your Webhook URL
  After adding the Gatus Trigger node to your n8n workflow:
  1. Click "Listen for Test Event" to get the test webhook URL
  2. Once your workflow is activated, use the Production webhook URL

  ### 2. Configure Gatus
  Add the following to your Gatus configuration file (`config.yaml`):

  ```yaml
  alerting:
    n8n:
      webhook-url: "https://your-n8n-instance.com/webhook/your-webhook-path"
    default-alert:
      send-on-resolved: true 

  endpoints:
    - name: example-api
      url: "https://api.example.com/health"
      interval: 1m
      conditions:
        - "[STATUS] == 200"
      alerts:
        - type: n8n
          description: "API health check failed"
  ```

  ### Gatus Webhook Payload Structure
  Gatus automatically sends webhooks with the following JSON structure (based on the [official n8n provider implementation](https://github.com/TwiN/gatus/blob/master/alerting/provider/n8n/n8n.go)):

  - `title`: Title of the alert (configurable in Gatus, defaults to "Gatus")
  - `endpoint_name`: Name of the monitored endpoint
  - `endpoint_group`: Group the endpoint belongs to (optional)
  - `endpoint_url`: URL being monitored
  - `alert_description`: Description from your alert configuration (optional)
  - `resolved`: Boolean - `true` if alert is resolved, `false` if triggered
  - `message`: Auto-generated message describing the alert
  - `condition_results`: Array of condition check results (optional)

  **Note:** You typically don't need to customize the payload - Gatus sends the correct structure automatically. However, if you need to customize the title, you can configure it in your Gatus config:

  ```yaml
  alerting:
    n8n:
      webhook-url: "https://your-n8n-instance.com/webhook/your-webhook-path"
      title: "Production Monitoring"  # Optional: customize the title
  ```

  ## Node Parameters

  ### Path
  - **Optional**: Custom webhook path
  - **Default**: Auto-generated
  - Leave empty to use an automatically generated webhook path, or specify a custom path for easier management

  ### Options

  #### Alert Type Filter
  - **All**: Receive both triggered and resolved alerts (default)
  - **Triggered Only**: Only receive alerts when endpoints fail
  - **Resolved Only**: Only receive alerts when endpoints recover

  #### Endpoint Group Filter
  - Filter alerts by endpoint group
  - Leave empty to receive alerts from all groups
  - Example: Set to "production" to only receive alerts for production endpoints

  #### Endpoint Name Filter
  - Filter alerts by endpoint name
  - Leave empty to receive alerts from all endpoints
  - Example: Set to "api-server" to only receive alerts for that specific endpoint

  ## Example Workflows

  ### Basic Alert Notification

  ```
  Gatus Trigger → Send Email
  ```

  Send an email whenever a Gatus alert is triggered.

  ### Conditional Response Based on Alert Type

  ```
  Gatus Trigger → IF Node → Send Slack Message / Log to Database
  ```

  Send Slack notifications for triggered alerts and log resolved alerts to a database.

  ### Alert Management

  ```
  Gatus Trigger → Set Variables → HTTP Request → Update Dashboard
  ```

  Process the alert data and update an external monitoring dashboard.

  ## Output Data

  The trigger node outputs the following data structure:

  ```json
  {
    "title": "Gatus",
    "endpoint_name": "api-server",
    "endpoint_group": "production",
    "endpoint_url": "https://api.example.com/health",
    "alert_description": "API health check failed",
    "resolved": false,
    "message": "An alert for api-server has been triggered due to having failed 3 time(s) in a row",
    "condition_results": [
      {
        "condition": "[STATUS] == 200",
        "success": false
      },
      {
        "condition": "[RESPONSE_TIME] < 500",
        "success": true
      }
    ]
  }
  ```

  ### Field Descriptions

  - **title**: The configured title from Gatus (defaults to "Gatus")
  - **endpoint_name**: Name of the endpoint that triggered the alert
  - **endpoint_group**: Optional group classification
  - **endpoint_url**: The URL being monitored
  - **alert_description**: Custom description from your Gatus alert configuration
  - **resolved**: `true` when an alert is resolved, `false` when triggered
  - **message**: Human-readable message generated by Gatus
  - **condition_results**: Array of all condition checks with their results

  ## Development

  ### Setup

  ```bash
  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Link for local development
  npm link
  cd ~/.n8n/nodes
  npm link n8n-nodes-gatus-trigger
  ```

  ### Testing

  To test the node locally:

  1. Start n8n with `n8n start`
  2. Add the Gatus Trigger node to a workflow
  3. Click "Listen for Test Event"
  4. Send a test webhook using curl:

  ```bash
  curl -X POST https://your-n8n-instance.com/webhook/your-webhook-path \
    -H "Content-Type: application/json" \
    -d '{
      "title": "Gatus",
      "endpoint_name": "test-api",
      "endpoint_group": "test",
      "endpoint_url": "https://test.example.com",
      "alert_description": "Test alert",
      "resolved": false,
      "message": "An alert for test-api has been triggered due to having failed 3 time(s) in a row",
      "condition_results": [
        {
          "condition": "[STATUS] == 200",
          "success": false
        }
      ]
    }'
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Gatus documentation](https://gatus.io/docs/)
  - [Gatus GitHub repository](https://github.com/TwiN/gatus)
  - [Gatus alerting configuration](https://gatus.io/docs/alerting-getting-started)

ai_documentation_summary:
  {"purpose":"Receives webhook alerts from the Gatus monitoring system when endpoints fail or recover, enabling automated responses to infrastructure health events.","capabilities":["Receives HTTP POST webhooks from Gatus for triggered alerts","Receives HTTP POST webhooks from Gatus for resolved alerts","Filters alerts by alert type (All, Triggered Only, Resolved Only)","Filters alerts by endpoint group","Filters alerts by endpoint name","Outputs structured JSON data including alert details and condition results","Supports custom webhook path configuration"],"authentication":"None","commonUseCases":["Send email notifications when services go down","Trigger Slack messages for critical infrastructure failures","Update external monitoring dashboards with real-time status","Log resolved alerts to a database for historical tracking","Automatically restart failed services via HTTP requests"],"limitations":["Requires Gatus to be configured with the n8n alerting provider","Does not support authentication between Gatus and n8n","Webhook payload structure is fixed and may not match all custom Gatus configurations","Only supports basic filtering options (alert type, endpoint group, endpoint name)"],"relatedNodes":["Gatus","HTTP Request","IF","Send Email","Send Slack"]}


node_type: @crowdin/n8n-nodes-crowdin.crowdinFileBasedTrigger
package_name: @crowdin/n8n-nodes-crowdin
display_name: Crowdin (File-Based) Trigger
description: Starts the workflow when crowdin.com file-based project 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: taras.prosvirov
author_github_url: https://github.com/crowdin/n8n-nodes-crowdin.git
npm_package_name: @crowdin/n8n-nodes-crowdin
npm_version: 0.8.0
community_fetched_at: 2026-04-16T09:43:36.284Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
[cell repeats an earlier one in this file: 11013 characters]

ai_documentation_summary:
  {"purpose":"The Crowdin (File-Based) Trigger node starts an n8n workflow automatically when specific file-based project events occur in a Crowdin.com localization project.","capabilities":["Monitors Crowdin file-based projects for events","Triggers workflow execution on project creation","Triggers workflow execution on project deletion","Triggers workflow execution on full project translation completion","Triggers workflow execution on full project review/approval","Triggers workflow execution on successful project build","Triggers workflow execution on completed QA checks","Triggers workflow execution on exported translation updates","Supports both Crowdin and Crowdin Enterprise environments"],"authentication":"OAuth2 (via Crowdin credentials)","commonUseCases":["Automatically start translation workflows when new files are added to a project","Notify team members when a project reaches 100% translation status","Initiate deployment pipelines after QA checks pass","Trigger notifications when projects are created or deleted","Start automated reporting when translations are finalized"],"limitations":["Only supports file-based projects (not string-based projects)","Does not support Crowdin Enterprise string-based projects","Requires valid OAuth2 credentials configured in n8n"],"relatedNodes":["Crowdin (File-Based)","Crowdin (String-Based)","Crowdin Enterprise (File-Based)","Crowdin Enterprise (String-Based)","Crowdin (File-Based) Trigger"]}


node_type: @rogerrogerio/n8n-nodes-rogerroger.rogerRoger
package_name: @rogerrogerio/n8n-nodes-rogerroger
display_name: RogerRoger
description: Interact with RogerRoger API for Person, Organization and Task resources
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: royrr
author_github_url: https://github.com/RogerRogerHQ/n8n-nodes-rogerroger.git
npm_package_name: @rogerrogerio/n8n-nodes-rogerroger
npm_version: 1.10.0
community_fetched_at: 2026-04-16T09:43:36.285Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Person",
          "value": "person"
        },
        {
          "name": "Organization",
          "value": "organization"
        },
        {
          "name": "Task",
          "value": "task"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get person",
          "description": "Get person"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many persons",
          "description": "Get many persons"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create person",
          "description": "Create person"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update person",
          "description": "Update person"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete person",
          "description": "Delete person"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "person"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get organization",
          "description": "Get organization"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many organizations",
          "description": "Get many organizations"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create organization",
          "description": "Create organization"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update organization",
          "description": "Update organization"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete organization",
          "description": "Delete organization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "organization"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get task",
          "description": "Get task"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many tasks",
          "description": "Get many tasks"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create task",
          "description": "Create task"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update task",
          "description": "Update task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete task",
          "description": "Delete task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get tag",
          "description": "Get tag"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many tags",
          "description": "Get many tags"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create tag",
          "description": "Create tag"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update tag",
          "description": "Update tag"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete tag",
          "description": "Delete tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get segment",
          "description": "Get segment"
        },
        {
          "name": "Get many",
          "value": "getMany",
          "action": "Get many segments",
          "description": "Get many segments"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create segment",
          "description": "Create segment"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update segment",
          "description": "Update segment"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete segment",
          "description": "Delete segment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "segment"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get person",
      "description": "Get person",
      "resource": "person"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many persons",
      "description": "Get many persons",
      "resource": "person"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create person",
      "description": "Create person",
      "resource": "person"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update person",
      "description": "Update person",
      "resource": "person"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete person",
      "description": "Delete person",
      "resource": "person"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get organization",
      "description": "Get organization",
      "resource": "organization"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many organizations",
      "description": "Get many organizations",
      "resource": "organization"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create organization",
      "description": "Create organization",
      "resource": "organization"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update organization",
      "description": "Update organization",
      "resource": "organization"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete organization",
      "description": "Delete organization",
      "resource": "organization"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get task",
      "description": "Get task",
      "resource": "task"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many tasks",
      "description": "Get many tasks",
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create task",
      "description": "Create task",
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update task",
      "description": "Update task",
      "resource": "task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete task",
      "description": "Delete task",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get tag",
      "description": "Get tag",
      "resource": "tag"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many tags",
      "description": "Get many tags",
      "resource": "tag"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create tag",
      "description": "Create tag",
      "resource": "tag"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update tag",
      "description": "Update tag",
      "resource": "tag"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete tag",
      "description": "Delete tag",
      "resource": "tag"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get segment",
      "description": "Get segment",
      "resource": "segment"
    },
    {
      "name": "Get many",
      "value": "getMany",
      "action": "Get many segments",
      "description": "Get many segments",
      "resource": "segment"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create segment",
      "description": "Create segment",
      "resource": "segment"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update segment",
      "description": "Update segment",
      "resource": "segment"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete segment",
      "description": "Delete segment",
      "resource": "segment"
    }
  ]

npm_readme:
  # n8n-nodes-rogerroger

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

  RogerRoger is a collaborative task and communication platform designed to streamline workflows by turning emails and chats into actionable tasks for teams.

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

  - Person
    - Get
    - Get many
    - Create
    - Update
    - Delete
  - Organization
    - Get
    - Get many
    - Create
    - Update
    - Delete
  - Task
    - Get
    - Get many
    - Create
    - Update
    - Delete

  ## Credentials

  The node supports the API Key authentication method that is required to authenticate with the RogerRoger API.

  ## Compatibility

  Tested against n8n version 1.95.3.

  ## Usage

  1. **Generate an API Key**: Visit the [RogerRoger API Admin](https://app.rogerroger.io/admin/api) to create your API key.

  2. **Set Up Credentials in n8n**:
     - Navigate to the RogerRoger node in your n8n workflow.
     - Create a new credential and enter the API key you generated.

  3. **Select a Resource**:
     - Choose one of the available resources you want to interact with: Person, Organization, or Task.

  4. **Choose an Operation**:
     - Select the operation you wish to perform (e.g., Get, Create, Update, Delete).
     - Provide the necessary data for the selected operation.

  5. **Execute the Node**:
     - Run the node to perform the selected operations on the RogerRoger platform.

  ## Resources

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

  ## Version history

  - 1.0.0: Initial release
  - 1.0.1: README updated
  - 1.0.2:
  	- Updated README
  	- Chore: Moved repository to public Github
  	- Text changes to improve consistancy between RogerRoger and N8N
  	- Add fields "dueDate" and "organizations" to task resource
  - 1.0.3:
  	- Wrong path specified for node in package.json
  - 1.0.4:
  	- Wrong path to credentials file specified in package.json 
  - 1.0.5:
  	- Add credential test code
  - 1.0.6:
  	- Fix X-API-KEY header
  - 1.0.7:
  	- Update test endpoint
  - 1.0.8:
  	- Provide rules for credential test
  - 1.0.9
  	- Bump version
  - 1.10.0
      - Added a resource locator to more easily find individual people, organizations, or tasks
      - Improved error reporting by using not only toast notifications but also the output window of n8n
      - Restructured and modularized the code to improve maintainability
      - Get many will now use "return all" and "limit" to provide a list of items

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the RogerRoger API to manage Person, Organization, and Task resources within automated workflows.","capabilities":["Retrieve single Person records","Retrieve multiple Person records","Create Person records","Update Person records","Delete Person records","Retrieve single Organization records","Retrieve multiple Organization records","Create Organization records","Update Organization records","Delete Organization records"],"authentication":"API Key required","commonUseCases":["Automating team task management via email and chat conversion","Syncing organizational data between systems","Tracking and managing person-related workflows"],"limitations":["Community node (may have less support than official nodes)","Requires manual API key generation from RogerRoger admin panel"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Code"]}


node_type: @orisma/n8n-nodes-taximail.taximail
package_name: @orisma/n8n-nodes-taximail
display_name: Taximail
description: Send Email, SMS, OTP via Taximail API with AI content generation or check status/verify OTP
category: AI Agent Tools
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: worngsakorn-orm
author_github_url: https://github.com/wongsakorn-orm/n8n-nodes-taximail.git
npm_package_name: @orisma/n8n-nodes-taximail
npm_version: 1.0.12
community_fetched_at: 2026-04-16T09:43:36.286Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "email",
      "options": [
        {
          "name": "Check Status",
          "value": "check_status"
        },
        {
          "name": "Send Email",
          "value": "email"
        },
        {
          "name": "Send SMS",
          "value": "sms"
        },
        {
          "name": "Send SMS OTP",
          "value": "sms_otp"
        },
        {
          "name": "Verify OTP",
          "value": "verify_otp"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Check Status",
      "value": "check_status"
    },
    {
      "name": "Send Email",
      "value": "email"
    },
    {
      "name": "Send SMS",
      "value": "sms"
    },
    {
      "name": "Send SMS OTP",
      "value": "sms_otp"
    },
    {
      "name": "Verify OTP",
      "value": "verify_otp"
    }
  ]

npm_readme:
  # n8n-nodes-taximail

  This is an n8n community node. It lets you use **Taximail** in your n8n AI Agent workflows as a Tool.

  **Taximail** is a communication service for sending transactional emails and SMS globally. This node allows AI Agents to send messages via Taximail, verify OTP codes, and check message delivery status with intelligent context awareness.

  [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)  
  [AI Agent Configuration](#ai-agent-configuration)  
  [Resources](#resources)

  ---

  ## Installation

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

  Once installed, the `Taximail` node will be available as a **Tool** for AI Agent nodes to use directly.

  ---

  ## Operations

  - **Send Email**: Send transactional emails via Taximail (with `template_key` or custom content).
  - **Send SMS**: Send SMS via Taximail (with `template_key` or custom text).
  - **Send SMS OTP**: Send OTP verification codes via SMS (requires `template_key`).
  - **Verify OTP**: Verify OTP codes entered by users.
  - **Check Status**: Check delivery status of sent messages.

  ---

  ## Credentials

  You will need **Taximail API credentials** to use this node.

  ### Getting Your API Credentials:

  1. Sign up or log in at [https://www.taximail.com](https://www.taximail.com)
  2. Navigate to the Integration section in your dashboard
  3. Generate your API Key and Secret Key
  4. Follow this guide for detailed steps:  
     [https://www.taximail.com/en/support/using-taximail/learn-about-api-integrations](https://www.taximail.com/en/support/using-taximail/learn-about-api-integrations)

  ### Adding Credentials in n8n:

  1. In n8n, create a new credential
  2. Select **"Taximail API"** as the credential type
  3. Enter your credentials:
     - **API Key**: Your Taximail API Key from the Integration section
     - **Secret Key**: Your Taximail Secret Key from the Integration section

  ---

  ## Compatibility

  - Minimum n8n version: `1.45.0` (with AI Agent Tool support)
  - Tested on: `1.45.0`, `1.46.0`
  - No known incompatibilities

  ---

  ## Usage

  This node is designed to be used with **AI Agents** in n8n with intelligent context handling.

  ### Email Operations:

  - **Send Email**: Requires recipient email, sender email, sender name, and either:
    - A `template_key` for using a pre-defined template, or
    - Custom subject and HTML content
  - Returns a `message_id` that can be used to check delivery status later

  ### SMS Operations:

  - **Send SMS**: Requires recipient phone number (MSISDN format with country code) and either:
    - A `template_key` for using a pre-defined template, or
    - Custom SMS text (keep under 160 characters)
  - Returns a `message_id` that can be used to check delivery status later

  ### Smart OTP Operations:

  - **Send SMS OTP**: Requires recipient phone number and a `template_key` (mandatory for OTP)
  - **Verify OTP**: The AI Agent automatically uses the `message_id` from recent OTP sending - no need to ask users for it again!
  - Returns verification status (success/failure)

  ### Status Operations:

  - **Check Status**: Requires a `message_id` from any previous send operation
  - Returns detailed delivery status information

  ### AI Agent Integration:

  When used with AI Agents, the node can:

  - **Smart Context Handling**: Automatically remembers `message_id` from sent OTPs
  - **Intelligent Verification**: Never asks users for `message_id` when it's already available in conversation
  - Detect message type based on context (email vs SMS)
  - Convert phone numbers to proper MSISDN format
  - Ask for missing required parameters
  - Track message delivery with the returned `message_id`

  ### Language support:

  The node works with any language supported by the AI Agent (Thai, English, etc.).

  ---

  ## AI Agent Configuration

  For optimal performance, configure your AI Agent with the following prompt structure:

  ### Recommended AI Agent Prompt:

  ```
  You are a Taximail Communication Assistant, an AI agent specialized in helping users send emails, SMS, and manage OTP communications through the Taximail service.

  ## IMPORTANT: Context Memory Rules

  - **ALWAYS remember information from the current conversation**
  - **When you send an OTP, AUTOMATICALLY save the Message ID for verification**
  - **If user provides an OTP code, use the MOST RECENT Message ID from the conversation**
  - **DO NOT ask for Message ID again if it was already provided in this conversation**

  ## Smart OTP Verification Flow:

  1. When sending OTP → Save Message ID automatically
  2. When user provides OTP code → Use the saved Message ID immediately
  3. Only ask for Message ID if no OTP was sent in this conversation

  ## Example Smart Flow:

  User: "Send OTP to +66891234567"
  You: _Send OTP_ → "OTP sent! Message ID: ABC123 saved for verification"
  User: "The code is 1234"
  You: _Verify immediately using ABC123_ → "Verifying code 1234..."

  Remember: **NEVER ask for information you already have from the conversation context!**
  ```

  ### Memory Configuration:

  Use **Simple Memory** node to store conversation context:

  - **Memory Key**: `taximail_context`
  - **Store**: Message IDs, phone numbers, and verification status
  - **Auto-retrieve**: Recent OTP Message IDs for verification

  ### Example Conversation Flow:

  **Smart Behavior (✅ Correct):**

  ```
  User: "Send OTP to +66891234567"
  Agent: [Sends OTP] "OTP sent successfully! Message ID: XYZ789 saved for verification"
  User: "The OTP code is 5678"
  Agent: [Auto-verifies with XYZ789] "Verifying code 5678 with saved Message ID..."
  ```

  **Poor Behavior (❌ Avoid):**

  ```
  User: "Send OTP to +66891234567"
  Agent: [Sends OTP] "OTP sent successfully! Message ID: XYZ789"
  User: "The OTP code is 5678"
  Agent: "Please provide the Message ID to verify" ← Wrong! Should use XYZ789
  ```

  ---

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Taximail API Key Creation Guide](https://www.taximail.com/en/support/using-taximail/learn-about-api-integrations)
  - [Taximail Platform Documentation](https://www.taximail.com/en/support/using-taximail)
  - [n8n AI Agent Documentation](https://docs.n8n.io/integrations/builtin/cluster-nodes/root-nodes/n8n-nodes-langchain.agent/)

ai_documentation_summary:
  {"purpose":"A community n8n node that enables AI agents to send transactional emails and SMS messages via Taximail API, verify OTP codes, and check message delivery status.","capabilities":["Send transactional emails with custom content or template keys","Send SMS messages with custom text or template keys","Send OTP verification codes via SMS","Verify OTP codes entered by users using saved message IDs","Check delivery status of previously sent messages","Automatic context management for AI agents to track message IDs","Phone number format conversion to MSISDN"],"authentication":"API Key and Secret Key required via n8n credential type 'Taximail API'","commonUseCases":["AI-driven customer communication workflows","Two-factor authentication (2FA) verification flows","Transactional email and SMS notifications","Automated OTP verification without manual user intervention"],"limitations":["SMS text must be under 160 characters","Requires n8n version 1.45.0 or higher","Requires manual setup of Taximail API credentials","AI agent configuration requires specific prompt structure for optimal context handling"],"relatedNodes":["n8n AI Agent node","n8n Simple Memory node","Taximail API node (if available)"]}


node_type: n8n-nodes-outplay.outplay
package_name: n8n-nodes-outplay
display_name: Outplay
description: Interact with Outplay API
category: CRM
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: pj_pratik
author_github_url: https://github.com/outplay-hq/
npm_package_name: n8n-nodes-outplay
npm_version: 0.2.15
community_fetched_at: 2026-04-16T09:43:36.286Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "prospect",
      "options": [
        {
          "name": "Prospect",
          "value": "prospect"
        },
        {
          "name": "Scheduler",
          "value": "scheduler"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "save",
      "options": [
        {
          "name": "Save Prospect",
          "value": "save",
          "action": "Save a prospect",
          "description": "Save a new prospect"
        },
        {
          "name": "Get Prospect",
          "value": "get",
          "action": "Get a prospect",
          "description": "Get a prospect by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "prospect"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a scheduler lead",
          "description": "Create a scheduler lead with meeting type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scheduler"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Save Prospect",
      "value": "save",
      "action": "Save a prospect",
      "description": "Save a new prospect",
      "resource": "prospect"
    },
    {
      "name": "Get Prospect",
      "value": "get",
      "action": "Get a prospect",
      "description": "Get a prospect by ID",
      "resource": "prospect"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a scheduler lead",
      "description": "Create a scheduler lead with meeting type",
      "resource": "scheduler"
    }
  ]

npm_readme:
  # n8n-nodes-outplay

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

  Outplay is a sales engagement platform that helps sales teams automate their outreach and manage prospects effectively.

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

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

  ## Installation

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

  ### Quick Install

  In your n8n instance, navigate to **Settings > Community Nodes** and search for `n8n-nodes-outplay`, then click install.

  Alternatively, install via npm in your n8n installation:

  ```bash
  npm install n8n-nodes-outplay
  ```

  ## Operations

  This package provides two nodes for interacting with Outplay:

  ### 1. Outplay Node (Actions)

  The Outplay node provides the following operations for managing prospects:

  #### Prospect Resource

  - **Save Prospect** - Create or update a prospect in Outplay
    - Required fields: Email, First Name, Last Name
    - Optional fields: Company, Designation, Phone, LinkedIn, Twitter, Facebook, City, State, Country, Timezone, Sequence Identifier
    - Support for custom fields and tags
    - Use this to add new prospects or update existing ones based on email

  - **Get Prospect** - Retrieve prospect details by ID
    - Required field: Prospect ID
    - Returns complete prospect information including all custom fields and tags

  ### 2. Outplay Trigger Node (Triggers)

  The Outplay Trigger node listens for real-time events from Outplay via webhooks:

  - **Mail Received** (Event ID: 4) - Triggers when an email is received from a prospect
  - **Prospect Created** (Event ID: 1) - Triggers when a new prospect is created in Outplay
  - **Prospect Updated** (Event ID: 3) - Triggers when a prospect's information is updated
  - **Prospect Opt-Out** (Event ID: 2) - Triggers when a prospect opts out of communications

  ## Credentials

  To use this node, you need an Outplay account with API access.

  ### Prerequisites

  1. Sign up for an [Outplay account](https://www.outplayhq.com/)
  2. Navigate to **Settings > API Settings** in your Outplay dashboard
  3. Generate your API credentials (Client ID and Client Secret)

  ### Authentication Setup

  This node uses API Key authentication with the following required fields:

  - **Location**: Your Outplay instance location (e.g., "US", "EU", "DEV")
    - This determines the API endpoint: `https://{location}-api.outplayhq.com/api/v1`
  - **Client ID**: Your Outplay API Client ID
  - **Client Secret**: Your Outplay API Client Secret

  The credentials are authenticated using custom headers (`X-CLIENT-SECRET`) and query parameters (`client_id`).

  ### Setting Up Credentials in n8n

  1. In your n8n workflow, click on the Outplay node
  2. Click on the **Credential to connect with** dropdown
  3. Click **Create New Credential**
  4. Enter your Outplay API credentials:
     - Location (e.g., "US", "EU")
     - Client ID
     - Client Secret
  5. Click **Save**

  ## Usage

  ### Example Workflow: Save a New Prospect

  1. Add an **Outplay** node to your workflow
  2. Select **Prospect** as the resource
  3. Select **Save Prospect** as the operation
  4. Fill in the required fields:
     - Email: `john.doe@example.com`
     - First Name: `John`
     - Last Name: `Doe`
  5. Optionally add additional fields like Company, Designation, Phone, etc.
  6. Add tags or custom fields as needed
  7. Execute the node to create the prospect in Outplay

  ### Example Workflow: Listen for New Prospects

  1. Add an **Outplay Trigger** node to your workflow
  2. Select **Prospect Created** as the event
  3. The trigger will automatically register a webhook with Outplay
  4. When a new prospect is created in Outplay, the workflow will be triggered
  5. Use subsequent nodes to process the prospect data (e.g., send notifications, update CRM, etc.)

  ### Example Workflow: Get Prospect Details

  1. Add an **Outplay** node to your workflow
  2. Select **Prospect** as the resource
  3. Select **Get Prospect** as the operation
  4. Enter the Prospect ID
  5. Execute the node to retrieve the prospect's complete information

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Tested with n8n version**: 1.119.1
  - **n8n API version**: 1

  ## Development

  This node was built using the official n8n-node-dev tool and follows all n8n community node guidelines:

  - ✅ No external dependencies
  - ✅ MIT License
  - ✅ TypeScript implementation
  - ✅ Passes n8n linter (`npm run lint`)
  - ✅ English language only
  - ✅ No environment variable or file system access
  - ✅ Proper error handling and validation

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Outplay API Documentation](https://support.outplay.ai/#/article/3749)
  * [Outplay Website](https://www.outplayhq.com/)
  * [GitHub Repository](https://github.com/outplay/n8n-nodes-outplay)

  ## License

  [MIT](LICENSE.md)

  ## Support

  For issues or questions:
  - Create an issue on [GitHub](https://github.com/outplay-hq/n8n-nodes-outplay/issues)
  - Contact Outplay support at [support.outplay.ai](https://support.outplay.ai/#/)

  ## Version History

  See [CHANGELOG.md](CHANGELOG.md) for version history and updates.

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Outplay sales engagement platform API to manage prospects and listen for real-time events.","capabilities":["Save/Create prospects with email, name, and optional custom fields","Update existing prospects","Retrieve prospect details by ID","Listen for Mail Received events","Listen for Prospect Created events","Listen for Prospect Updated events","Listen for Prospect Opt-Out events","Support for custom fields and tags","Webhook-based event triggers"],"authentication":"API Key (Client ID and Client Secret)","commonUseCases":["Automating prospect data entry into Outplay","Triggering workflows when new leads are created","Updating CRM records based on Outplay events","Retrieving prospect information for downstream processing"],"limitations":["Requires an Outplay account with API access","Limited to prospect management and event listening (no other Outplay features mentioned)"],"relatedNodes":["Outplay Trigger","Outplay (Actions)","Webhook","HTTP Request"]}


node_type: n8n-nodes-plura-ai.pluraAiAutomations
package_name: n8n-nodes-plura-ai
display_name: Plura.ai Automations
category: Community
development_style: declarative
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: roman-plura-ai
author_github_url: https://github.com/rvorontsov-plura/n8n-plura-ai.git
npm_package_name: n8n-nodes-plura-ai
npm_version: 1.0.22
community_fetched_at: 2026-04-16T09:43:36.287Z
description:
  Plura.ai helps teams build, deploy, and manage AI agents for calls, chat, and workflows. Use Plura.ai to automate outreach, route conversations, and sync data across your tools.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "lead",
      "options": [
        {
          "name": "Lead",
          "value": "lead"
        },
        {
          "name": "Call",
          "value": "call"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    }
  ]

npm_readme:
  # n8n-nodes-plura-ai

  n8n community node for [Plura.ai](https://plura.ai) - build, deploy, and manage AI agents for calls, chat, and workflows.

  ## Features

  **Trigger:**
  - Automation Triggered - receives webhook events when Plura.ai automation nodes execute

  **Actions:**
  - Get Lead by Phone / ID
  - Update Lead
  - Send Lead to Workflow
  - Add / Remove Tag
  - Initiate Call

  ## Installation

  ```bash
  npm install n8n-nodes-plura-ai
  ```

  Then restart n8n. The node will appear in the node panel.

  ## Credentials

  Enter your Plura.ai account email and password. Optionally provide an API key for direct API access.

  ## Links

  - [Plura.ai](https://plura.ai)
  - [npm package](https://www.npmjs.com/package/n8n-nodes-plura-ai)

  ## License

  MIT


node_type: n8n-nodes-umich-tdx.umichTdx
package_name: n8n-nodes-umich-tdx
display_name: UMich TDX
description: Connect to UMich TDX
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: cpuzzuol
author_github_url: https://github.com/umich-its-ai/
npm_package_name: n8n-nodes-umich-tdx
npm_version: 1.0.8
community_fetched_at: 2026-04-16T09:43:36.288Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "ticketSearch",
      "options": [
        {
          "name": "Ticket Search",
          "value": "ticketSearch"
        },
        {
          "name": "Ticket Creation",
          "value": "ticketCreation"
        },
        {
          "name": "Ticket Modification",
          "value": "ticketModification"
        },
        {
          "name": "User Lookup",
          "value": "userLookup"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTicketById",
      "options": [
        {
          "name": "Get Ticket by ID",
          "value": "getTicketById",
          "action": "Get a single TDX ticket",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "method": "GET"
            }
          },
          "description": "Get a single TDX ticket by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticketSearch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createTicket",
      "options": [
        {
          "name": "Create Ticket",
          "value": "createTicket",
          "action": "Create a new TDX ticket",
          "routing": {
            "send": {
              "preSend": [
                null,
                null,
                null
              ]
            },
            "request": {
              "method": "POST"
            }
          },
          "description": "Create a new TDX ticket"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticketCreation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "addCommentToTicket",
      "options": [
        {
          "name": "Add Comment to Ticket",
          "value": "addCommentToTicket",
          "action": "Add a comment to a TDX ticket",
          "routing": {
            "send": {
              "preSend": [
                null,
                null
              ]
            },
            "request": {
              "method": "POST"
            }
          },
          "description": "Add a comment to a TDX ticket"
        },
        {
          "name": "Add Ticket Contact",
          "value": "addTicketContact",
          "action": "Add a contact to a TDX ticket",
          "routing": {
            "send": {
              "preSend": [
                null,
                null
              ]
            },
            "request": {
              "method": "POST"
            }
          },
          "description": "Add a contact to a TDX ticket"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticketModification"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findUidByUniqname",
      "options": [
        {
          "name": "Find UID by Uniqname",
          "value": "findUidByUniqname",
          "action": "Find TDX UID by Uniqname",
          "routing": {
            "send": {
              "preSend": [
                null,
                null
              ]
            },
            "request": {
              "url": "=people/search",
              "method": "GET"
            }
          },
          "description": "Find a user's internal TDX UID by their U-M Uniqname"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "userLookup"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Ticket by ID",
      "value": "getTicketById",
      "action": "Get a single TDX ticket",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "method": "GET"
        }
      },
      "description": "Get a single TDX ticket by ID",
      "resource": "ticketSearch"
    },
    {
      "name": "Create Ticket",
      "value": "createTicket",
      "action": "Create a new TDX ticket",
      "routing": {
        "send": {
          "preSend": [
            null,
            null,
            null
          ]
        },
        "request": {
          "method": "POST"
        }
      },
      "description": "Create a new TDX ticket",
      "resource": "ticketCreation"
    },
    {
      "name": "Add Comment to Ticket",
      "value": "addCommentToTicket",
      "action": "Add a comment to a TDX ticket",
      "routing": {
        "send": {
          "preSend": [
            null,
            null
          ]
        },
        "request": {
          "method": "POST"
        }
      },
      "description": "Add a comment to a TDX ticket",
      "resource": "ticketModification"
    },
    {
      "name": "Add Ticket Contact",
      "value": "addTicketContact",
      "action": "Add a contact to a TDX ticket",
      "routing": {
        "send": {
          "preSend": [
            null,
            null
          ]
        },
        "request": {
          "method": "POST"
        }
      },
      "description": "Add a contact to a TDX ticket",
      "resource": "ticketModification"
    },
    {
      "name": "Find UID by Uniqname",
      "value": "findUidByUniqname",
      "action": "Find TDX UID by Uniqname",
      "routing": {
        "send": {
          "preSend": [
            null,
            null
          ]
        },
        "request": {
          "url": "=people/search",
          "method": "GET"
        }
      },
      "description": "Find a user's internal TDX UID by their U-M Uniqname",
      "resource": "userLookup"
    }
  ]

npm_readme:
  # n8n-nodes-umich-tdx

  This is an n8n community node that provides integration with the University of Michigan (UMich) TeamDynamix (TDX) API. It enables you to interact with UMich TDX services directly from your n8n workflows, including ticket creation, modification, search, and user lookup operations.

  The UMich TDX API is a service that allows programmatic access to TeamDynamix ticket management functionality for University of Michigan systems.

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

  ## Table of Contents

  [Installation](#installation)  
  [Credentials](#credentials)  
  [Resources and Operations](#resources-and-operations)  
  [Validation and Security](#validation-and-security)  
  [Test vs Production Environment](#test-vs-production-environment)  
  [Usage Examples](#usage-examples)  
  [Compatibility](#compatibility)  
  [Resources](#resources)  

  ## Installation

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

  In summary:
  1. Install the package in your n8n instance
  2. Restart n8n
  3. The "UMich TDX" node will be available in the node palette

  ## Credentials

  To use this node, you need to set up OAuth2 credentials with the U-M API Directory.

  ### Prerequisites

  1. **U-M API Directory Account**: You need access to the [U-M API Directory](https://dir.api.it.umich.edu/) or alternatively the [U-M Test API Directory](https://dir-test.api.it.umich.edu).
  2. **API Application**: Create an application in the U-M API Directory with the `tdxticket` scope
  3. **API Key and Secret**: Obtain your API Key (Client ID) and API Secret (Client Secret) from your application

  ### Setting Up Credentials

  1. In n8n, add a new credential of type "UMich TDX OAuth2 API"
  2. Configure the following fields:
     - **Environment**: Choose either "Test" or "Production" (see [Test vs Production Environment](#test-vs-production-environment) below)
     - **App ID**: Your TeamDynamix App ID (numeric value)
     - **API Key**: The "Key" value from your app in the U-M API Directory
     - **API Secret**: The "Secret" value from your app in the U-M API Directory
  3. Click "Connect my account" to authenticate
  4. The credentials will automatically handle OAuth2 token management

  ### Credential Fields

  | Field | Description | Required |
  |-------|-------------|----------|
  | Environment | Choose between Test or Production environment | Yes |
  | App ID | Your TeamDynamix App ID (numeric) | Yes |
  | API Key | Client ID from U-M API Directory | Yes |
  | API Secret | Client Secret from U-M API Directory | Yes |

  ## Resources and Operations

  The UMich TDX node supports four main resources, each with specific operations:

  ### 1. Ticket Search

  Search and retrieve ticket information from TDX.

  #### Operations

  - **Get Ticket by ID**: Retrieve a single TDX ticket by its ID
    - **Parameters**:
      - `Ticket ID` (required): The numeric ID of the ticket to retrieve

  ### 2. Ticket Creation

  Create new tickets in TDX.

  #### Operations

  - **Create Ticket**: Create a new TDX ticket
    - **Required Parameters**:
      - `Title`: The title of the ticket (max 500 characters)
      - `Body`: The description/body of the ticket (max 2000 characters)
      - `Requestor`: Email address of the requestor (must be a valid `@umich.edu` email)
      - `Service ID`: The service ID that the ticket is related to (numeric)
    - **Optional Parameters**:
      - `Responsible Group ID`: The responsible group ID to assign the ticket to (numeric)
    - **Additional Fields** (optional):
      - `Apply Defaults`: Whether to apply default values for unspecified properties (default: `true`)
      - `Enable Notify Reviewer`: Whether reviewer notifications should be enabled (default: `false`)
      - `Notify Requestor`: Whether the requestor should be notified on ticket creation (default: `false`)
      - `Notify Responsible`: Whether responsible resources should be notified (default: `false`)
      - `Allow Requestor Creation`: Whether to create a requestor if not found (default: `true`)
      - `Prefer Requestor Account and Priority`: Use requestor's default account/priority (default: `false`)
    - **Hidden Parameters** (automatically set):
      - `Source ID`: Set to `8` (Systems) by default
      - `Status ID`: Set to `0` by default

  ### 3. Ticket Modification

  Modify existing tickets in TDX.

  #### Operations

  - **Add Comment to Ticket**: Add a comment to an existing TDX ticket
    - **Parameters**:
      - `Ticket ID` (required): The ID of the ticket to modify (numeric)
      - `New Comment` (required): The comment text to add (max 2000 characters)

  - **Add Ticket Contact**: Add a contact (user) to a TDX ticket
    - **Parameters**:
      - `Ticket ID` (required): The ID of the ticket to modify (numeric)
      - `TDX User UID` (required): The internal TDX UID of the user to assign (alphanumeric)

  ### 4. User Lookup

  Look up user information in TDX.

  #### Operations

  - **Find UID by Uniqname**: Find a user's internal TDX UID by their U-M Uniqname
    - **Parameters**:
      - `U-M Uniqname` (required): The uniqname to search for (3-8 lowercase letters only)

  ## Validation and Security

  The node includes comprehensive validation measures to ensure data integrity and security:

  ### Input Validation

  1. **Email Validation**:
     - Must be a valid email format
     - **Must be a `@umich.edu` email address** (enforced)
     - Used for: Requestor Email

  2. **Uniqname Validation**:
     - Must be 3-8 characters long
     - Must contain only lowercase letters
     - Used for: User Lookup operations

  3. **UID Validation**:
     - Must be alphanumeric (letters, numbers, dots, hyphens, underscores)
     - Prevents path traversal attacks
     - Used for: Contact UID, Ticket ID

  4. **Numeric ID Validation**:
     - Must be numeric only
     - Used for: Service ID, Responsible Group ID, Status ID, Source ID, Ticket ID

  5. **Text Length Validation**:
     - **Title**: Maximum 500 characters
     - **Description/Body**: Maximum 2000 characters
     - **Comments**: Maximum 2000 characters
     - Prevents DoS attacks from excessively large payloads

  6. **Source ID Validation**:
     - Only allows specific source IDs
     - Currently only allows `8` (Systems)
     - Can be expanded in the future

  ### Security Features

  - **Path Traversal Protection**: URL path segments are validated to prevent directory traversal attacks (`../`, query strings, etc.)
  - **OAuth2 Authentication**: All requests use secure OAuth2 bearer token authentication
  - **Input Sanitization**: All user inputs are validated before being sent to the API
  - **Environment Isolation**: Test and production environments are completely separate

  ## Test vs Production Environment

  The node supports both Test and Production environments. The environment is selected when configuring credentials.

  ### Test Environment

  - **Base URL**: `https://gw-test.api.it.umich.edu/um/it`
  - **Token URL**: `https://gw-test.api.it.umich.edu/um/oauth2/token`
  - **Use Case**: Development, testing, and experimentation
  - **Data**: Separate from production data

  ### Production Environment

  - **Base URL**: `https://gw.api.it.umich.edu/um/it`
  - **Token URL**: `https://gw.api.it.umich.edu/um/oauth2/token`
  - **Use Case**: Live production workflows
  - **Data**: Real production TDX data

  ### Switching Environments

  To switch between environments:
  1. Create separate credentials for Test and Production
  2. Or update your existing credentials and change the "Environment" field
  3. The node will automatically use the correct API endpoints based on your credential configuration

  **Important**: Always test your workflows in the Test environment before using Production credentials.

  ## Usage Examples

  ### Example 1: Create a Ticket

  1. Add a "UMich TDX" node to your workflow
  2. Select Resource: "Ticket Creation"
  3. Select Operation: "Create Ticket"
  4. Fill in:
     - Title: "Example Ticket"
     - Body: "This is an example ticket created via n8n"
     - Requestor: "user@umich.edu"
     - Service ID: "31"
     - Responsible Group ID: "944" (optional)
  5. Configure additional fields as needed
  6. Execute the workflow

  ### Example 2: Look Up User and Add to Ticket

  1. First node: "User Lookup" → "Find UID by Uniqname"
     - Enter uniqname: "jdoe"
  2. Second node: "Ticket Modification" → "Add Ticket Contact"
     - Ticket ID: "12345"
     - TDX User UID: Use the UID from the first node's output

  ### Example 3: Get Ticket and Add Comment

  1. First node: "Ticket Search" → "Get Ticket by ID"
     - Ticket ID: "12345"
  2. Second node: "Ticket Modification" → "Add Comment to Ticket"
     - Ticket ID: "12345"
     - New Comment: "Status update from automated workflow"

  ## Compatibility

  - **Minimum n8n version**: Compatible with n8n workflow API version 1
  - **Node.js**: Compatible with Node.js versions supported by n8n
  - **TypeScript**: Built with TypeScript 5.9.2

  ## Resources

  ### Documentation

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [U-M API Directory - TDX Ticket API Documentation](https://dir.api.it.umich.edu/docs/tdxticket/1/overview)
  - [TeamDynamix API Documentation](https://solutions.teamdynamix.com/TDWebApi/Home/type/TeamDynamix.Api.Tickets.Ticket)
  - [U-M API Directory](https://dir.api.it.umich.edu/)

  ### Finding IDs

  - **Service ID**: Found in the JSON response when retrieving a ticket via "Ticket Search"
  - **Responsible Group ID**: In TDX, go to the create ticket form, search for groups in the Responsible field, click "View" under the profile, and find the "Group ID" in the upper-left portion of the page
  - **TDX User UID**: Found in the JSON response when using "User Lookup" → "Find UID by Uniqname"

  ### Support

  For issues, questions, or contributions, please refer to the repository:
  - **Repository**: [n8n-umich-tdx](https://github.com/cpuzzuol/n8n-umich-tdx)
  - **Author**: Chris Puzzuoli (cpuzzuol@umich.edu)

  ---

  **Note**: This node is designed specifically for University of Michigan TeamDynamix integration. All email addresses must be `@umich.edu` addresses, and you must have appropriate access to the U-M API Directory to use this node.

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with the University of Michigan TeamDynamix (TDX) API to manage ticket operations including creation, modification, search, and user lookup.","capabilities":["Create TDX tickets with customizable parameters","Modify existing tickets by adding comments","Modify existing tickets by adding contacts","Search and retrieve tickets by ID","Lookup user UIDs by U-M Uniqname","OAuth2 authentication with U-M API Directory","Support for both Test and Production environments"],"authentication":"OAuth2 (U-M API Directory with tdxticket scope)","commonUseCases":["Automating IT support ticket creation in UMich systems","Integrating UMich service requests into n8n workflows","Looking up user IDs for automated ticket assignments","Managing service tickets programmatically"],"limitations":["Requires specific U-M API Directory account access","Requestor email must be a valid @umich.edu address","Uniqname must be 3-8 lowercase letters only","Limited to UMich-specific email domains for requestors","Requires manual setup of API application with tdxticket scope"],"relatedNodes":["n8n-nodes-base.oauth2","n8n-nodes-base.httpRequest","n8n-nodes-base.email"]}


node_type: n8n-nodes-plura-ai.pluraAiAutomationsTrigger
package_name: n8n-nodes-plura-ai
display_name: Plura.ai Automations Trigger
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: roman-plura-ai
author_github_url: https://github.com/rvorontsov-plura/n8n-plura-ai.git
npm_package_name: n8n-nodes-plura-ai
npm_version: 1.0.22
community_fetched_at: 2026-04-16T09:43:36.289Z
description:
  Triggers when a Plura.ai automation node is executed. Plura.ai helps teams build, deploy, and manage AI agents for calls, chat, and workflows.

npm_readme:
  # n8n-nodes-plura-ai

  n8n community node for [Plura.ai](https://plura.ai) - build, deploy, and manage AI agents for calls, chat, and workflows.

  ## Features

  **Trigger:**
  - Automation Triggered - receives webhook events when Plura.ai automation nodes execute

  **Actions:**
  - Get Lead by Phone / ID
  - Update Lead
  - Send Lead to Workflow
  - Add / Remove Tag
  - Initiate Call

  ## Installation

  ```bash
  npm install n8n-nodes-plura-ai
  ```

  Then restart n8n. The node will appear in the node panel.

  ## Credentials

  Enter your Plura.ai account email and password. Optionally provide an API key for direct API access.

  ## Links

  - [Plura.ai](https://plura.ai)
  - [npm package](https://www.npmjs.com/package/n8n-nodes-plura-ai)

  ## License

  MIT


node_type: n8n-nodes-supadata.supadata
package_name: n8n-nodes-supadata
display_name: Supadata
description: Access Supadata API to fetch video metadata, transcripts, and web data from multiple platforms
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: rafalzawadzki
author_github_url: https://github.com/supadata-ai/
npm_package_name: n8n-nodes-supadata
npm_version: 0.5.1
community_fetched_at: 2026-04-16T09:43:36.289Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "media",
      "options": [
        {
          "name": "Media",
          "value": "media"
        },
        {
          "name": "YouTube",
          "value": "youtube"
        },
        {
          "name": "Web",
          "value": "webScrape"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMetadata",
      "options": [
        {
          "name": "Extract Structured Data",
          "value": "extractData",
          "action": "Extract structured data from a video",
          "description": "Extract structured data from a video using AI"
        },
        {
          "name": "Get Metadata",
          "value": "getMetadata",
          "action": "Get metadata",
          "description": "Get metadata of a video from multiple platforms (YouTube, TikTok, Instagram, Twitter)"
        },
        {
          "name": "Get Transcript",
          "value": "getTranscript",
          "action": "Get transcript",
          "description": "Get the transcript of a video from multiple platforms (YouTube, TikTok, etc.)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "media"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getChannel",
      "options": [
        {
          "name": "Get Channel",
          "value": "getChannel",
          "action": "Get channel details",
          "description": "Get details of a YouTube channel"
        },
        {
          "name": "Get Channel Videos",
          "value": "getChannelVideos",
          "action": "Get channel videos",
          "description": "Get videos of a YouTube channel"
        },
        {
          "name": "Get Playlist",
          "value": "getPlaylist",
          "action": "Get playlist details",
          "description": "Get details of a YouTube playlist"
        },
        {
          "name": "Get Playlist Videos",
          "value": "getPlaylistVideos",
          "action": "Get playlist videos",
          "description": "Get videos of a YouTube playlist"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "youtube"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrapeUrl",
      "options": [
        {
          "name": "Scrape URL",
          "value": "scrapeUrl",
          "action": "Scrape data from a URL",
          "description": "Scrape data from a URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webScrape"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Extract Structured Data",
      "value": "extractData",
      "action": "Extract structured data from a video",
      "description": "Extract structured data from a video using AI",
      "resource": "media"
    },
    {
      "name": "Get Metadata",
      "value": "getMetadata",
      "action": "Get metadata",
      "description": "Get metadata of a video from multiple platforms (YouTube, TikTok, Instagram, Twitter)",
      "resource": "media"
    },
    {
      "name": "Get Transcript",
      "value": "getTranscript",
      "action": "Get transcript",
      "description": "Get the transcript of a video from multiple platforms (YouTube, TikTok, etc.)",
      "resource": "media"
    },
    {
      "name": "Get Channel",
      "value": "getChannel",
      "action": "Get channel details",
      "description": "Get details of a YouTube channel",
      "resource": "youtube"
    },
    {
      "name": "Get Channel Videos",
      "value": "getChannelVideos",
      "action": "Get channel videos",
      "description": "Get videos of a YouTube channel",
      "resource": "youtube"
    },
    {
      "name": "Get Playlist",
      "value": "getPlaylist",
      "action": "Get playlist details",
      "description": "Get details of a YouTube playlist",
      "resource": "youtube"
    },
    {
      "name": "Get Playlist Videos",
      "value": "getPlaylistVideos",
      "action": "Get playlist videos",
      "description": "Get videos of a YouTube playlist",
      "resource": "youtube"
    },
    {
      "name": "Scrape URL",
      "value": "scrapeUrl",
      "action": "Scrape data from a URL",
      "description": "Scrape data from a URL",
      "resource": "webScrape"
    }
  ]

npm_readme:
  # n8n-nodes-supadata

  This is an n8n community node that allows you to integrate Supadata into your n8n workflows.

  Supadata is a service that provides tools for extracting and analyzing data from YouTube videos, channels, and web pages. With this node, you can easily retrieve video details, transcripts, channel information, and scrape web content directly within your n8n workflows.

  Supadata Website: [https://supadata.ai](https://supadata.ai)

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

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

  ## Installation

  Community Node Installation

  - Go to Settings > Community Nodes
  - Select Install
  - Enter n8n-nodes-supadata in the input field
  - Click Install

  Manual Installation

  - To install this node manually

  ```bash
  npm install n8n-nodes-supadata
  ```

  ## Operations

  - Get Video Metadata: Retrieve details about a YouTube video.
  - Get Transcript: Fetch the transcript of a YouTube video.
  - Get Channel Metadata: Retrieve information about a YouTube channel.
  - Get Channel Videos: Fetch a list of videos from a specific YouTube channel.
  - Get Playlist Metadata: Retrieve information about a YouTube playlist.
  - Get Playlist Videos: Fetch a list of videos from a specific YouTube playlist.
  - Get URL Content: Extract data from a web page.

  ## Credentials

  To use this node, you need to authenticate with Supadata using an API key. Follow these steps:

  - Sign up for an account with Supadata and obtain your API key.
  - Add the API key to the Supadata node in n8n credentials.

  ## Usage

  1. Create a new workflow in n8n.
  2. Add a Supadata node to your workflow.
  3. Authenticate using your Supadata API key via n8n’s credentials interface.
  4. Select the action you want to perform, and enter the required fields.
  5. Execute the node.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Supadata API Documentation](https://docs.supadata.ai)

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the Supadata API to extract and analyze data from YouTube videos, channels, playlists, and web pages within automation workflows.","capabilities":["Retrieve YouTube video metadata","Fetch YouTube video transcripts","Retrieve YouTube channel metadata","Fetch video lists from YouTube channels","Retrieve YouTube playlist metadata","Fetch video lists from YouTube playlists","Scrape and extract data from web pages"],"authentication":"API key required","commonUseCases":["Automating YouTube content analysis and research","Extracting video transcripts for content processing","Monitoring channel or playlist activity","Web scraping for data aggregation"],"limitations":[],"relatedNodes":["n8n-nodes-youtube","n8n-nodes-web","n8n-nodes-http-request"]}


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

updated_at: 2026-04-16 09:43:36
author_name: bookoly
author_github_url: https://github.com/bookoly/n8n-node.git
npm_package_name: n8n-nodes-bookoly
npm_version: 1.0.19
community_fetched_at: 2026-04-16T09:43:36.290Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "sound",
      "options": [
        {
          "name": "Sound",
          "value": "sound"
        },
        {
          "name": "Speech",
          "value": "speech"
        },
        {
          "name": "Speech Dialogue",
          "value": "speech_dialogue"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Transcription",
          "value": "transcript"
        },
        {
          "name": "Video",
          "value": "video"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "combineSounds",
      "options": [
        {
          "name": "Combine Sounds",
          "value": "combineSounds",
          "action": "Combine sounds",
          "description": "Merge multiple sound files into a single seamless audio track"
        },
        {
          "name": "Get a Specific Sound",
          "value": "getSound",
          "action": "Get a sound",
          "description": "Fetches sound data from the API using the sound ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sound"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createSpeech",
      "options": [
        {
          "name": "Create a Speech Synthesis",
          "value": "createSpeech",
          "action": "Create a speech synthesis",
          "description": "Synthesizes a text into speech"
        },
        {
          "name": "Get a Specific Speech",
          "value": "getSpeech",
          "action": "Get a speech",
          "description": "Fetches speech data from the API using the speech ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "speech"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createSpeechDialogue",
      "options": [
        {
          "name": "Create a Speech Dialogue",
          "value": "createSpeechDialogue",
          "action": "Create a speech dialogue",
          "description": "Generate a conversation between multiple AI voices from text"
        },
        {
          "name": "Get a Specific Speech Dialogue",
          "value": "getSpeechDialogue",
          "action": "Get a speech dialogue",
          "description": "Fetches speech dialogue data from the API using the speech dialogue ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "speech_dialogue"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateSubtitleFile",
      "options": [
        {
          "name": "Generate a Subtitle File",
          "value": "generateSubtitleFile",
          "action": "Generate a subtitle file",
          "description": "Generate subtitle files in multiple formats from a video or audio URL"
        },
        {
          "name": "Get a Specific Subtitle File",
          "value": "getSubtitleFile",
          "action": "Get a subtitle file",
          "description": "Fetches subtitle file data from the API using the subtitle file ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createTranscript",
      "options": [
        {
          "name": "Transcribe Audio or Video",
          "value": "createTranscript",
          "action": "Transcribe audio or video",
          "description": "Transcribe your audio or video files into clear, accurate text with timestamps"
        },
        {
          "name": "Get a Specific Transcription",
          "value": "getTranscript",
          "action": "Get a transcription",
          "description": "Fetches transcript data from the API using the transcript ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "transcript"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateVideo",
      "options": [
        {
          "name": "Add Audio to a Video",
          "value": "addAudioToVideo",
          "action": "Add audio to a video",
          "description": "Seamlessly add audio tracks to your video"
        },
        {
          "name": "Add Audio with Subtitles to a Video",
          "value": "addAudioWithSubtitlesToVideo",
          "action": "Add audio with subtitles to a video",
          "description": "Adds audio to your video and automatically generates and adds subtitles from the audio"
        },
        {
          "name": "Add Subtitles to a Video",
          "value": "addSubtitlesToVideo",
          "action": "Add subtitles to a video",
          "description": "Automatically generates and adds subtitles to your video"
        },
        {
          "name": "Add Subtitles to a Video From a File",
          "value": "addSubtitlesToVideoFromFile",
          "action": "Add subtitles to a video from a file",
          "description": "Automatically generates and adds subtitles to your video"
        },
        {
          "name": "Add Watermark to a Video",
          "value": "addWatermarkToVideo",
          "action": "Add a watermark to a video",
          "description": "Places an image as a watermark on the video at specified coordinates"
        },
        {
          "name": "Blur a Video",
          "value": "blurVideo",
          "action": "Blur a video",
          "description": "Apply a blur effect to a specific area of a video"
        },
        {
          "name": "Clip a Video",
          "value": "clipVideo",
          "action": "Clip a video",
          "description": "Extract a clip from a video using a start time and duration"
        },
        {
          "name": "Create a Slideshow",
          "value": "createSlideshow",
          "action": "Create a slideshow",
          "description": "Creates a video slideshow from images, videos, or a combination of both"
        },
        {
          "name": "Crop a Video",
          "value": "cropVideo",
          "action": "Crop a video",
          "description": "Crops the video to a specific area using custom coordinates and dimensions"
        },
        {
          "name": "Extract Audio From a Video",
          "value": "extractAudioFromVideo",
          "action": "Extract audio from a video",
          "description": "Separates and saves the audio track from a video file"
        },
        {
          "name": "Frame a Video",
          "value": "frameVideo",
          "action": "Frame a video",
          "description": "Extract a single frame from a video at a specified timestamp and save it as an image"
        },
        {
          "name": "Generate a Video",
          "value": "generateVideo",
          "action": "Generate a video",
          "description": "Create a video from images and video clips, generate and add a voice-over with automated subtitles, and integrate background music"
        },
        {
          "name": "Get a Specific Video",
          "value": "getVideo",
          "action": "Get a video",
          "description": "Fetches video data from the API using the video ID"
        },
        {
          "name": "Mute a Video",
          "value": "muteVideo",
          "action": "Mute a video",
          "description": "Mute the video's audio by reducing the volume to zero"
        },
        {
          "name": "Overlay Videos",
          "value": "overlayVideos",
          "action": "Overlay videos",
          "description": "Overlay one video on top of another at a specified position"
        },
        {
          "name": "Rotate a Video",
          "value": "rotateVideo",
          "action": "Rotate a video",
          "description": "Rotate a video by 90, 180, or 270 degrees clockwise"
        },
        {
          "name": "Scale a Video",
          "value": "scaleVideo",
          "action": "Scale a video",
          "description": "Scale a video to different dimensions with various scaling modes"
        },
        {
          "name": "Split a Video Into Scenes",
          "value": "splitVideoIntoScenes",
          "action": "Split a video into scenes",
          "description": "Automatically divide a video into multiple segments based on scene detection or fixed intervals"
        },
        {
          "name": "Stack Videos",
          "value": "stackVideos",
          "action": "Stack videos",
          "description": "Stack two videos together horizontally or vertically"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Combine Sounds",
      "value": "combineSounds",
      "action": "Combine sounds",
      "description": "Merge multiple sound files into a single seamless audio track",
      "resource": "sound"
    },
    {
      "name": "Get a Specific Sound",
      "value": "getSound",
      "action": "Get a sound",
      "description": "Fetches sound data from the API using the sound ID",
      "resource": "sound"
    },
    {
      "name": "Create a Speech Synthesis",
      "value": "createSpeech",
      "action": "Create a speech synthesis",
      "description": "Synthesizes a text into speech",
      "resource": "speech"
    },
    {
      "name": "Get a Specific Speech",
      "value": "getSpeech",
      "action": "Get a speech",
      "description": "Fetches speech data from the API using the speech ID",
      "resource": "speech"
    },
    {
      "name": "Create a Speech Dialogue",
      "value": "createSpeechDialogue",
      "action": "Create a speech dialogue",
      "description": "Generate a conversation between multiple AI voices from text",
      "resource": "speech_dialogue"
    },
    {
      "name": "Get a Specific Speech Dialogue",
      "value": "getSpeechDialogue",
      "action": "Get a speech dialogue",
      "description": "Fetches speech dialogue data from the API using the speech dialogue ID",
      "resource": "speech_dialogue"
    },
    {
      "name": "Generate a Subtitle File",
      "value": "generateSubtitleFile",
      "action": "Generate a subtitle file",
      "description": "Generate subtitle files in multiple formats from a video or audio URL",
      "resource": "file"
    },
    {
      "name": "Get a Specific Subtitle File",
      "value": "getSubtitleFile",
      "action": "Get a subtitle file",
      "description": "Fetches subtitle file data from the API using the subtitle file ID",
      "resource": "file"
    },
    {
      "name": "Transcribe Audio or Video",
      "value": "createTranscript",
      "action": "Transcribe audio or video",
      "description": "Transcribe your audio or video files into clear, accurate text with timestamps",
      "resource": "transcript"
    },
    {
      "name": "Get a Specific Transcription",
      "value": "getTranscript",
      "action": "Get a transcription",
      "description": "Fetches transcript data from the API using the transcript ID",
      "resource": "transcript"
    },
    {
      "name": "Add Audio to a Video",
      "value": "addAudioToVideo",
      "action": "Add audio to a video",
      "description": "Seamlessly add audio tracks to your video",
      "resource": "video"
    },
    {
      "name": "Add Audio with Subtitles to a Video",
      "value": "addAudioWithSubtitlesToVideo",
      "action": "Add audio with subtitles to a video",
      "description": "Adds audio to your video and automatically generates and adds subtitles from the audio",
      "resource": "video"
    },
    {
      "name": "Add Subtitles to a Video",
      "value": "addSubtitlesToVideo",
      "action": "Add subtitles to a video",
      "description": "Automatically generates and adds subtitles to your video",
      "resource": "video"
    },
    {
      "name": "Add Subtitles to a Video From a File",
      "value": "addSubtitlesToVideoFromFile",
      "action": "Add subtitles to a video from a file",
      "description": "Automatically generates and adds subtitles to your video",
      "resource": "video"
    },
    {
      "name": "Add Watermark to a Video",
      "value": "addWatermarkToVideo",
      "action": "Add a watermark to a video",
      "description": "Places an image as a watermark on the video at specified coordinates",
      "resource": "video"
    },
    {
      "name": "Blur a Video",
      "value": "blurVideo",
      "action": "Blur a video",
      "description": "Apply a blur effect to a specific area of a video",
      "resource": "video"
    },
    {
      "name": "Clip a Video",
      "value": "clipVideo",
      "action": "Clip a video",
      "description": "Extract a clip from a video using a start time and duration",
      "resource": "video"
    },
    {
      "name": "Create a Slideshow",
      "value": "createSlideshow",
      "action": "Create a slideshow",
      "description": "Creates a video slideshow from images, videos, or a combination of both",
      "resource": "video"
    },
    {
      "name": "Crop a Video",
      "value": "cropVideo",
      "action": "Crop a video",
      "description": "Crops the video to a specific area using custom coordinates and dimensions",
      "resource": "video"
    },
    {
      "name": "Extract Audio From a Video",
      "value": "extractAudioFromVideo",
      "action": "Extract audio from a video",
      "description": "Separates and saves the audio track from a video file",
      "resource": "video"
    },
    {
      "name": "Frame a Video",
      "value": "frameVideo",
      "action": "Frame a video",
      "description": "Extract a single frame from a video at a specified timestamp and save it as an image",
      "resource": "video"
    },
    {
      "name": "Generate a Video",
      "value": "generateVideo",
      "action": "Generate a video",
      "description": "Create a video from images and video clips, generate and add a voice-over with automated subtitles, and integrate background music",
      "resource": "video"
    },
    {
      "name": "Get a Specific Video",
      "value": "getVideo",
      "action": "Get a video",
      "description": "Fetches video data from the API using the video ID",
      "resource": "video"
    },
    {
      "name": "Mute a Video",
      "value": "muteVideo",
      "action": "Mute a video",
      "description": "Mute the video's audio by reducing the volume to zero",
      "resource": "video"
    },
    {
      "name": "Overlay Videos",
      "value": "overlayVideos",
      "action": "Overlay videos",
      "description": "Overlay one video on top of another at a specified position",
      "resource": "video"
    },
    {
      "name": "Rotate a Video",
      "value": "rotateVideo",
      "action": "Rotate a video",
      "description": "Rotate a video by 90, 180, or 270 degrees clockwise",
      "resource": "video"
    },
    {
      "name": "Scale a Video",
      "value": "scaleVideo",
      "action": "Scale a video",
      "description": "Scale a video to different dimensions with various scaling modes",
      "resource": "video"
    },
    {
      "name": "Split a Video Into Scenes",
      "value": "splitVideoIntoScenes",
      "action": "Split a video into scenes",
      "description": "Automatically divide a video into multiple segments based on scene detection or fixed intervals",
      "resource": "video"
    },
    {
      "name": "Stack Videos",
      "value": "stackVideos",
      "action": "Stack videos",
      "description": "Stack two videos together horizontally or vertically",
      "resource": "video"
    }
  ]

npm_readme:
  # n8n-nodes-bookoly

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

  bookoly is a service that makes it easy to create, edit, and process your content automatically.
  With bookoly, you can generate slideshows, add subtitles, create voice-overs, split videos into multiple scenes, and 
  a lot more — all through a simple 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

  ### 🎞️ Video

  * **Add Audio to a Video** – Add background music or a voice-over to a video.
  * **Add Audio with Subtitles to a Video** – Add a voice-over and automatically generate and add subtitles from the audio.
  * **Add Subtitles to a Video** – Automatically generate subtitles from the video’s audio and insert them into the file.
  * **Add Subtitles to a Video from a File** – Import and embed an external subtitle file (e.g. `.srt`, `.ass`) into a video.
  * **Add Watermark to a Video** – Overlay an image or text watermark onto a video.
  * **Blur a Video** – Apply a blur effect to the entire video or selected regions.
  * **Clip a Video** – Extract a specific section of a video by start time and duration.
  * **Create a Slideshow** – Generate a slideshow video from multiple images and video clips.
  * **Crop a Video** – Trim away unwanted edges of a video by defining crop dimensions.
  * **Extract Audio from a Video** – Save the audio track of a video as a separate sound file.
  * **Frame a Video** – Capture a single image from a video at the desired timestamp.
  * **Generate a Video** – Create a video from images and video clips with a voice-over and subtitles.
  * **Mute a Video** – Set the volume of a video to 0%.
  * **Overlay Videos** – Overlay one video on top of another at a specified position with customizable scale and offset.
  * **Rotate a Video** – Rotate a video by 90, 180, or 270 degrees.
  * **Scale a Video** – Scale videos to different dimensions using various scaling modes (fit, fill, exact, etc.).
  * **Split a Video into Scenes** – Split a video by automatic scene detection, fixed time intervals, or equal segments.
  * **Stack Videos** – Stack two videos together horizontally or vertically.

  ### 🎙️️ Speech

  * **Create a Speech Synthesis** – Convert text into a natural-sounding speech with AI.

  ### 🗣️ Speech Dialogue

  * **Create a Speech Dialogue** – Generate a conversation between multiple AI voices.

  ### 📜 Transcript

  * **Transcribe Media** – Automatically transcribe the audio from a video or audio file.

  ### 🎼 Sound

  * **Combine Sounds** – Merge two or more audio files into a single track.

  ### 📂 File

  * **Generate a Subtitle File** – Create a subtitle file (e.g. `.srt`, `.vtt`) from a video or audio file.

  ## Credentials

  To use the bookoly node, you need an API token:

  1. Sign up for an account at [bookoly](https://bookoly.com).
  2. Open your profile from the left menu and scroll down to the API Tokens section.
  3. Create a new API token. 
     * Enable all permissions.
     * (Optional) Set an expiration date.
  4. Copy the token and store it in a safe place.
  5. In n8n, create new credentials for bookoly and paste your token.

  ## Compatibility

  * Minimum n8n version: 1.106.3
  * Tested with: n8n 1.106.3+
  * Known issues: None at this time.

  ## Usage

  Once installed, you can add the bookoly node to your workflow to automate content generation and processing.

  📺 To see all examples in action check out the full bookoly YouTube tutorial [playlist](https://www.youtube.com/playlist?list=PLaZXufV_18nEQ_P79pD3ccuR8xQwjcJqu)

  If you’re new to n8n, check the [Try it out](https://docs.n8n.io/try-it-out/) guide

  ## Resources

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

  ## Version history

  1.0.19
  * Added 'Stack Videos' operation to stack two videos horizontally or vertically.
  * Added 'Overlay Videos' operation to overlay one video on top of another with position, scale, and offset options.
  * Added 'Scale a Video' operation with multiple scaling modes (scale to width/height, fit, fill, exact, keep aspect ratio).
  * Removed 'Create a Sound Effect' operation.

  1.0.18
  * Add the voice option 'None' for speech synthesis

  1.0.17
  * Enhanced speech synthesis with 38 premium AI voices for more natural and diverse text-to-speech output.

  1.0.16
  * Fix type for subtitle text case

  1.0.15
  * Performance improvements and bug fixes

  1.0.14
  * Replace hardcoded default values with enums

  1.0.13
  * Minor performance improvements

  1.0.12
  * Minor performance improvements and bug fixes 

  1.0.11
  * Improved the 'Generate a Video' node for more flexibility.
  * Added punctuation and text case options for subtitles.
  * Added mute option for scenes.
  * Added transitions that can be used between scenes.

  1.0.10
  * Handle errors with continueOnFail

  1.0.9
  * Added 'Create a speech dialogue' action.
  * Updated 'Combine sounds' action, to expect JSON input for Audio.

  1.0.8
  * Update youtube playlist url in readme.

  1.0.7
  * Refine video clip parameters for clarity.

  1.0.6
  * Change scenes type from fixedCollection to json.

  1.0.5
  * Make the bookoly node usable as a tool.

  1.0.4
  * Initial release with support for all bookoly operations.

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of video, audio, and speech processing tasks by interfacing with the Bookoly API.","capabilities":["Add audio or voice-over to videos","Generate and add subtitles to videos","Create slideshows from images and video clips","Extract audio from videos","Perform speech synthesis (text-to-speech)","Generate speech dialogues with multiple AI voices","Transcribe audio from media files","Combine and edit audio files","Apply video effects (blur, watermark, rotate, scale)","Split videos into scenes"],"authentication":"API token required","commonUseCases":["Automated video editing for social media content","Creating voice-over videos from text","Generating subtitles for video content","Producing slideshow presentations","Audio file merging and processing"],"limitations":["Requires a paid account with API token from Bookoly","Some features may require premium voices or permissions"],"relatedNodes":["n8n-nodes-core.code","n8n-nodes-core.httpRequest","n8n-nodes-core.waitUntil"]}


node_type: n8n-nodes-raia.raia
package_name: n8n-nodes-raia
display_name: raia
description: Interact with the official raia 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: richswier
author_github_url: https://github.com/raia-ai/n8n-node.git
npm_package_name: n8n-nodes-raia
npm_version: 1.0.12
community_fetched_at: 2026-04-16T09:43:36.291Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  ![Banner image](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  # 📡 n8n-nodes-raia

  **Custom n8n Node** to interact with the **Raia** platform for managing AI-powered and human-led conversations via SMS, Email, or Voice.

  ## 🚀 Features

  This node allows you to:
  - Start new conversations (SMS, Email)
  - Chat or prompt an agent
  - Use Raia's platform in a single, unified node

  ## 🔧 Node Actions

  | Action                     | Description                                                  |
  |---------------------------|--------------------------------------------------------------|
  | Start SMS Conversation    | Initiate a conversation via SMS                              |
  | Start Email Conversation  | Initiate a conversation via Email                            |
  | Prompt an Agent           | Send a prompt to an agent                                    |

  ## 🧩 Node Parameters

  ### Common Parameters (used in most actions)
  - **First Name**
  - **Last Name**
  - **Context** (e.g., "Support")
  - **Source** (e.g., "crm")
  - **fkId**
  - **fkUserId**

  ### Channel-Specific Parameters

  #### SMS
  - **Phone Number**
  - **SMS Introduction** (for SMS)

  #### Email
  - **Email Address**
  - **Email Subject**
  - **Email Introduction**
  - **Include Signature in Email** (boolean)

  ### Prompt Agent
  - **Prompt**

  ```json
  {
    "conversationId": "string",
    "messageId": "string",
    "userId": "string",
    "message": "string",
    "timestamp": "ISODate"
  }
  ```

  ## 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-raia`
  5. Click **Install**.

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

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the Raia API to manage AI-powered and human-led conversations across SMS, Email, and Voice channels.","capabilities":["Start new SMS conversations","Start new Email conversations","Send prompts to agents","Retrieve conversation details (conversationId, messageId, userId, message, timestamp)","Manage contact context via first name, last name, and source"],"authentication":"None (API credentials handled via node configuration)","commonUseCases":["Automated customer support via SMS","Email-based agent interactions","Integrating Raia's unified conversation platform into n8n workflows"],"limitations":[],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.email","n8n-nodes-core.sms"]}


node_type: @restream/n8n-nodes-restream.restream
package_name: @restream/n8n-nodes-restream
display_name: Restream
description: Access Restream Events, Recordings, and Clips using the Restream API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: mturusov
author_github_url: https://github.com/restreamio/n8n-nodes-restream.git
npm_package_name: @restream/n8n-nodes-restream
npm_version: 0.2.0
community_fetched_at: 2026-04-16T09:43:36.292Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "clipProject",
      "options": [
        {
          "name": "Event",
          "value": "event"
        },
        {
          "name": "Event Recording",
          "value": "eventRecording"
        },
        {
          "name": "Clip Project",
          "value": "clipProject"
        },
        {
          "name": "Clip",
          "value": "clip"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getHistory",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an event",
          "routing": {
            "request": {
              "url": "=/v2/user/events/{{$parameter.eventId}}",
              "method": "GET"
            }
          },
          "description": "Get a single event by ID"
        },
        {
          "name": "Get History",
          "value": "getHistory",
          "action": "Get event history",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "items"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/user/events/history",
              "method": "GET"
            }
          },
          "description": "Get a list of finished and missed events"
        },
        {
          "name": "Get In Progress",
          "value": "getInProgress",
          "action": "Get in progress events",
          "routing": {
            "request": {
              "url": "/v2/user/events/in-progress",
              "method": "GET"
            }
          },
          "description": "Get a list of currently in-progress events"
        },
        {
          "name": "Get Upcoming",
          "value": "getUpcoming",
          "action": "Get upcoming events",
          "routing": {
            "request": {
              "url": "/v2/user/events/upcoming",
              "method": "GET"
            }
          },
          "description": "Get a list of upcoming events"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get recordings for an event",
          "routing": {
            "request": {
              "url": "=/v2/user/events/{{$parameter.eventId}}/recordings",
              "method": "GET"
            }
          },
          "description": "Get many recordings (video and audio) for a specific event"
        },
        {
          "name": "Get Download URL",
          "value": "getDownloadUrl",
          "action": "Get a download URL for a recording",
          "routing": {
            "request": {
              "url": "=/v2/user/events/{{$parameter.eventId}}/recordings/download-url",
              "method": "POST"
            }
          },
          "description": "Generate a temporary download URL for a specific recording file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "eventRecording"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many clip projects",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "projects"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/user/clips/projects",
              "method": "GET"
            }
          },
          "description": "Get a list of many clip projects for the authenticated user"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a clip project",
          "routing": {
            "request": {
              "url": "=/v2/user/clips/projects/{{$parameter.projectId}}",
              "method": "GET"
            }
          },
          "description": "Get a single clip project with its clips and posted clips"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "clipProject"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "download",
      "options": [
        {
          "name": "Get Download URL",
          "value": "download",
          "action": "Get a download URL for a clip",
          "routing": {
            "request": {
              "url": "=/v2/user/clips/{{$parameter.clipId}}/download",
              "method": "GET"
            }
          },
          "description": "Get a temporary download URL for a specific clip"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "clip"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get an event",
      "routing": {
        "request": {
          "url": "=/v2/user/events/{{$parameter.eventId}}",
          "method": "GET"
        }
      },
      "description": "Get a single event by ID",
      "resource": "event"
    },
    {
      "name": "Get History",
      "value": "getHistory",
      "action": "Get event history",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "items"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/user/events/history",
          "method": "GET"
        }
      },
      "description": "Get a list of finished and missed events",
      "resource": "event"
    },
    {
      "name": "Get In Progress",
      "value": "getInProgress",
      "action": "Get in progress events",
      "routing": {
        "request": {
          "url": "/v2/user/events/in-progress",
          "method": "GET"
        }
      },
      "description": "Get a list of currently in-progress events",
      "resource": "event"
    },
    {
      "name": "Get Upcoming",
      "value": "getUpcoming",
      "action": "Get upcoming events",
      "routing": {
        "request": {
          "url": "/v2/user/events/upcoming",
          "method": "GET"
        }
      },
      "description": "Get a list of upcoming events",
      "resource": "event"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get recordings for an event",
      "routing": {
        "request": {
          "url": "=/v2/user/events/{{$parameter.eventId}}/recordings",
          "method": "GET"
        }
      },
      "description": "Get many recordings (video and audio) for a specific event",
      "resource": "eventRecording"
    },
    {
      "name": "Get Download URL",
      "value": "getDownloadUrl",
      "action": "Get a download URL for a recording",
      "routing": {
        "request": {
          "url": "=/v2/user/events/{{$parameter.eventId}}/recordings/download-url",
          "method": "POST"
        }
      },
      "description": "Generate a temporary download URL for a specific recording file",
      "resource": "eventRecording"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many clip projects",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "projects"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/user/clips/projects",
          "method": "GET"
        }
      },
      "description": "Get a list of many clip projects for the authenticated user",
      "resource": "clipProject"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a clip project",
      "routing": {
        "request": {
          "url": "=/v2/user/clips/projects/{{$parameter.projectId}}",
          "method": "GET"
        }
      },
      "description": "Get a single clip project with its clips and posted clips",
      "resource": "clipProject"
    },
    {
      "name": "Get Download URL",
      "value": "download",
      "action": "Get a download URL for a clip",
      "routing": {
        "request": {
          "url": "=/v2/user/clips/{{$parameter.clipId}}/download",
          "method": "GET"
        }
      },
      "description": "Get a temporary download URL for a specific clip",
      "resource": "clip"
    }
  ]

npm_readme:
  # @restream/n8n-nodes-restream

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

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

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

  ## Installation

  Go to your **n8n** > **Settings** > **Community nodes** and install:

  ```
  @restream/n8n-nodes-restream
  ```

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

  ## Operations

  - Event
      - Get an event by ID
      - Get event history (finished and missed events)
      - Get in-progress events
      - Get upcoming events
  - Event Recording
      - Get recordings for an event
      - Get a download URL for a recording
  - Clip Project
      - Get many clip projects
      - Get a clip project
  - Clip
      - Get a download URL for a clip

  ## Credentials

  This node uses OAuth2 authentication.

  1. Go to the [Restream Developer Portal](https://developers.restream.io/) and create a new application.
  2. Copy the **Client ID** and **Client Secret** into your n8n Restream OAuth2 credential.
  3. From n8n, copy the **OAuth Redirect URL** and paste it into your Restream application's redirect URI settings.

  ## Compatibility

  Tested with n8n@2.7.4.

  ## Upgrading

  ### v0.2.0 — Event and Recording endpoints

  This version adds new OAuth2 scopes (`stream.default.read` and `storage.default.read`) required for the new Event and Event Recording operations. **Existing users must reconnect their Restream OAuth2 credentials** to grant these new permissions:

  1. Open your n8n credentials page.
  2. Find your Restream OAuth2 credential.
  3. Click **Reconnect** to re-authorize with the updated scopes.

  Existing Clip and Clip Project operations are unaffected and will continue to work without reconnecting.

  ## Resources

  * [Restream API documentation](https://developers.restream.io/docs)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of Restream platform features by allowing access to events, recordings, clips, and clip projects via the Restream API.","capabilities":["Get an event by ID","Get event history (finished and missed events)","Get in-progress events","Get upcoming events","Get recordings for an event","Get a download URL for a recording","Get many clip projects","Get a clip project","Get a download URL for a clip"],"authentication":"OAuth2 (requires Client ID, Client Secret, and OAuth Redirect URL configuration)","commonUseCases":["Automating event monitoring and retrieval","Scheduling and managing live streaming clips","Automating content archiving and download workflows","Integrating Restream data into broader n8n automation pipelines"],"limitations":["Requires reconnection of OAuth2 credentials after upgrading to v0.2.0 to grant new scopes","Limited to read-only operations (no creation, deletion, or modification of events/clips)"],"relatedNodes":["n8n HTTP Request node","n8n Webhook node","n8n Code node"]}


node_type: n8n-nodes-klicktipp.klicktipp
package_name: n8n-nodes-klicktipp
display_name: KlickTipp
description: Interact with KlickTipp API
category: Community
development_style: declarative
version: 1,2,3
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: mchudesnov
author_github_url: https://github.com/klicktipp/n8n-community-node-klicktipp.git
npm_package_name: n8n-nodes-klicktipp
npm_version: 1.0.39
community_fetched_at: 2026-04-16T09:43:36.293Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "tag",
      "options": [
        {
          "name": "Contact",
          "value": "subscriber"
        },
        {
          "name": "Contact Tagging",
          "value": "contact-tagging"
        },
        {
          "name": "Data Field",
          "value": "field"
        },
        {
          "name": "Opt-In Process",
          "value": "opt-in"
        },
        {
          "name": "Tag",
          "value": "tag"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "index",
      "options": [
        {
          "name": "Create Tag",
          "value": "create",
          "action": "Create tag",
          "description": "Creates a new manual tag"
        },
        {
          "name": "Delete Tag",
          "value": "delete",
          "action": "Delete tag",
          "description": "Deletes a tag and removes it from all contacts"
        },
        {
          "name": "Get Tag",
          "value": "get",
          "action": "Get tag",
          "description": "Returns the name and description of a tag"
        },
        {
          "name": "List Tags",
          "value": "index",
          "action": "List tags",
          "description": "Lists the IDs and names of all tags"
        },
        {
          "name": "Update Tag",
          "value": "update",
          "action": "Update tag",
          "description": "Updates a tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "index",
      "options": [
        {
          "name": "Get Opt-in Process",
          "value": "get",
          "action": "Get opt in process",
          "description": "Returns the complete data of an opt-in process"
        },
        {
          "name": "Search Redirect URL",
          "value": "getRedirect",
          "action": "Search redirect url",
          "description": "Search the redirection URL for a specific opt-in process"
        },
        {
          "name": "List Opt-in Processes",
          "value": "index",
          "action": "List opt in processes",
          "description": "Lists the IDs and names of all opt-in processes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "opt-in"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "index",
      "options": [
        {
          "name": "Add or Update Contact",
          "value": "subscribe",
          "action": "Add or update contact",
          "description": "Adds a new contact. If a contact with the same email already exists, it will be updated."
        },
        {
          "name": "Delete Contact",
          "value": "delete",
          "action": "Delete contact",
          "description": "Deletes a contact"
        },
        {
          "name": "Get Contact",
          "value": "get",
          "action": "Get contact",
          "description": "Returns the complete data of a contact"
        },
        {
          "name": "List Contacts",
          "value": "index",
          "action": "List contacts",
          "description": "Lists the IDs of all active contacts"
        },
        {
          "name": "Search Contact ID",
          "value": "search",
          "action": "Search contact id",
          "description": "Returns the contact ID for an email address"
        },
        {
          "name": "Search Tagged Contacts",
          "value": "tagged",
          "action": "Search tagged contacts",
          "description": "Returns the IDs and tagging timestamps of all tagged contacts"
        },
        {
          "name": "Unsubscribe Contact",
          "value": "unsubscribe",
          "action": "Unsubscribe contact",
          "description": "Unsubscribes a contact, preventing further communication"
        },
        {
          "name": "Update Contact",
          "value": "update",
          "action": "Update contact",
          "description": "Updates a contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "subscriber"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "index",
      "options": [
        {
          "name": "Get Data Field",
          "value": "get",
          "action": "Get data field",
          "description": "Gets the ID and the name of a data field"
        },
        {
          "name": "List Data Fields",
          "value": "index",
          "action": "List data fields",
          "description": "Lists the IDs and names of all data fields"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "field"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "tag",
      "options": [
        {
          "name": "Tag Contact",
          "value": "tag",
          "action": "Tag contact",
          "description": "Adds one or more tags to a contact"
        },
        {
          "name": "Untag Contact",
          "value": "untag",
          "action": "Untag contact",
          "description": "Removes a tag from a contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact-tagging"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Tag",
      "value": "create",
      "action": "Create tag",
      "description": "Creates a new manual tag",
      "resource": "tag"
    },
    {
      "name": "Delete Tag",
      "value": "delete",
      "action": "Delete tag",
      "description": "Deletes a tag and removes it from all contacts",
      "resource": "tag"
    },
    {
      "name": "Get Tag",
      "value": "get",
      "action": "Get tag",
      "description": "Returns the name and description of a tag",
      "resource": "tag"
    },
    {
      "name": "List Tags",
      "value": "index",
      "action": "List tags",
      "description": "Lists the IDs and names of all tags",
      "resource": "tag"
    },
    {
      "name": "Update Tag",
      "value": "update",
      "action": "Update tag",
      "description": "Updates a tag",
      "resource": "tag"
    },
    {
      "name": "Get Opt-in Process",
      "value": "get",
      "action": "Get opt in process",
      "description": "Returns the complete data of an opt-in process",
      "resource": "opt-in"
    },
    {
      "name": "Search Redirect URL",
      "value": "getRedirect",
      "action": "Search redirect url",
      "description": "Search the redirection URL for a specific opt-in process",
      "resource": "opt-in"
    },
    {
      "name": "List Opt-in Processes",
      "value": "index",
      "action": "List opt in processes",
      "description": "Lists the IDs and names of all opt-in processes",
      "resource": "opt-in"
    },
    {
      "name": "Add or Update Contact",
      "value": "subscribe",
      "action": "Add or update contact",
      "description": "Adds a new contact. If a contact with the same email already exists, it will be updated.",
      "resource": "subscriber"
    },
    {
      "name": "Delete Contact",
      "value": "delete",
      "action": "Delete contact",
      "description": "Deletes a contact",
      "resource": "subscriber"
    },
    {
      "name": "Get Contact",
      "value": "get",
      "action": "Get contact",
      "description": "Returns the complete data of a contact",
      "resource": "subscriber"
    },
    {
      "name": "List Contacts",
      "value": "index",
      "action": "List contacts",
      "description": "Lists the IDs of all active contacts",
      "resource": "subscriber"
    },
    {
      "name": "Search Contact ID",
      "value": "search",
      "action": "Search contact id",
      "description": "Returns the contact ID for an email address",
      "resource": "subscriber"
    },
    {
      "name": "Search Tagged Contacts",
      "value": "tagged",
      "action": "Search tagged contacts",
      "description": "Returns the IDs and tagging timestamps of all tagged contacts",
      "resource": "subscriber"
    },
    {
      "name": "Unsubscribe Contact",
      "value": "unsubscribe",
      "action": "Unsubscribe contact",
      "description": "Unsubscribes a contact, preventing further communication",
      "resource": "subscriber"
    },
    {
      "name": "Update Contact",
      "value": "update",
      "action": "Update contact",
      "description": "Updates a contact",
      "resource": "subscriber"
    },
    {
      "name": "Get Data Field",
      "value": "get",
      "action": "Get data field",
      "description": "Gets the ID and the name of a data field",
      "resource": "field"
    },
    {
      "name": "List Data Fields",
      "value": "index",
      "action": "List data fields",
      "description": "Lists the IDs and names of all data fields",
      "resource": "field"
    },
    {
      "name": "Tag Contact",
      "value": "tag",
      "action": "Tag contact",
      "description": "Adds one or more tags to a contact",
      "resource": "contact-tagging"
    },
    {
      "name": "Untag Contact",
      "value": "untag",
      "action": "Untag contact",
      "description": "Removes a tag from a contact",
      "resource": "contact-tagging"
    }
  ]

npm_readme:
  # n8n-nodes-klicktipp

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

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

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

  ## KlickTipp API Integration for n8n

  What is the KlickTipp Marketing Suite?

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

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

  ---

  ## Table of Contents

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

  ---

  ## Installation

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

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

  ## Quickstart

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

  ## Nodes Overview

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

  ### Contact

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

  ### Contact Tagging

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

  ### Data Field

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

  ### Opt-In Process

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

  ### Tag

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

  ### Triggers

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

  ---

  ## Supported Resources and Operations

  Quick inventory (names as displayed in n8n):

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

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

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

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

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

  **Triggers**
  - On new KlickTipp event

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

  ---

  ## Workflow Keys (for JSON generation)

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

  ---

  ## Credentials

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

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

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

  ---

  ## Compatibility

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

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

  ---

  ## License

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

  ---

  ## Example Workflows

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

  ---

  ## Troubleshooting

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the KlickTipp Marketing Suite API to manage email marketing campaigns, contacts, tags, and data fields.","capabilities":["Add or update contacts","Delete contacts","Search and list contacts","Tag and untag contacts","Manage data fields","Create, list, update, and delete tags","Manage opt-in processes and redirect URLs","Subscribe and unsubscribe contacts","Trigger on new KlickTipp events (webhooks)"],"authentication":"Username and Password","commonUseCases":["Automating contact management in email marketing workflows","Segmenting audiences using tags","Handling opt-in and opt-out processes","Receiving real-time event notifications from KlickTipp"],"limitations":["Not compatible with n8n Cloud (requires self-hosted or desktop instance)","Requires manual installation via npm package"],"relatedNodes":["HTTP Request","Credentials","Webhook"]}


node_type: n8n-nodes-lettr.lettr
package_name: n8n-nodes-lettr
display_name: Lettr
description: Interact with Lettr transactional email APIs
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: tlapi
author_github_url: https://github.com/lettr-com/lettr-n8n.git
npm_package_name: n8n-nodes-lettr
npm_version: 0.1.3
community_fetched_at: 2026-04-16T09:43:36.294Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "email",
      "options": [
        {
          "name": "Email",
          "value": "email"
        },
        {
          "name": "Domain",
          "value": "domain"
        },
        {
          "name": "Template",
          "value": "template"
        },
        {
          "name": "Webhook",
          "value": "webhook"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an email request",
          "description": "Get an email request by ID"
        },
        {
          "name": "Send",
          "value": "send",
          "action": "Send a transactional email",
          "description": "Send a transactional email"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "email"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many domains",
          "description": "Get all sending domains"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "domain"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many templates",
          "description": "Get all templates"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many webhooks",
          "description": "Get all webhooks"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhook"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get an email request",
      "description": "Get an email request by ID",
      "resource": "email"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send a transactional email",
      "description": "Send a transactional email",
      "resource": "email"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many domains",
      "description": "Get all sending domains",
      "resource": "domain"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many templates",
      "description": "Get all templates",
      "resource": "template"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many webhooks",
      "description": "Get all webhooks",
      "resource": "webhook"
    }
  ]

npm_readme:
  # n8n-nodes-lettr

  This package provides a verified-style n8n community node for [Lettr](https://docs.lettr.com).

  ## Logo

  - Source logo file (edit this): `assets/logo.svg`
  - n8n node icon file (auto-generated from source on build): `nodes/Lettr/lettr.svg`

  To apply your custom SVG logo:

  ```bash
  npm run sync:logo
  npm run build
  ```

  ## Supported resources and operations

  - **Email**
    - Send
    - Get
  - **Domain**
    - Get Many
  - **Template**
    - Get Many
  - **Webhook**
    - Get Many

  ## Credentials

  Use a Lettr API key from your Lettr account.

  - Credential type: `Lettr API`
  - Auth header: `Authorization: Bearer <api_key>`

  ## Build

  ```bash
  npm install
  npm run build
  ```

  ## Local n8n install

  ```bash
  npm install /absolute/path/to/n8n-nodes-lettr
  ```

  Then restart n8n.

  ## Notes for community verification

  - Uses official Lettr REST endpoints at `https://app.lettr.com/api`
  - Includes credential test call (`GET /domains`)
  - Includes pagination controls for list operations
  - Runtime has no third-party dependencies

  ## API references used

  - [Lettr API introduction](https://docs.lettr.com/api-reference/introduction)
  - [Send email](https://docs.lettr.com/api-reference/emails/send-email)
  - [Get email request](https://docs.lettr.com/api-reference/emails/get-email-request-details)
  - [List domains](https://docs.lettr.com/api-reference/domains/get-sending-domains)
  - [List templates](https://docs.lettr.com/api-reference/templates/get-all-email-templates)
  - [List webhooks](https://docs.lettr.com/api-reference/webhooks/get-all-webhooks)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with Lettr's transactional email APIs to manage email sending, domains, templates, and webhooks.","capabilities":["Send transactional emails","Retrieve email request details","List sending domains","List email templates","List webhooks","Supports pagination for list operations","Includes credential test functionality"],"authentication":"API key required (Bearer token in Authorization header)","commonUseCases":["Automated transactional email workflows","Email template management","Domain verification and management","Webhook configuration for email events"],"limitations":["Community node (unofficial)","No third-party runtime dependencies"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.code"]}


node_type: @openemm/n8n-nodes-openemm.openEmm
package_name: @openemm/n8n-nodes-openemm
display_name: OpenEMM
description: Consume EMM API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: agnitas
author_github_url: https://github.com/agnitas-org/n8n-nodes-openemm.git
npm_package_name: @openemm/n8n-nodes-openemm
npm_version: 0.3.2
community_fetched_at: 2026-04-16T09:43:36.295Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "mailing",
      "options": [
        {
          "name": "Mailing",
          "value": "mailing"
        },
        {
          "name": "Mailing Content",
          "value": "content"
        },
        {
          "name": "Recipient",
          "value": "recipient"
        },
        {
          "name": "Mailing List",
          "value": "mailinglist"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Copy",
          "value": "copy",
          "action": "Copy mailing",
          "description": "Copy mailing"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create mailing",
          "description": "Create mailing"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete mailing",
          "description": "Delete mailing"
        },
        {
          "name": "Get",
          "value": "read",
          "action": "Get mailing",
          "description": "Get mailing"
        },
        {
          "name": "Send",
          "value": "send",
          "action": "Send mailing",
          "description": "Send mailing"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update mailing",
          "description": "Update mailing"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "mailing"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "read",
      "options": [
        {
          "name": "Get",
          "value": "read",
          "action": "Get mailing content",
          "description": "Get mailing content"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update mailing content",
          "description": "Update mailing content"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete mailing content",
          "description": "Delete mailing content"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "content"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create mailing list"
        },
        {
          "name": "Get Recipient Binding",
          "value": "getBinding",
          "action": "Get recipient binding"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "mailinglist"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Get",
          "value": "read",
          "action": "Get recipient",
          "description": "Get recipient"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create recipient",
          "description": "Create recipient"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update recipient",
          "description": "Update profile and binding data of recipient"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete recipient",
          "description": "Delete recipient"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "recipient"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Copy",
      "value": "copy",
      "action": "Copy mailing",
      "description": "Copy mailing",
      "resource": "mailing"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create mailing",
      "description": "Create mailing",
      "resource": "mailing"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete mailing",
      "description": "Delete mailing",
      "resource": "mailing"
    },
    {
      "name": "Get",
      "value": "read",
      "action": "Get mailing",
      "description": "Get mailing",
      "resource": "mailing"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send mailing",
      "description": "Send mailing",
      "resource": "mailing"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update mailing",
      "description": "Update mailing",
      "resource": "mailing"
    },
    {
      "name": "Get",
      "value": "read",
      "action": "Get mailing content",
      "description": "Get mailing content",
      "resource": "content"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update mailing content",
      "description": "Update mailing content",
      "resource": "content"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete mailing content",
      "description": "Delete mailing content",
      "resource": "content"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create mailing list",
      "resource": "mailinglist"
    },
    {
      "name": "Get Recipient Binding",
      "value": "getBinding",
      "action": "Get recipient binding",
      "resource": "mailinglist"
    },
    {
      "name": "Get",
      "value": "read",
      "action": "Get recipient",
      "description": "Get recipient",
      "resource": "recipient"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create recipient",
      "description": "Create recipient",
      "resource": "recipient"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update recipient",
      "description": "Update profile and binding data of recipient",
      "resource": "recipient"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete recipient",
      "description": "Delete recipient",
      "resource": "recipient"
    }
  ]

npm_readme:
  # @openemm/n8n-nodes-openemm

  These are OpenEMM community nodes for n8n. They let you use OpenEMM in your n8n workflows.

  [OpenEMM](https://www.agnitas.de/openemm-wiki/) is a web based enterprise application for email and marketing automation. It is used for automated email communication with customers, leads, members and employees. It can be operated via a web browser or in headless mode via its SOAP or REST API. OpenEMM is published under open source license [APGLv3](https://www.gnu.org/licenses/agpl-3.0.html).

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

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


  ## Installation

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


  ## Operations

  The OpenEMM community nodes are extended from time to time. You can find the up-to-date functionality of all triggers and actions along with input and output parameters in the [OpenEMM Wiki](https://wiki-iframe.agnitas.de/doku.php?id=integration-apis).


  ## Credentials

  The OpenEMM community nodes use the REST API of OpenEMM for its action nodes and the callback API (webhooks) of OpenEMM for trigger nodes. Create credentials in n8n for the REST API so that an n8n workflow can access your OpenEMM instance. Copy the webhook URLs generated by n8n into the settings of the events in your OpenEMM instance so that OpenEMM can trigger workflows in n8n.


  ## Compatibility

  To be able to use all triggers and actions provided by the OpenEMM community nodes for n8n you have to use at least version 25.11 of OpenEMM.


  ## Usage

  Use the trigger nodes to receive event data from OpenEMM like mail openings, link clicks or profile field changes (via OpenEMM's callback API/webhooks).
  Use the action nodes to send data to OpenEMM like mailing or recipient data or to initiate an action like sending out a mailing (via OpenEMM's REST API).


  ## Resources
  * [OpenEMM integrations documenation](https://wiki-iframe.agnitas.de/doku.php?id=start#integrations)
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)


  ## History

  0.3.0 update license to MIT
  0.2.0 initial public release

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with OpenEMM, an enterprise email and marketing automation platform, allowing workflows to trigger on events and send actions via API.","capabilities":["Receive event triggers via OpenEMM callback API/webhooks (e.g., mail openings, link clicks, profile changes)","Send data to OpenEMM via REST API (e.g., mailing, recipient data, initiate actions)","Support for both SOAP and REST API interactions with OpenEMM"],"authentication":"API key required (REST API credentials in n8n; webhook URLs configured in OpenEMM)","commonUseCases":["Automated email marketing campaigns","Lead tracking and engagement monitoring","Customer communication automation","Event-driven workflow triggers (opens, clicks, profile updates)"],"limitations":["Requires OpenEMM version 25.11 or higher to use all triggers and actions","Limited to REST API and callback API (webhooks) for integration"],"relatedNodes":["HTTP Request","Webhook","Email"]}


node_type: n8n-nodes-plentyone.Plentymarkets
package_name: n8n-nodes-plentyone
display_name: PlentyONE
description: Work with the PlentyONE (formerly plentymarkets) REST API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: dnangelx
author_github_url: https://github.com/DNAngelX/n8n-nodes-plentymarkets.git
npm_package_name: n8n-nodes-plentyone
npm_version: 1.3.6
community_fetched_at: 2026-04-16T09:43:36.296Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "custom",
      "options": [
        {
          "name": "Custom API Call",
          "value": "custom"
        }
      ],
      "displayName": "Resource"
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Custom Request",
          "value": "custom.customRequest",
          "description": "Send a custom HTTP request"
        },
        {
          "name": "Request via JSON Definition",
          "value": "custom.jsonDefinition",
          "description": "Provide a full JSON definition for the request"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "custom"
          ]
        }
      }
    }
  ]

operations:
  [
    {
      "name": "Custom Request",
      "value": "custom.customRequest",
      "description": "Send a custom HTTP request",
      "resource": "custom"
    },
    {
      "name": "Request via JSON Definition",
      "value": "custom.jsonDefinition",
      "description": "Provide a full JSON definition for the request",
      "resource": "custom"
    }
  ]

npm_readme:
  # PlentyONE n8n Community Node

  Interact with the PlentyONE (formerly plentymarkets) REST API directly from your n8n workflows.
  This community node focuses on dynamic request handling so you can cover both well-known endpoints
  and ad-hoc API calls without waiting for custom code changes.

  ## Highlights

  - ✅ Automatic session handling via n8n `preAuthentication` – the access token is cached and refreshed only when needed.
  - ✅ Classic *Custom Request* operation with support for sending payloads **even on GET/HEAD** calls (body → query parameters).
  - ✅ New *Request via JSON Definition* operation to paste or inject complete request descriptions, e.g.:
  - ✅ Optional *Fetch All Pages* toggle that follows PlentyONE pagination automatically and outputs the collected `entries`.

    ```json
    {
      "method": "GET",
      "endpoint": "/rest/v2/properties/relations",
      "body": {
        "with": "values",
        "groupId": 44,
        "propertyId": 394,
        "type": "item",
        "targetId": 99211
      }
    }
    ```

    Arrays are supported as well – just provide a JSON array of request objects to execute them sequentially in one run.

  - ✅ Local PlentyONE icon bundled with the node for easier identification inside n8n.

  ## Installation

  Install the package inside your n8n instance (desktop, self-hosted or cloud with custom packages enabled):

  ```bash
  npm install n8n-nodes-plentyone
  ```

  Restart n8n afterwards so the node metadata is reloaded.

  > **Compatibility:** The internal node type stays `n8n-nodes-plentymarkets.Plentymarkets`
  > so existing workflows continue to work after upgrading from older releases.

  ## Credentials

  Create a new credential record of type **PlentyONE API** and fill in:

  | Field        | Description                                                                 |
  |--------------|-----------------------------------------------------------------------------|
  | Base URL     | Base URL of your PlentyONE environment (e.g. `https://example.plentyone.de`) |
  | Username     | PlentyONE username used for API login                                       |
  | Password     | Corresponding password                                                      |

  The node stores the access token invisibly and refreshes it automatically before expiry.  
  No external Redis/filesystem cache is required, so the credential works in hosted/cloud setups too.

  ## Operations

  ### Custom Request

  Configure the HTTP method and endpoint in the node UI. The “Payload / Query (JSON)” parameter accepts a JSON object:

  - For `GET`/`HEAD` requests the object is sent as query parameters.
  - For all other methods the object is sent as JSON body.

  Enable **Fetch All Pages** when the API response uses the PlentyONE pagination format (`page`, `isLastPage`, `entries`, …). The node will loop through pages (ignoring any provided `page` value) until `isLastPage === true`, returning each entry as a separate item. See the [PlentyONE REST documentation](https://developers.plentymarkets.com/en-gb/plentymarkets-rest-api/index.html) for details on paginated endpoints.

  ### Request via JSON Definition

  Provide a JSON object (or array of objects) with the following optional fields:

  | Field    | Type            | Notes                                                                 |
  |----------|-----------------|-----------------------------------------------------------------------|
  | `method` | string          | Defaults to `GET`.                                                    |
  | `endpoint` | string       | Required.                                                             |
  | `body`   | object          | Used as JSON body (or merged into query for GET/HEAD).                |
  | `query`  | object          | Explicit query string parameters.                                     |
  | `headers` | object        | Custom headers added to the request.                                   |

  Example payload for a PUT request:

  ```json
  {
    "method": "PUT",
    "endpoint": "/rest/listings/markets/histories/update/",
    "body": {
      "id": [959893, 919078],
      "options": ["quantityAndPrice"]
    }
  }
  ```

  When **Fetch All Pages** is enabled for this operation, every GET request definition in the JSON will be paginated automatically, following the same logic as the Custom Request.

  ## Development

  ```bash
  npm install
  npm run build
  ```

  `npm run build` compiles TypeScript and copies the PlentyONE icon plus operation schema into `dist/`.

  ## Licensing & Credits

  - Icon: © PlentyONE — included locally as `plentyone.svg` according to the branding assets.
  - Code: MIT License.


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

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

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

npm_readme:
  # n8n-nodes-openregister

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

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

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

  ## Installation

  Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation to add this package (`n8n-nodes-openregister`) to your n8n instance.

  ## Operations

  Resource: Company

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

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

  ## Credentials

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

  How to get an API key:

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

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

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

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

  Requests are sent with:

  ```
  Authorization: Bearer YOUR_API_KEY
  ```

  ## Compatibility

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

  ## Usage

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

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

  ## Resources

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

  ## Version history

  - 0.1.0: Initial release

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the OpenRegister API to access structured company registry data from official German sources.","capabilities":["Search for companies by name","Fetch company details by ID","Retrieve company financials by ID","Get company owners by ID","Retrieve company holdings by ID"],"authentication":"API key required (Bearer token in Authorization header)","commonUseCases":["Background checks on German companies","Corporate structure analysis","Due diligence research","Business intelligence gathering"],"limitations":["Limited to German company registry data","Requires manual API key setup in n8n credentials","Node.js version >= 20.15 required"],"relatedNodes":["HTTP Request","Code","Set"]}


node_type: @crowdin/n8n-nodes-crowdin.crowdinStringBasedTrigger
package_name: @crowdin/n8n-nodes-crowdin
display_name: Crowdin (String-Based) Trigger
description: Starts the workflow when crowdin.com string-based project 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: taras.prosvirov
author_github_url: https://github.com/crowdin/n8n-nodes-crowdin.git
npm_package_name: @crowdin/n8n-nodes-crowdin
npm_version: 0.8.0
community_fetched_at: 2026-04-16T09:43:36.297Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
[cell repeats an earlier one in this file: 11013 characters]

ai_documentation_summary:
  {"purpose":"Starts an n8n workflow when specific events occur in a Crowdin string-based localization project.","capabilities":["Monitors string-based project events","Triggers on project creation or deletion","Triggers on full project translation completion","Triggers on full project review/approval","Triggers on successful project build","Triggers on QA check completion","Triggers on exported translation updates","Supports both Crowdin and Crowdin Enterprise environments"],"authentication":"API key required (via n8n credentials)","commonUseCases":["Automate workflow execution upon translation completion","Notify team members when projects are fully translated","Trigger downstream actions when QA checks pass","Integrate localization status into internal notification systems"],"limitations":["Only supports string-based projects (not file-based)","Does not support Crowdin Enterprise-specific events like group management or custom spellcheckers","Limited to webhook event triggers (no direct data manipulation)"],"relatedNodes":["Crowdin (String-Based)","Crowdin (File-Based) Trigger","Crowdin Enterprise (String-Based) Trigger","Crowdin Enterprise (File-Based) Trigger"]}


node_type: @demografix/n8n-nodes-genderize.demografixGenderize
package_name: @demografix/n8n-nodes-genderize
display_name: Genderize
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: demografix
author_github_url: https://github.com/DemografixGenderize/n8n-nodes-genderize.git
npm_package_name: @demografix/n8n-nodes-genderize
npm_version: 1.1.0
community_fetched_at: 2026-04-16T09:43:36.298Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Get gender prediction for a given name using the Genderize.io API (100 free requests/day without API key, more with subscription)

properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "getGender",
      "options": [
        {
          "name": "Get Gender",
          "value": "getGender",
          "action": "Get gender prediction for a name",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { ...($response.body), \"rateLimit\": { \"limit\": $response.headers[\"x-rate-limit-limit\"], \"remaining\": $response.headers[\"x-rate-limit-remaining\"], \"reset\": $response.headers[\"x-rate-limit-reset\"] } } }}"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "name": "={{$parameter.name}}",
                "country_id": "={{$parameter.country_id || undefined}}"
              },
              "url": "",
              "method": "GET"
            }
          },
          "description": "Get the predicted gender for a given first name"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Gender",
      "value": "getGender",
      "action": "Get gender prediction for a name",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { ...($response.body), \"rateLimit\": { \"limit\": $response.headers[\"x-rate-limit-limit\"], \"remaining\": $response.headers[\"x-rate-limit-remaining\"], \"reset\": $response.headers[\"x-rate-limit-reset\"] } } }}"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "name": "={{$parameter.name}}",
            "country_id": "={{$parameter.country_id || undefined}}"
          },
          "url": "",
          "method": "GET"
        }
      },
      "description": "Get the predicted gender for a given first name"
    }
  ]

npm_readme:
  # @demografix/n8n-nodes-genderize

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

  Genderize.io is a gender prediction API that infers gender based on first names using statistical analysis. 

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

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

  ## Installation

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

  ## Operations

  - **Get Gender**: Predict the gender for a given first name with probability score

  ## Credentials

  ### Free Tier (No Authentication Required)
  You can start using this node immediately without any credentials. The free tier provides:
  - **100 requests per day** per IP address
  - No signup required
  - No API key needed

  ### Paid Tier (API Key Required)
  For higher request volumes, you can subscribe to a paid plan at [genderize.io](https://genderize.io) with various tier options for increased rate limits.

  **Setting up credentials:**
  1. Sign up at [genderize.io](https://genderize.io)
  2. Subscribe to a paid plan to receive your API key
  3. In n8n, create new "Genderize API" credentials
  4. Enter your API key
  5. Test the credentials to verify they work

  ## Compatibility

  This node is built using n8n's declarative style and requires n8n version 1.0 or later.

  ## Usage

  ### Basic Example
  1. Add the "Genderize" node to your workflow
  2. Enter a first name (e.g., "Peter", "Sarah", "Alex")
  3. Execute the node

  ### Response Data
  The node returns the following data:
  - `name`: The name that was queried
  - `gender`: Predicted gender ("male", "female", or null)
  - `probability`: Confidence score (0-1, where 1 is 100% confident)
  - `count`: Number of data samples used for this prediction
  - `rateLimit.limit`: Total requests allowed in current period
  - `rateLimit.remaining`: Requests remaining in current period
  - `rateLimit.reset`: Unix timestamp when rate limit resets

  ### Tips
  - Names with probability close to 0.5 indicate unisex names with less certainty
  - The API supports diacritics and non-Latin alphabets
  - Use the `rateLimit` data to monitor your API usage and avoid hitting limits

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Genderize.io official website](https://genderize.io)
  - [Genderize.io API documentation](https://genderize.io/documentation)

ai_documentation_summary:
  {"purpose":"Predicts the gender of a given first name using the Genderize.io API, returning the predicted gender, confidence probability, and usage statistics.","capabilities":["Predict gender from first names","Return probability score (0-1)","Support diacritics and non-Latin alphabets","Track rate limits and remaining requests","Return sample count used for prediction"],"authentication":"None for free tier (100 requests/day); API key required for paid tiers","commonUseCases":["Data anonymization workflows","User profile enrichment","Demographic analysis","Privacy-preserving data processing"],"limitations":["Free tier limited to 100 requests per day per IP address","No signup required for free tier but limited by rate limits","Paid tier requires subscription to Genderize.io"],"relatedNodes":["n8n HTTP Request node","n8n Set node","n8n Split In Batches node"]}


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

updated_at: 2026-04-16 09:43:36
author_name: akinsoft
author_github_url: https://github.com/akinsoftdev/
npm_package_name: n8n-nodes-taskpano
npm_version: 0.1.2
community_fetched_at: 2026-04-16T09:43:36.299Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Project",
          "value": "project",
          "description": "Work with projects"
        },
        {
          "name": "Task",
          "value": "task",
          "description": "Work with tasks"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getParticipants",
      "options": [
        {
          "name": "Get Custom Fields",
          "value": "getCustomFields",
          "action": "Get custom fields of a project",
          "description": "Get all custom fields of a project"
        },
        {
          "name": "Get Participants",
          "value": "getParticipants",
          "action": "Get participants of a project",
          "description": "Get all participants of a project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add Assignee",
          "value": "addAssignee",
          "action": "Add an assignee",
          "description": "Add an assignee to a task"
        },
        {
          "name": "Add Checklist Item",
          "value": "addChecklistItem",
          "action": "Add a checklist item",
          "description": "Add a checklist item to a task"
        },
        {
          "name": "Add Comment",
          "value": "addComment",
          "action": "Add a comment",
          "description": "Add a comment to a task"
        },
        {
          "name": "Add Subscription",
          "value": "addSubscription",
          "action": "Add a subscription",
          "description": "Add a subscription to a task"
        },
        {
          "name": "Add Tag",
          "value": "addTag",
          "action": "Add a tag",
          "description": "Add a tag to a task"
        },
        {
          "name": "Create Subtask",
          "value": "createSubtask",
          "action": "Create a subtask",
          "description": "Create a new subtask"
        },
        {
          "name": "Create Task",
          "value": "create",
          "action": "Create a task",
          "description": "Create a new task"
        },
        {
          "name": "Delete Attachment",
          "value": "deleteAttachment",
          "action": "Delete an attachment",
          "description": "Delete an attachment from a task"
        },
        {
          "name": "Download Attachment",
          "value": "downloadAttachment",
          "action": "Download an attachment",
          "description": "Download an attachment from a task"
        },
        {
          "name": "Get Attachments",
          "value": "getAttachments",
          "action": "Get attachments",
          "description": "Get all attachments of a task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get tasks",
          "description": "Get multiple tasks with filters"
        },
        {
          "name": "Get Task",
          "value": "get",
          "action": "Get a task",
          "description": "Get a task by ID"
        },
        {
          "name": "Move Task",
          "value": "move",
          "action": "Move a task",
          "description": "Move a task to a different list"
        },
        {
          "name": "Remove Assignee",
          "value": "removeAssignee",
          "action": "Remove an assignee",
          "description": "Remove an assignee from a task"
        },
        {
          "name": "Remove Subscription",
          "value": "removeSubscription",
          "action": "Remove a subscription",
          "description": "Remove a subscription from a task"
        },
        {
          "name": "Remove Tag",
          "value": "removeTag",
          "action": "Remove a tag",
          "description": "Remove a tag from a task"
        },
        {
          "name": "Update Checklist Item",
          "value": "updateChecklistItem",
          "action": "Update a checklist item",
          "description": "Update a checklist item subject"
        },
        {
          "name": "Update Checklist Item Status",
          "value": "updateChecklistItemStatus",
          "action": "Update a checklist item status",
          "description": "Update a checklist item status (completed/uncompleted)"
        },
        {
          "name": "Update Custom Field",
          "value": "updateCustomField",
          "action": "Update a custom field",
          "description": "Update a custom field value on a task"
        },
        {
          "name": "Update Task",
          "value": "update",
          "action": "Update a task",
          "description": "Update a task"
        },
        {
          "name": "Upload Attachment",
          "value": "uploadAttachment",
          "action": "Upload an attachment",
          "description": "Upload a file attachment to a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Custom Fields",
      "value": "getCustomFields",
      "action": "Get custom fields of a project",
      "description": "Get all custom fields of a project",
      "resource": "project"
    },
    {
      "name": "Get Participants",
      "value": "getParticipants",
      "action": "Get participants of a project",
      "description": "Get all participants of a project",
      "resource": "project"
    },
    {
      "name": "Add Assignee",
      "value": "addAssignee",
      "action": "Add an assignee",
      "description": "Add an assignee to a task",
      "resource": "task"
    },
    {
      "name": "Add Checklist Item",
      "value": "addChecklistItem",
      "action": "Add a checklist item",
      "description": "Add a checklist item to a task",
      "resource": "task"
    },
    {
      "name": "Add Comment",
      "value": "addComment",
      "action": "Add a comment",
      "description": "Add a comment to a task",
      "resource": "task"
    },
    {
      "name": "Add Subscription",
      "value": "addSubscription",
      "action": "Add a subscription",
      "description": "Add a subscription to a task",
      "resource": "task"
    },
    {
      "name": "Add Tag",
      "value": "addTag",
      "action": "Add a tag",
      "description": "Add a tag to a task",
      "resource": "task"
    },
    {
      "name": "Create Subtask",
      "value": "createSubtask",
      "action": "Create a subtask",
      "description": "Create a new subtask",
      "resource": "task"
    },
    {
      "name": "Create Task",
      "value": "create",
      "action": "Create a task",
      "description": "Create a new task",
      "resource": "task"
    },
    {
      "name": "Delete Attachment",
      "value": "deleteAttachment",
      "action": "Delete an attachment",
      "description": "Delete an attachment from a task",
      "resource": "task"
    },
    {
      "name": "Download Attachment",
      "value": "downloadAttachment",
      "action": "Download an attachment",
      "description": "Download an attachment from a task",
      "resource": "task"
    },
    {
      "name": "Get Attachments",
      "value": "getAttachments",
      "action": "Get attachments",
      "description": "Get all attachments of a task",
      "resource": "task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get tasks",
      "description": "Get multiple tasks with filters",
      "resource": "task"
    },
    {
      "name": "Get Task",
      "value": "get",
      "action": "Get a task",
      "description": "Get a task by ID",
      "resource": "task"
    },
    {
      "name": "Move Task",
      "value": "move",
      "action": "Move a task",
      "description": "Move a task to a different list",
      "resource": "task"
    },
    {
      "name": "Remove Assignee",
      "value": "removeAssignee",
      "action": "Remove an assignee",
      "description": "Remove an assignee from a task",
      "resource": "task"
    },
    {
      "name": "Remove Subscription",
      "value": "removeSubscription",
      "action": "Remove a subscription",
      "description": "Remove a subscription from a task",
      "resource": "task"
    },
    {
      "name": "Remove Tag",
      "value": "removeTag",
      "action": "Remove a tag",
      "description": "Remove a tag from a task",
      "resource": "task"
    },
    {
      "name": "Update Checklist Item",
      "value": "updateChecklistItem",
      "action": "Update a checklist item",
      "description": "Update a checklist item subject",
      "resource": "task"
    },
    {
      "name": "Update Checklist Item Status",
      "value": "updateChecklistItemStatus",
      "action": "Update a checklist item status",
      "description": "Update a checklist item status (completed/uncompleted)",
      "resource": "task"
    },
    {
      "name": "Update Custom Field",
      "value": "updateCustomField",
      "action": "Update a custom field",
      "description": "Update a custom field value on a task",
      "resource": "task"
    },
    {
      "name": "Update Task",
      "value": "update",
      "action": "Update a task",
      "description": "Update a task",
      "resource": "task"
    },
    {
      "name": "Upload Attachment",
      "value": "uploadAttachment",
      "action": "Upload an attachment",
      "description": "Upload a file attachment to a task",
      "resource": "task"
    }
  ]

npm_readme:
  # n8n-nodes-taskpano

  This is the official n8n node for [TaskPano](https://taskpano.com), developed and maintained by [AKINSOFT](https://akinsoft.com.tr). It lets you use TaskPano in your n8n workflows.

  TaskPano is a project management and task tracking application that helps teams organize, track, and manage their work efficiently.

  [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

  ### Task

  - **Add Assignee** - Add an assignee to a task
  - **Add Checklist Item** - Add a checklist item to a task
  - **Add Comment** - Add a comment to a task
  - **Add Subscription** - Add a subscription to a task
  - **Add Tag** - Add a tag to a task
  - **Create Subtask** - Create a new subtask
  - **Create Task** - Create a new task
  - **Delete Attachment** - Delete an attachment from a task
  - **Download Attachment** - Download an attachment from a task
  - **Get Attachments** - Get all attachments of a task
  - **Get Many** - Get multiple tasks with filters
  - **Get Task** - Get a task by ID
  - **Move Task** - Move a task to a different list
  - **Remove Assignee** - Remove an assignee from a task
  - **Remove Subscription** - Remove a subscription from a task
  - **Remove Tag** - Remove a tag from a task
  - **Update Checklist Item** - Update a checklist item subject
  - **Update Checklist Item Status** - Update a checklist item status
  - **Update Custom Field** - Update a custom field value on a task
  - **Update Task** - Update a task
  - **Upload Attachment** - Upload a file attachment to a task

  ### Project

  - **Get Custom Fields** - Get all custom fields of a project
  - **Get Participants** - Get all participants of a project

  ## Credentials

  To use this node, you need to authenticate with TaskPano using an API Key.

  ### Getting your API Key

  1. Log in to your TaskPano account at [app.taskpano.com](https://app.taskpano.com)
  2. Navigate to your account settings
  3. Generate a new API token
  4. Copy the token and use it in your n8n credentials

  ### Setting up credentials in n8n

  1. In n8n, go to **Credentials** > **New**
  2. Search for "TaskPano API"
  3. Enter your API Key
  4. Save the credentials

  ## Compatibility

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

  **Minimum n8n version:** 1.0.0

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [TaskPano API documentation](https://app.taskpano.com/api/docs)
  - [TaskPano website](https://taskpano.com)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n node enables automation of TaskPano project management tasks, allowing users to create, update, delete, and manage tasks, subtasks, attachments, and project details within n8n workflows.","capabilities":["Create and update tasks","Create and update subtasks","Add/remove assignees from tasks","Add/remove subscriptions from tasks","Add/remove tags from tasks","Add/update checklist items","Add comments to tasks","Upload and download file attachments","Move tasks between lists","Get tasks with filters"],"authentication":"API Key required","commonUseCases":["Automating task assignment and tracking","Integrating TaskPano project data with other automation tools","Synchronizing task updates across platforms","Managing project attachments and comments programmatically"],"limitations":["Requires manual API key generation in TaskPano account settings","Minimum n8n version requirement is 1.0.0"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: n8n-nodes-evomi.evomi
package_name: n8n-nodes-evomi
display_name: Evomi
description: Scrape web pages using the Evomi Scraper API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: evomi
author_github_url: https://github.com/evomi/
npm_package_name: n8n-nodes-evomi
npm_version: 1.0.2
community_fetched_at: 2026-04-16T09:43:36.300Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "webPage",
      "options": [
        {
          "name": "Web Page",
          "value": "webPage"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Scrape",
          "value": "scrape",
          "action": "Scrape a web page",
          "description": "Scrape content from a web page"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webPage"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Scrape",
      "value": "scrape",
      "action": "Scrape a web page",
      "description": "Scrape content from a web page",
      "resource": "webPage"
    }
  ]

npm_readme:
  # Evomi n8n Node

  This repository provides an n8n community node for **Evomi's Scraper API**, a powerful web scraping tool with intelligent mode detection, automatic CAPTCHA solving, and residential proxy support.

  [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform that lets you connect apps, APIs, and services to build automated workflows.

  ## Features

  - **Intelligent Auto Mode**: Automatically detects whether to use fast HTTP requests or full browser rendering
  - **Three Scraping Modes**: Choose between `auto`, `request`, or `browser` modes
  - **Multiple Output Formats**: Get results as JSON, Markdown, or Screenshot
  - **AI Tool Compatible**: Use as an AI agent tool for intelligent web scraping
  - **Automatic CAPTCHA Solving**: Built-in CAPTCHA handling with browser mode
  - **Geo-Targeting**: Route requests through proxies in 195+ countries
  - **Robust Error Handling**: Comprehensive validation with helpful error messages

  ---

  ## Prerequisites

  To use this node, you need:

  1. **An Evomi account** - Sign up at [evomi.com](https://evomi.com)
  2. **Active Scraper API subscription or Pay-As-You-Go credits** - Required to make API requests

  > **🎁 Free Trial Available!** New users can get started with a free trial at [my.evomi.com/scraper-api](https://my.evomi.com/scraper-api).

  ---

  ## Installation

  ### From n8n Community Nodes

  1. Open your n8n instance
  2. Go to **Settings** → **Community Nodes**
  3. Select **Install**
  4. Enter `n8n-nodes-evomi` and confirm

  ### Manual Installation

  ```bash
  npm install n8n-nodes-evomi
  ```

  ---

  ## Getting Started

  ### Step 1: Get Your API Key

  1. Log in to your [Evomi Dashboard](https://my.evomi.com)
  2. Navigate to **Products** → **Scraper API** → **[Playground](https://my.evomi.com/my/products/scraper-api-universal/playground)**
  3. Your API key is displayed in the top-right section of the dashboard

  <img src="images/evomi_dashboard.png" width="600" alt="Evomi Dashboard - API Key Location">

  Copy the API key from the highlighted field (click the copy icon next to it).

  ### Step 2: Add the Evomi Node to Your Workflow

  1. In your n8n workflow editor, click the **+** button to add a new node

  <img src="images/n8n_plus_node.png" width="500" alt="Click the + button">

  2. Search for **"Evomi"** in the node selector

  <img src="images/n8n_search_evomi_node.png" width="400" alt="Search for Evomi">

  3. Click on the **Evomi** node to add it to your workflow

  ### Step 3: Configure Your Credentials

  1. In the Evomi node panel, click on **"Select Credential"** → **"+ Create new credential"**

  <img src="images/n8n_create_new_credential.png" width="400" alt="Create new credential">

  2. Enter your API key from the Evomi dashboard and click **Save**

  <img src="images/n8n_new_credential_enter_apikey.png" width="500" alt="Enter API Key">

  3. You should see **"Connection tested successfully"** - your credentials are now saved!

  <img src="images/n8n_crediential_saved_successfully.png" width="500" alt="Credential saved successfully">

  ### Step 4: Configure and Execute

  1. Enter the URL you want to scrape
  2. Choose your preferred mode and output format
  3. Click **Execute step** to run the scraper!

  <img src="images/n8n_node_success_result.png" width="700" alt="Successful scrape result">

  ---

  ## Node Parameters

  ### URL (Required)

  The web page URL to scrape. Must include `http://` or `https://`.

  ```
  https://example.com
  https://news.ycombinator.com
  ```

  ### Mode

  Choose how the page should be fetched:

  | Mode | Description | Best For | JavaScript |
  |------|-------------|----------|------------|
  | **Auto** (Default) | Automatically detects the best approach. Tries HTTP first, upgrades to browser if needed. | Most use cases | Auto-detected |
  | **Request** | Fast HTTP request without browser rendering. | Static sites, blogs, news, APIs | No |
  | **Browser** | Full browser with JavaScript execution. | SPAs, React/Vue/Angular apps, dynamic content | Yes |

  ### Output

  Choose the format for the scraped content:

  | Output | Description | Use Case |
  |--------|-------------|----------|
  | **JSON** (Default) | Structured JSON with metadata. Toggle "Include Content" to get the full HTML. | When you need metadata (title, status, etc.) |
  | **Markdown** | Clean, readable text format. | AI processing, content analysis, LLM input |
  | **Screenshot** | Full-page PNG image. Automatically enables Browser mode. | Visual verification, archiving, thumbnails |

  ### Include Content (JSON only)

  When using JSON output, toggle this to include the full HTML content in the response. Disable to save bandwidth when you only need metadata.

  - **Default**: Off
  - **When enabled**: Response includes `content` field with full HTML

  ### Wait Seconds (Auto & Browser modes)

  Seconds to wait after page load before capturing content. Useful for pages that load content dynamically via JavaScript.

  - **Default**: 5 seconds
  - **Range**: 0-30 seconds
  - **Tip**: Increase for slow-loading pages, decrease for fast static sites

  ### Proxy Country

  Route your request through a proxy in a specific country using ISO 3166-1 alpha-2 codes.

  - **Default**: US
  - **Examples**: `US`, `CA`, `DE`, `GB`, `JP`, `AU`, `FR`, `BR`

  **Common Country Codes:**
  | Code | Country |
  |------|---------|
  | US | United States |
  | CA | Canada |
  | GB | United Kingdom |
  | DE | Germany |
  | FR | France |
  | JP | Japan |
  | AU | Australia |
  | BR | Brazil |

  ---

  ## Usage Examples

  ### As a Standalone Node

  **Basic scraping:**
  1. Set URL: `https://example.com`
  2. Mode: `Auto`
  3. Output: `JSON`
  4. Execute

  **Get markdown for AI processing:**
  1. Set URL: `https://blog.example.com/article`
  2. Mode: `Auto`
  3. Output: `Markdown`
  4. Execute → Feed result to AI node

  **Take a screenshot:**
  1. Set URL: `https://dashboard.example.com`
  2. Mode: `Browser` (auto-selected)
  3. Output: `Screenshot`
  4. Execute

  **Geo-targeted scraping:**
  1. Set URL: `https://amazon.de`
  2. Proxy Country: `DE`
  3. Execute → Get German localized content

  ### As an AI Agent Tool

  Connect the Evomi node to an AI Agent node as a tool. The AI can scrape websites based on natural language prompts.

  **Example Prompts:**
  - "Scrape https://news.ycombinator.com and summarize the top 5 stories"
  - "Get the content from https://example.com/pricing and extract the pricing tiers"
  - "Take a screenshot of https://competitor.com/landing-page"

  ---

  ## Response Formats

  ### JSON Output

  ```json
  {
    "success": true,
    "url": "https://example.com",
    "domain": "example.com",
    "title": "Example Domain",
    "status_code": 200,
    "credits_used": 2.0,
    "credits_remaining": 98.0,
    "mode_used": "auto (request)",
    "content": "<html>...</html>"
  }
  ```

  ### Markdown Output

  Returns clean, formatted text:

  ```markdown
  # Example Domain

  This domain is for use in illustrative examples in documents...
  ```

  ### Screenshot Output

  Returns binary PNG image data that can be:
  - Saved to file
  - Uploaded to cloud storage
  - Processed by image nodes

  ---

  ## Error Handling

  The node provides comprehensive error handling with helpful messages:

  ### Input Validation Errors

  | Error | Cause | Solution |
  |-------|-------|----------|
  | "URL is required" | Empty URL field | Enter a valid URL |
  | "Invalid URL format" | Missing http:// or https:// | Add protocol to URL |
  | "Invalid proxy country code" | Not a 2-letter code | Use ISO 3166-1 alpha-2 (e.g., US, DE) |

  ### API Errors

  | Error | Cause | Solution |
  |-------|-------|----------|
  | "Invalid API key" | Wrong or expired key | Check credentials in n8n |
  | "Insufficient credits" | Account out of credits | [Add credits](https://my.evomi.com) or start a [free trial](https://my.evomi.com/scraper-api) |
  | "Rate limit exceeded" | Too many requests | Wait and retry, or upgrade plan |
  | "Failed to connect" | Network issue | Check internet connection |

  ### Continue on Fail

  Enable **"Continue on Fail"** in node settings to handle errors gracefully. Failed items will return:

  ```json
  {
    "success": false,
    "error": "Error message here",
    "itemIndex": 0
  }
  ```

  ---

  ## Credits & Pricing

  | Mode | Output | Approximate Cost |
  |------|--------|------------------|
  | Request | JSON/Markdown | 1-2 credits |
  | Auto (request used) | JSON/Markdown | 2 credits |
  | Auto (browser used) | JSON/Markdown | 6 credits |
  | Browser | JSON/Markdown | 5 credits |
  | Browser | Screenshot | 6 credits |

  Check your credit balance at [my.evomi.com](https://my.evomi.com).

  > **💡 Tip:** Start with a [free trial](https://my.evomi.com/scraper-api) to test the API before committing to a subscription.

  ---

  ## Development

  ### Setup

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

  # Install dependencies
  npm install

  # Build the project
  npm run build
  ```

  ### Testing Locally

  ```bash
  # 1. Build the node
  npm run build

  # 2. Link the package
  npm link

  # 3. Create n8n custom folder and link
  mkdir -p ~/.n8n/custom
  cd ~/.n8n/custom
  npm init -y
  npm link n8n-nodes-evomi

  # 4. Start n8n
  n8n start
  ```

  ### Linting

  ```bash
  npm run lint
  npm run lint:fix
  ```

  ---

  ## Compatibility

  - **Node.js**: >=20.15
  - **n8n**: Latest version recommended
  - **n8n Nodes API Version**: 1

  ---

  ## Resources

  - [Evomi Scraper API Documentation](https://docs.evomi.com/scraping-products-instructions/scraper-api/)
  - [Evomi Dashboard & API Playground](https://my.evomi.com/my/products/scraper-api-universal/playground)
  - [Start Free Trial](https://my.evomi.com/scraper-api)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ---

  ## Support

  | Issue Type | Where to Get Help |
  |------------|-------------------|
  | **This node** | [GitHub Issues](https://github.com/evomi/n8n-nodes-evomi/issues) |
  | **Evomi API** | [support@evomi.com](mailto:support@evomi.com) |
  | **n8n** | [n8n Community Forum](https://community.n8n.io/) |

  ---

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"A n8n community node that scrapes web pages using Evomi's Scraper API, supporting intelligent mode detection, CAPTCHA solving, and geo-targeting.","capabilities":["Web page scraping via HTTP or browser rendering","Automatic mode detection (HTTP vs browser)","Three scraping modes: auto, request, and browser","Multiple output formats: JSON, Markdown, and Screenshot","Built-in CAPTCHA solving in browser mode","Geo-targeting through proxies in 195+ countries","Comprehensive error handling and validation","AI tool compatibility for agent workflows","Dynamic content loading support with wait time configuration"],"authentication":"API key required (entered via credential manager)","commonUseCases":["Extracting structured data from websites for automation","Generating Markdown content for AI processing","Capturing website screenshots for archiving or verification","Scraping JavaScript-heavy single-page applications (SPAs)","Geographic targeting for localized content scraping"],"limitations":["Requires an active Evomi account and Scraper API subscription or credits","Free trial available but not unlimited","Browser mode automatically selected for screenshot output","Wait time limited to 0-30 seconds in Auto and Browser modes"],"relatedNodes":["n8n-nodes-base.webhook","n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.webhookResponse"]}


node_type: @crowdin/n8n-nodes-crowdin.crowdinEnterpriseFileBasedTrigger
package_name: @crowdin/n8n-nodes-crowdin
display_name: Crowdin Enterprise (File-Based) Trigger
description: Starts the workflow when Crowdin Enterprise file-based project 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: taras.prosvirov
author_github_url: https://github.com/crowdin/n8n-nodes-crowdin.git
npm_package_name: @crowdin/n8n-nodes-crowdin
npm_version: 0.8.0
community_fetched_at: 2026-04-16T09:43:36.301Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
[cell repeats an earlier one in this file: 11013 characters]

ai_documentation_summary:
  {"purpose":"This n8n community node triggers a workflow automatically when specific events occur in a Crowdin Enterprise file-based project.","capabilities":["Monitor Crowdin Enterprise file-based project events","Support account and organization level events (project/group creation/deletion)","Support project level events (full translation, review, build, QA check, export updates)","Receive webhook payloads containing event details and project metadata"],"authentication":"API key required (via n8n credentials)","commonUseCases":["Automatically start translation workflows when new projects are created","Notify teams when a project reaches full translation status","Trigger build processes when QA checks are completed","Update downstream systems when translation exports are finalized"],"limitations":["Only supports file-based projects (not string-based)","Limited to Enterprise version of Crowdin","Does not support string-based project events"],"relatedNodes":["Crowdin Enterprise (File-Based) Action","Crowdin Enterprise (String-Based) Trigger","Crowdin (File-Based) Trigger","Crowdin (String-Based) Action"]}


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

updated_at: 2026-04-16 09:43:36
author_name: zenorocha
author_github_url: https://github.com/resend/
npm_package_name: n8n-nodes-resend
npm_version: 2.4.0
community_fetched_at: 2026-04-16T09:43:36.302Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Send emails, manage contacts, create broadcasts, handle templates, domains, segments, topics, and webhooks using the Resend email platform

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "email",
      "options": [
        {
          "name": "Broadcast",
          "value": "broadcasts",
          "description": "Create, send, update, or delete email broadcasts to reach multiple contacts at once"
        },
        {
          "name": "Contact",
          "value": "contacts",
          "description": "Add, update, delete, or list contacts (email subscribers) and manage their segment and topic memberships"
        },
        {
          "name": "Contact Property",
          "value": "contactProperties",
          "description": "Create, update, delete, or list custom contact properties (metadata fields) for storing additional contact information"
        },
        {
          "name": "Domain",
          "value": "domains",
          "description": "Add, verify, update, or delete sending domains for email authentication and deliverability"
        },
        {
          "name": "Email",
          "value": "email",
          "description": "Send single or batch emails, retrieve sent emails, cancel scheduled emails, or manage email attachments"
        },
        {
          "name": "Event",
          "value": "events",
          "description": "Create, send, retrieve, update, or delete events for triggering workflows (private alpha)"
        },
        {
          "name": "Receiving Email",
          "value": "receivingEmails",
          "description": "List and retrieve received emails and their attachments from inbound email processing"
        },
        {
          "name": "Segment",
          "value": "segments",
          "description": "Create, update, delete, or list contact segments for grouping contacts based on criteria"
        },
        {
          "name": "Template",
          "value": "templates",
          "description": "Create, update, publish, duplicate, or delete reusable email templates with dynamic variables"
        },
        {
          "name": "Topic",
          "value": "topics",
          "description": "Create, update, delete, or list subscription topics for managing email preferences"
        },
        {
          "name": "Webhook",
          "value": "webhooks",
          "description": "Create, update, delete, or list webhooks for receiving real-time notifications about email events"
        },
        {
          "name": "Workflow",
          "value": "workflows",
          "description": "Create, update, delete, or list automated email workflows and monitor runs (private alpha)"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send",
      "options": [
        {
          "name": "Cancel",
          "value": "cancel",
          "action": "Cancel a scheduled email",
          "description": "Cancel a previously scheduled email by its email ID before it gets sent"
        },
        {
          "name": "Get Attachment",
          "value": "getAttachment",
          "action": "Get attachment from email",
          "description": "Download a specific attachment from a sent email using the email ID and attachment ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all sent emails",
          "description": "Get a list of all previously sent emails with their status, subject, and recipients"
        },
        {
          "name": "List Attachments",
          "value": "listAttachments",
          "action": "List email attachments",
          "description": "Get all attachments from a sent email by providing the email ID"
        },
        {
          "name": "Retrieve",
          "value": "retrieve",
          "action": "Get email details",
          "description": "Get details of a specific sent email including subject, recipients, status, and timestamps"
        },
        {
          "name": "Send",
          "value": "send",
          "action": "Send a new email",
          "description": "Send a new email to one or more recipients with HTML or plain text content, attachments, and optional scheduling"
        },
        {
          "name": "Send and Wait for Response",
          "value": "sendAndWait",
          "action": "Send email and wait for recipient response",
          "description": "Send an email with response buttons and pause workflow execution until the recipient clicks a response"
        },
        {
          "name": "Send Batch",
          "value": "sendBatch",
          "action": "Send multiple emails in batch",
          "description": "Send up to 100 emails in a single API call for bulk email delivery with individual customization"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update scheduled email time",
          "description": "Reschedule a scheduled email by updating its scheduled_at time before it is sent"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "email"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an email template",
          "description": "Create a new reusable email template with HTML content and dynamic variables for personalization"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a template",
          "description": "Permanently delete an email template by its template ID"
        },
        {
          "name": "Duplicate",
          "value": "duplicate",
          "action": "Duplicate a template",
          "description": "Create a copy of an existing template with a new name for easy customization"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get template details",
          "description": "Retrieve a template's details including HTML content, variables, and publish status by template ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all templates",
          "description": "Get all email templates with their names, IDs, and publish status"
        },
        {
          "name": "Publish",
          "value": "publish",
          "action": "Publish a template",
          "description": "Publish a template to make it available for sending emails. Required before a template can be used in email operations."
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a template",
          "description": "Update a template's name, subject, HTML content, or variables"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "templates"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Add a new sending domain",
          "description": "Add a new sending domain for email authentication. Returns DNS records that must be configured for verification."
        },
        {
          "name": "Create Tracking Domain",
          "value": "createTrackingDomain",
          "action": "Create a tracking domain",
          "description": "Create a custom domain for click and open tracking (private alpha)"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a domain",
          "description": "Remove a sending domain from your account. Emails can no longer be sent from this domain after deletion."
        },
        {
          "name": "Delete Tracking Domain",
          "value": "deleteTrackingDomain",
          "action": "Delete a tracking domain",
          "description": "Remove an existing click tracking domain (private alpha)"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get domain details",
          "description": "Retrieve details of a domain including DNS records, verification status, and configuration"
        },
        {
          "name": "Get Tracking Domain",
          "value": "getTrackingDomain",
          "action": "Get tracking domain details",
          "description": "Retrieve a single click tracking domain with its DNS records and verification status (private alpha)"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all domains",
          "description": "Get all sending domains with their verification status and DNS record requirements"
        },
        {
          "name": "List Tracking Domains",
          "value": "listTrackingDomains",
          "action": "List tracking domains",
          "description": "List all tracking domains for a given domain (private alpha)"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update domain settings",
          "description": "Update domain settings such as click tracking, open tracking, or TLS requirements"
        },
        {
          "name": "Verify",
          "value": "verify",
          "action": "Verify domain DNS records",
          "description": "Trigger verification of DNS records for a domain. Use after configuring DNS to check if domain is ready for sending."
        },
        {
          "name": "Verify Tracking Domain",
          "value": "verifyTrackingDomain",
          "action": "Verify a tracking domain",
          "description": "Trigger DNS verification for a tracking domain (private alpha)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "domains"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a broadcast campaign",
          "description": "Create a new email broadcast campaign with subject, content, and target audience for bulk email sending"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a broadcast",
          "description": "Permanently delete a broadcast campaign by its broadcast ID"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get broadcast details",
          "description": "Retrieve details of a specific broadcast including status, subject, audience, and send statistics"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all broadcasts",
          "description": "Get a list of all broadcast campaigns with their status, subject lines, and creation dates"
        },
        {
          "name": "Send",
          "value": "send",
          "action": "Send a broadcast",
          "description": "Trigger the sending of a broadcast campaign to its target audience immediately or at a scheduled time"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a broadcast",
          "description": "Update a broadcast's subject, content, audience, or schedule before it is sent"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "broadcasts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a contact segment",
          "description": "Create a new contact segment for grouping contacts based on criteria or manual assignment"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a segment",
          "description": "Permanently delete a segment by its segment ID. Contacts in the segment are not deleted."
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get segment details",
          "description": "Retrieve details of a specific segment including its name, contact count, and creation date"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all segments",
          "description": "Get all segments in the account with their names, IDs, and contact counts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "segments"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a subscription topic",
          "description": "Create a new subscription topic for organizing email preferences and managing unsubscribe options"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a topic",
          "description": "Permanently delete a subscription topic by its topic ID"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get topic details",
          "description": "Retrieve details of a specific topic including its name, description, and subscriber count"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all topics",
          "description": "Get all subscription topics with their names, IDs, and subscriber counts"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a topic",
          "description": "Update a topic's name or description"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "topics"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Add to Segment",
          "value": "addToSegment",
          "action": "Add contact to a segment",
          "description": "Add an existing contact to a segment by providing the contact ID and segment ID"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new contact",
          "description": "Create a new contact with email address, optional name, custom properties, and segment/topic assignments"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a contact",
          "description": "Permanently delete a contact by their contact ID"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get contact details",
          "description": "Retrieve a contact's details including email, name, properties, and subscription status by contact ID"
        },
        {
          "name": "Get Topics",
          "value": "getTopics",
          "action": "Get contact topic subscriptions",
          "description": "Get all topic subscriptions (opt-in/opt-out status) for a specific contact"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all contacts",
          "description": "Get a list of all contacts in the account with their email addresses and basic information"
        },
        {
          "name": "List Segments",
          "value": "listSegments",
          "action": "List contact segments",
          "description": "Get all segments that a specific contact belongs to"
        },
        {
          "name": "Remove From Segment",
          "value": "removeFromSegment",
          "action": "Remove contact from segment",
          "description": "Remove a contact from a segment by providing the contact ID and segment ID"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update contact details",
          "description": "Update a contact's information including name, email, properties, or unsubscribe status"
        },
        {
          "name": "Update Topics",
          "value": "updateTopics",
          "action": "Update contact topic subscriptions",
          "description": "Update a contact's topic subscription preferences (opt-in or opt-out of specific topics)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contacts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a contact property",
          "description": "Create a new custom contact property (metadata field) for storing additional information about contacts"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a contact property",
          "description": "Permanently delete a contact property. This removes the property from all contacts."
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get contact property details",
          "description": "Retrieve details of a specific contact property including its name, type, and configuration"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all contact properties",
          "description": "Get all custom contact properties defined for storing contact metadata"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a contact property",
          "description": "Update a contact property's name or configuration"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contactProperties"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a webhook endpoint",
          "description": "Create a new webhook endpoint to receive real-time notifications for email events like delivered, opened, clicked, bounced"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a webhook",
          "description": "Delete a webhook endpoint. Events will no longer be sent to this URL."
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get webhook details",
          "description": "Retrieve details of a webhook including its URL, subscribed events, and status"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all webhooks",
          "description": "Get all configured webhooks with their URLs, event subscriptions, and status"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a webhook",
          "description": "Update a webhook's URL or the events it is subscribed to"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webhooks"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get received email details",
          "description": "Retrieve a specific received email including sender, subject, body, and headers by email ID"
        },
        {
          "name": "Get Attachment",
          "value": "getAttachment",
          "action": "Download attachment from received email",
          "description": "Download a specific attachment from a received email by email ID and attachment ID"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all received emails",
          "description": "Get all emails received through inbound email processing with sender, subject, and timestamps"
        },
        {
          "name": "List Attachments",
          "value": "listAttachments",
          "action": "List attachments from received email",
          "description": "Get all attachments from a received email including filenames, sizes, and content types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "receivingEmails"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a workflow",
          "description": "Create a new workflow to automate email sequences"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a workflow",
          "description": "Remove an existing workflow"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get workflow details",
          "description": "Retrieve a single workflow with its steps and edges"
        },
        {
          "name": "Get Run",
          "value": "getRun",
          "action": "Get a workflow run",
          "description": "Retrieve a single workflow run"
        },
        {
          "name": "Get Run Step",
          "value": "getRunStep",
          "action": "Get a workflow run step",
          "description": "Retrieve a single workflow run step"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all workflows",
          "description": "Retrieve a list of workflows"
        },
        {
          "name": "List Run Steps",
          "value": "listRunSteps",
          "action": "List workflow run steps",
          "description": "Retrieve a list of workflow run steps"
        },
        {
          "name": "List Runs",
          "value": "listRuns",
          "action": "List workflow runs",
          "description": "Retrieve a list of workflow runs"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a workflow",
          "description": "Update an existing workflow (enable or disable)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workflows"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an event",
          "description": "Create a new event that can be used to trigger workflows"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an event",
          "description": "Remove an existing event by ID or name"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get event details",
          "description": "Retrieve a single event by ID or name"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List all events",
          "description": "Retrieve a list of events"
        },
        {
          "name": "Send",
          "value": "send",
          "action": "Send an event",
          "description": "Send a named event to trigger matching workflows"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an event",
          "description": "Update an existing event schema"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "events"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Cancel",
      "value": "cancel",
      "action": "Cancel a scheduled email",
      "description": "Cancel a previously scheduled email by its email ID before it gets sent",
      "resource": "email"
    },
    {
      "name": "Get Attachment",
      "value": "getAttachment",
      "action": "Get attachment from email",
      "description": "Download a specific attachment from a sent email using the email ID and attachment ID",
      "resource": "email"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all sent emails",
      "description": "Get a list of all previously sent emails with their status, subject, and recipients",
      "resource": "email"
    },
    {
      "name": "List Attachments",
      "value": "listAttachments",
      "action": "List email attachments",
      "description": "Get all attachments from a sent email by providing the email ID",
      "resource": "email"
    },
    {
      "name": "Retrieve",
      "value": "retrieve",
      "action": "Get email details",
      "description": "Get details of a specific sent email including subject, recipients, status, and timestamps",
      "resource": "email"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send a new email",
      "description": "Send a new email to one or more recipients with HTML or plain text content, attachments, and optional scheduling",
      "resource": "email"
    },
    {
      "name": "Send and Wait for Response",
      "value": "sendAndWait",
      "action": "Send email and wait for recipient response",
      "description": "Send an email with response buttons and pause workflow execution until the recipient clicks a response",
      "resource": "email"
    },
    {
      "name": "Send Batch",
      "value": "sendBatch",
      "action": "Send multiple emails in batch",
      "description": "Send up to 100 emails in a single API call for bulk email delivery with individual customization",
      "resource": "email"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update scheduled email time",
      "description": "Reschedule a scheduled email by updating its scheduled_at time before it is sent",
      "resource": "email"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an email template",
      "description": "Create a new reusable email template with HTML content and dynamic variables for personalization",
      "resource": "templates"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a template",
      "description": "Permanently delete an email template by its template ID",
      "resource": "templates"
    },
    {
      "name": "Duplicate",
      "value": "duplicate",
      "action": "Duplicate a template",
      "description": "Create a copy of an existing template with a new name for easy customization",
      "resource": "templates"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get template details",
      "description": "Retrieve a template's details including HTML content, variables, and publish status by template ID",
      "resource": "templates"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all templates",
      "description": "Get all email templates with their names, IDs, and publish status",
      "resource": "templates"
    },
    {
      "name": "Publish",
      "value": "publish",
      "action": "Publish a template",
      "description": "Publish a template to make it available for sending emails. Required before a template can be used in email operations.",
      "resource": "templates"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a template",
      "description": "Update a template's name, subject, HTML content, or variables",
      "resource": "templates"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Add a new sending domain",
      "description": "Add a new sending domain for email authentication. Returns DNS records that must be configured for verification.",
      "resource": "domains"
    },
    {
      "name": "Create Tracking Domain",
      "value": "createTrackingDomain",
      "action": "Create a tracking domain",
      "description": "Create a custom domain for click and open tracking (private alpha)",
      "resource": "domains"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a domain",
      "description": "Remove a sending domain from your account. Emails can no longer be sent from this domain after deletion.",
      "resource": "domains"
    },
    {
      "name": "Delete Tracking Domain",
      "value": "deleteTrackingDomain",
      "action": "Delete a tracking domain",
      "description": "Remove an existing click tracking domain (private alpha)",
      "resource": "domains"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get domain details",
      "description": "Retrieve details of a domain including DNS records, verification status, and configuration",
      "resource": "domains"
    },
    {
      "name": "Get Tracking Domain",
      "value": "getTrackingDomain",
      "action": "Get tracking domain details",
      "description": "Retrieve a single click tracking domain with its DNS records and verification status (private alpha)",
      "resource": "domains"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all domains",
      "description": "Get all sending domains with their verification status and DNS record requirements",
      "resource": "domains"
    },
    {
      "name": "List Tracking Domains",
      "value": "listTrackingDomains",
      "action": "List tracking domains",
      "description": "List all tracking domains for a given domain (private alpha)",
      "resource": "domains"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update domain settings",
      "description": "Update domain settings such as click tracking, open tracking, or TLS requirements",
      "resource": "domains"
    },
    {
      "name": "Verify",
      "value": "verify",
      "action": "Verify domain DNS records",
      "description": "Trigger verification of DNS records for a domain. Use after configuring DNS to check if domain is ready for sending.",
      "resource": "domains"
    },
    {
      "name": "Verify Tracking Domain",
      "value": "verifyTrackingDomain",
      "action": "Verify a tracking domain",
      "description": "Trigger DNS verification for a tracking domain (private alpha)",
      "resource": "domains"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a broadcast campaign",
      "description": "Create a new email broadcast campaign with subject, content, and target audience for bulk email sending",
      "resource": "broadcasts"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a broadcast",
      "description": "Permanently delete a broadcast campaign by its broadcast ID",
      "resource": "broadcasts"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get broadcast details",
      "description": "Retrieve details of a specific broadcast including status, subject, audience, and send statistics",
      "resource": "broadcasts"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all broadcasts",
      "description": "Get a list of all broadcast campaigns with their status, subject lines, and creation dates",
      "resource": "broadcasts"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send a broadcast",
      "description": "Trigger the sending of a broadcast campaign to its target audience immediately or at a scheduled time",
      "resource": "broadcasts"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a broadcast",
      "description": "Update a broadcast's subject, content, audience, or schedule before it is sent",
      "resource": "broadcasts"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a contact segment",
      "description": "Create a new contact segment for grouping contacts based on criteria or manual assignment",
      "resource": "segments"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a segment",
      "description": "Permanently delete a segment by its segment ID. Contacts in the segment are not deleted.",
      "resource": "segments"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get segment details",
      "description": "Retrieve details of a specific segment including its name, contact count, and creation date",
      "resource": "segments"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all segments",
      "description": "Get all segments in the account with their names, IDs, and contact counts",
      "resource": "segments"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a subscription topic",
      "description": "Create a new subscription topic for organizing email preferences and managing unsubscribe options",
      "resource": "topics"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a topic",
      "description": "Permanently delete a subscription topic by its topic ID",
      "resource": "topics"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get topic details",
      "description": "Retrieve details of a specific topic including its name, description, and subscriber count",
      "resource": "topics"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all topics",
      "description": "Get all subscription topics with their names, IDs, and subscriber counts",
      "resource": "topics"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a topic",
      "description": "Update a topic's name or description",
      "resource": "topics"
    },
    {
      "name": "Add to Segment",
      "value": "addToSegment",
      "action": "Add contact to a segment",
      "description": "Add an existing contact to a segment by providing the contact ID and segment ID",
      "resource": "contacts"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new contact",
      "description": "Create a new contact with email address, optional name, custom properties, and segment/topic assignments",
      "resource": "contacts"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a contact",
      "description": "Permanently delete a contact by their contact ID",
      "resource": "contacts"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get contact details",
      "description": "Retrieve a contact's details including email, name, properties, and subscription status by contact ID",
      "resource": "contacts"
    },
    {
      "name": "Get Topics",
      "value": "getTopics",
      "action": "Get contact topic subscriptions",
      "description": "Get all topic subscriptions (opt-in/opt-out status) for a specific contact",
      "resource": "contacts"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all contacts",
      "description": "Get a list of all contacts in the account with their email addresses and basic information",
      "resource": "contacts"
    },
    {
      "name": "List Segments",
      "value": "listSegments",
      "action": "List contact segments",
      "description": "Get all segments that a specific contact belongs to",
      "resource": "contacts"
    },
    {
      "name": "Remove From Segment",
      "value": "removeFromSegment",
      "action": "Remove contact from segment",
      "description": "Remove a contact from a segment by providing the contact ID and segment ID",
      "resource": "contacts"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update contact details",
      "description": "Update a contact's information including name, email, properties, or unsubscribe status",
      "resource": "contacts"
    },
    {
      "name": "Update Topics",
      "value": "updateTopics",
      "action": "Update contact topic subscriptions",
      "description": "Update a contact's topic subscription preferences (opt-in or opt-out of specific topics)",
      "resource": "contacts"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a contact property",
      "description": "Create a new custom contact property (metadata field) for storing additional information about contacts",
      "resource": "contactProperties"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a contact property",
      "description": "Permanently delete a contact property. This removes the property from all contacts.",
      "resource": "contactProperties"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get contact property details",
      "description": "Retrieve details of a specific contact property including its name, type, and configuration",
      "resource": "contactProperties"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all contact properties",
      "description": "Get all custom contact properties defined for storing contact metadata",
      "resource": "contactProperties"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a contact property",
      "description": "Update a contact property's name or configuration",
      "resource": "contactProperties"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a webhook endpoint",
      "description": "Create a new webhook endpoint to receive real-time notifications for email events like delivered, opened, clicked, bounced",
      "resource": "webhooks"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a webhook",
      "description": "Delete a webhook endpoint. Events will no longer be sent to this URL.",
      "resource": "webhooks"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get webhook details",
      "description": "Retrieve details of a webhook including its URL, subscribed events, and status",
      "resource": "webhooks"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all webhooks",
      "description": "Get all configured webhooks with their URLs, event subscriptions, and status",
      "resource": "webhooks"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a webhook",
      "description": "Update a webhook's URL or the events it is subscribed to",
      "resource": "webhooks"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get received email details",
      "description": "Retrieve a specific received email including sender, subject, body, and headers by email ID",
      "resource": "receivingEmails"
    },
    {
      "name": "Get Attachment",
      "value": "getAttachment",
      "action": "Download attachment from received email",
      "description": "Download a specific attachment from a received email by email ID and attachment ID",
      "resource": "receivingEmails"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all received emails",
      "description": "Get all emails received through inbound email processing with sender, subject, and timestamps",
      "resource": "receivingEmails"
    },
    {
      "name": "List Attachments",
      "value": "listAttachments",
      "action": "List attachments from received email",
      "description": "Get all attachments from a received email including filenames, sizes, and content types",
      "resource": "receivingEmails"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a workflow",
      "description": "Create a new workflow to automate email sequences",
      "resource": "workflows"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a workflow",
      "description": "Remove an existing workflow",
      "resource": "workflows"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get workflow details",
      "description": "Retrieve a single workflow with its steps and edges",
      "resource": "workflows"
    },
    {
      "name": "Get Run",
      "value": "getRun",
      "action": "Get a workflow run",
      "description": "Retrieve a single workflow run",
      "resource": "workflows"
    },
    {
      "name": "Get Run Step",
      "value": "getRunStep",
      "action": "Get a workflow run step",
      "description": "Retrieve a single workflow run step",
      "resource": "workflows"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all workflows",
      "description": "Retrieve a list of workflows",
      "resource": "workflows"
    },
    {
      "name": "List Run Steps",
      "value": "listRunSteps",
      "action": "List workflow run steps",
      "description": "Retrieve a list of workflow run steps",
      "resource": "workflows"
    },
    {
      "name": "List Runs",
      "value": "listRuns",
      "action": "List workflow runs",
      "description": "Retrieve a list of workflow runs",
      "resource": "workflows"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a workflow",
      "description": "Update an existing workflow (enable or disable)",
      "resource": "workflows"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an event",
      "description": "Create a new event that can be used to trigger workflows",
      "resource": "events"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an event",
      "description": "Remove an existing event by ID or name",
      "resource": "events"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get event details",
      "description": "Retrieve a single event by ID or name",
      "resource": "events"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List all events",
      "description": "Retrieve a list of events",
      "resource": "events"
    },
    {
      "name": "Send",
      "value": "send",
      "action": "Send an event",
      "description": "Send a named event to trigger matching workflows",
      "resource": "events"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an event",
      "description": "Update an existing event schema",
      "resource": "events"
    }
  ]

npm_readme:
  <h1 align="center">
    <br>
    <a href="/"><img src=".github/media/resend-header.png" alt="n8n-nodes-resend" width="900"></a>
    <br>
  </h1>

  <p align="center">
  	<img alt="NPM Version" src="https://img.shields.io/npm/v/n8n-nodes-resend">
  	<img alt="GitHub License" src="https://img.shields.io/github/license/resend/n8n-nodes-resend">
  	<img alt="NPM Downloads" src="https://img.shields.io/npm/dm/n8n-nodes-resend">
  	<img alt="NPM Last Update" src="https://img.shields.io/npm/last-update/n8n-nodes-resend">
  	<img alt="Static Badge" src="https://img.shields.io/badge/n8n-2.6.4-EA4B71?logo=n8n">
  </p>

  <p align="center">
    <a href="#installation">Installation</a> |
    <a href="#credentials">Credentials</a> |
    <a href="#human-in-the-loop">Human in the Loop</a> |
    <a href="#resources">Resources</a> |
    <a href="#trigger-events">Trigger Events</a> |
    <a href="#limitations">Limitations</a> |
    <a href="#development">Development</a>
  </p>

  ---

  The official node for [n8n](https://n8n.io) that integrates with the [Resend](https://resend.com) API. Send emails, manage contacts, handle domains, and receive webhooks.

  ## API Coverage

  > [!WARNING]
  > Audiences are deprecated in favor of Segments and won't be supported in this node. Please use Segments for contact grouping and targeting.

  The table below shows which endpoints are currently implemented:

  <details>
  <summary><strong>View all endpoints</strong></summary>

  | API Resource           | Endpoint              | Status  | Operations                                                                                                       |
  | ---------------------- | --------------------- | ------- | ---------------------------------------------------------------------------------------------------------------- |
  | **Email**              | `/emails`             | ✅ Full | Send, Send Batch, Send and Wait, List, Get, Update, Cancel, List Attachments, Get Attachment                     |
  | **Receiving Emails**   | `/emails/receiving`   | ✅ Full | List, Get, List Attachments, Get Attachment                                                                      |
  | **Domains**            | `/domains`            | ✅ Full | Create, List, Get, Update, Delete, Verify                                                                        |
  | **Templates**          | `/templates`          | ✅ Full | Create, List, Get, Update, Delete, Publish, Duplicate                                                            |
  | **Contacts**           | `/contacts`           | ✅ Full | Create, List, Get, Update, Delete, Add to Segment, List Segments, Remove from Segment, Get Topics, Update Topics |
  | **Broadcasts**         | `/broadcasts`         | ✅ Full | Create, List, Get, Update, Delete, Send                                                                          |
  | **Segments**           | `/segments`           | ✅ Full | Create, List, Get, Delete                                                                                        |
  | **Topics**             | `/topics`             | ✅ Full | Create, List, Get, Update, Delete                                                                                |
  | **Contact Properties** | `/contact-properties` | ✅ Full | Create, List, Get, Update, Delete                                                                                |
  | **Webhooks**           | `/webhooks`           | ✅ Full | Create, List, Get, Update, Delete                                                                                |

  </details>

  ## Installation

  1. Make a new workflow or open an existing one
  2. Open the nodes panel by selecting **+** or pressing **Tab**
  3. Search for **Resend**
  4. Select **Install** to install the node for your instance

  ## Credentials

  This package uses two separate credentials:

  ### Resend API

  1. Get your API key from [Resend Dashboard](https://resend.com/api-keys)
  2. In n8n, go to **Credentials** > **Add credential**
  3. Search for **Resend API** and paste your key

  This credential is used by the main **Resend** node for all API operations.

  ### Resend Webhook Signing Secret

  1. Create a webhook endpoint in your [Resend Dashboard](https://resend.com/webhooks)
  2. Copy the signing secret (starts with `whsec_`)
  3. In n8n, go to **Credentials** > **Add credential**
  4. Search for **Resend Webhook Signing Secret** and paste your secret

  This credential is used exclusively by the **Resend Trigger** node for webhook signature verification. Each webhook endpoint in Resend has its own unique signing secret.

  ## Human in the Loop

  The **Send and Wait for Response** operation enables human-in-the-loop workflows. Send an email and pause the workflow until the recipient responds via approval buttons or a form.

  ### Features

  - **Approval Workflows**: Send emails with Approve/Decline buttons for quick decisions
  - **Free Text Responses**: Collect text input via a response form
  - **Configurable Wait Time**: Set a timeout or wait indefinitely
  - **Secure Callbacks**: Responses use signed URLs for security

  ### How to Use

  The workflow pauses at the email step and resumes automatically once the recipient clicks a button or submits the response form.

  1. In the node panel, go to **Human in the Loop** > **Resend**
  2. Or select **Email** resource > **Send and Wait for Response** operation

  ### Configuration Options

  | Option                   | Description                                              |
  | ------------------------ | -------------------------------------------------------- |
  | **Response Type**        | Choose between Approval (buttons) or Free Text (form)    |
  | **Approval Type**        | Single button (Approve only) or Double (Approve/Decline) |
  | **Button Labels**        | Customize the button text                                |
  | **Button Styles**        | Primary or Secondary styling                             |
  | **Message Button Label** | Label for the form link button (Free Text mode)          |
  | **Response Form Title**  | Title shown on the response form                         |
  | **Limit Wait Time**      | Set a timeout for the wait period                        |

  ## Resources

  <details>
  <summary><strong>Email</strong></summary>

  | Operation        | Description                                       |
  | ---------------- | ------------------------------------------------- |
  | Send             | Send a single email with optional attachments     |
  | Send Batch       | Send up to 100 emails in one request              |
  | Send and Wait    | Send email and wait for recipient response (HITL) |
  | List             | List sent emails                                  |
  | Get              | Retrieve email details and status                 |
  | Cancel           | Cancel a scheduled email                          |
  | Update           | Modify a scheduled email                          |
  | List Attachments | List attachments for a sent email                 |
  | Get Attachment   | Get a specific attachment from a sent email       |

  </details>

  <details>
  <summary><strong>Receiving Email</strong></summary>

  | Operation        | Description                                     |
  | ---------------- | ----------------------------------------------- |
  | List             | List all received emails                        |
  | Get              | Retrieve a received email                       |
  | List Attachments | List attachments for a received email           |
  | Get Attachment   | Get a specific attachment from a received email |

  </details>

  <details>
  <summary><strong>Contact</strong></summary>

  | Operation           | Description                              |
  | ------------------- | ---------------------------------------- |
  | Create              | Add a new contact                        |
  | Get                 | Retrieve contact details                 |
  | Update              | Modify contact information               |
  | Delete              | Remove a contact                         |
  | List                | List all contacts                        |
  | Add to Segment      | Add a contact to a segment               |
  | List Segments       | List segments for a contact              |
  | Remove From Segment | Remove a contact from a segment          |
  | Get Topics          | Get topic subscriptions for a contact    |
  | Update Topics       | Update topic subscriptions for a contact |

  </details>

  <details>
  <summary><strong>Contact Property</strong></summary>

  | Operation | Description                      |
  | --------- | -------------------------------- |
  | Create    | Create a custom contact property |
  | Get       | Retrieve property details        |
  | Update    | Modify property settings         |
  | Delete    | Remove a property                |
  | List      | List all contact properties      |

  </details>

  <details>
  <summary><strong>Segment</strong></summary>

  | Operation | Description                                          |
  | --------- | ---------------------------------------------------- |
  | Create    | Create a new segment with optional filter conditions |
  | Get       | Retrieve segment details                             |
  | Delete    | Remove a segment                                     |
  | List      | List all segments                                    |

  </details>

  <details>
  <summary><strong>Topic</strong></summary>

  | Operation | Description                 |
  | --------- | --------------------------- |
  | Create    | Create a subscription topic |
  | Get       | Retrieve topic details      |
  | Update    | Modify topic settings       |
  | Delete    | Remove a topic              |
  | List      | List all topics             |

  </details>

  <details>
  <summary><strong>Broadcast</strong></summary>

  | Operation | Description                   |
  | --------- | ----------------------------- |
  | Create    | Create an email campaign      |
  | Get       | Retrieve broadcast details    |
  | Send      | Send a broadcast to a segment |
  | Update    | Modify broadcast settings     |
  | Delete    | Remove a broadcast            |
  | List      | List all broadcasts           |

  </details>

  <details>
  <summary><strong>Template</strong></summary>

  | Operation | Description                    |
  | --------- | ------------------------------ |
  | Create    | Create an email template       |
  | Get       | Retrieve template details      |
  | Update    | Modify a template              |
  | Delete    | Remove a template              |
  | List      | List all templates             |
  | Publish   | Publish a template             |
  | Duplicate | Duplicate an existing template |

  </details>

  <details>
  <summary><strong>Domain</strong></summary>

  | Operation | Description                 |
  | --------- | --------------------------- |
  | Create    | Add a sending domain        |
  | Get       | Retrieve domain details     |
  | Verify    | Trigger domain verification |
  | Update    | Modify domain settings      |
  | Delete    | Remove a domain             |
  | List      | List all domains            |

  </details>

  <details>
  <summary><strong>Webhook</strong></summary>

  | Operation | Description               |
  | --------- | ------------------------- |
  | Create    | Create a webhook endpoint |
  | Get       | Retrieve webhook details  |
  | Update    | Modify webhook settings   |
  | Delete    | Remove a webhook          |
  | List      | List all webhooks         |

  </details>

  ## Trigger Events

  The **Resend Trigger** node receives webhooks for real-time email events. Signatures are automatically verified using Svix.

  > **Note:** The trigger node requires the **Resend Webhook Signing Secret** credential (separate from the Resend API credential). See the [Credentials](#credentials) section for setup instructions.

  <details>
  <summary><strong>View all events</strong></summary>

  | Event                    | Description                          |
  | ------------------------ | ------------------------------------ |
  | `email.sent`             | Email sent to recipient              |
  | `email.delivered`        | Email delivered successfully         |
  | `email.delivery_delayed` | Email delivery delayed               |
  | `email.opened`           | Recipient opened the email           |
  | `email.clicked`          | Link clicked in email                |
  | `email.bounced`          | Email bounced                        |
  | `email.complained`       | Spam complaint received              |
  | `email.failed`           | Email failed to send due to an error |
  | `email.received`         | Inbound email received by Resend     |
  | `email.scheduled`        | Email scheduled to be sent           |
  | `email.suppressed`       | Email suppressed by Resend           |
  | `contact.created`        | New contact added                    |
  | `contact.updated`        | Contact modified                     |
  | `contact.deleted`        | Contact removed                      |
  | `domain.created`         | New domain added                     |
  | `domain.updated`         | Domain modified                      |
  | `domain.deleted`         | Domain removed                       |

  </details>

  ## Limitations

  - Maximum email size: 40MB (including attachments)
  - Attachments not supported with scheduled emails

  ## Development

  ```bash
  git clone https://github.com/resend/n8n-nodes-resend.git
  cd n8n-nodes-resend
  npm install
  npm run build
  npm run lint
  ```

  ## License

  [MIT](LICENSE.md)

  <p align="center">
    <a href="https://github.com/resend/n8n-nodes-resend">GitHub</a> |
    <a href="https://github.com/resend/n8n-nodes-resend/issues">Issues</a> |
    <a href="https://resend.com/docs">Resend Docs</a>
  </p>

ai_documentation_summary:
  {"purpose":"This n8n node integrates with the Resend email platform to send emails, manage contacts, create broadcasts, handle templates and domains, and receive webhooks.","capabilities":["Send emails (single, batch, with wait)","List and retrieve email details and attachments","Manage email domains (create, verify, update, delete)","Create and manage email templates","Manage contacts and segments","Create and send broadcasts","Manage topics and contact properties","Set up and manage webhooks","Human-in-the-loop workflows with approval buttons and form responses"],"authentication":"API key required (Resend API key) and Webhook Signing Secret (whsec_) for trigger nodes","commonUseCases":["Transactional email notifications","Marketing email campaigns and broadcasts","Customer segmentation and targeted messaging","Email verification and domain management","Workflow pauses for user approval or feedback collection"],"limitations":["Audiences feature is deprecated; only Segments are supported","Webhook signing secrets are unique per endpoint and must be configured separately"],"relatedNodes":["Resend Trigger","Human in the Loop (Resend)","Generic HTTP Request","Generic Webhook"]}


node_type: n8n-nodes-eranol.eranol
package_name: n8n-nodes-eranol
display_name: Eranol
description: Interact with the Eranol FFmpeg media processing API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: lonare
author_github_url: https://github.com/harshalone/
npm_package_name: n8n-nodes-eranol
npm_version: 0.2.4
community_fetched_at: 2026-04-16T09:43:36.303Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "video",
      "options": [
        {
          "name": "Audio",
          "value": "audio"
        },
        {
          "name": "Compose",
          "value": "compose"
        },
        {
          "name": "Convert",
          "value": "convert"
        },
        {
          "name": "Image",
          "value": "image"
        },
        {
          "name": "Job",
          "value": "job"
        },
        {
          "name": "Notify",
          "value": "notify"
        },
        {
          "name": "Video",
          "value": "video"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "trim",
      "options": [
        {
          "name": "Add Intro",
          "value": "addIntro",
          "action": "Add intro to video",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/add-intro",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Prepend an intro clip to a video"
        },
        {
          "name": "Add Outro",
          "value": "addOutro",
          "action": "Add outro to video",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/add-outro",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Append an outro clip to a video"
        },
        {
          "name": "Caption",
          "value": "caption",
          "action": "Add captions to video",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/caption",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Generate captions from audio using speech recognition"
        },
        {
          "name": "Extract Audio",
          "value": "extractAudio",
          "action": "Extract audio from video",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/extract/audio",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Extract the audio track as a WAV file"
        },
        {
          "name": "Extract Images",
          "value": "extractImages",
          "action": "Extract images from video",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/extract/images",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Extract frames as PNG images"
        },
        {
          "name": "Generate GIF",
          "value": "generateGif",
          "action": "Generate GIF from video",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/extract/gif",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Create a GIF from a video segment (max 60s)"
        },
        {
          "name": "Overlay",
          "value": "overlay",
          "action": "Add overlays to video",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/overlay",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Add text or image overlays to a video"
        },
        {
          "name": "Progress Bar",
          "value": "progressBar",
          "action": "Add progress bar to video",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/progress-bar",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Add an animated progress indicator to a video"
        },
        {
          "name": "Reframe",
          "value": "reframe",
          "action": "Reframe video",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/reframe",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Change the aspect ratio with colored padding"
        },
        {
          "name": "Thumbnail",
          "value": "thumbnail",
          "action": "Create video thumbnail",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/thumbnail",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Extract a frame with optional text overlay"
        },
        {
          "name": "Trim",
          "value": "trim",
          "action": "Trim video",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/trim",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Cut a video segment using lossless stream copy"
        },
        {
          "name": "Watermark",
          "value": "watermark",
          "action": "Add watermark to video",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/watermark",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Overlay a logo or watermark on a video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "denoise",
      "options": [
        {
          "name": "Denoise",
          "value": "denoise",
          "action": "Denoise audio",
          "routing": {
            "request": {
              "url": "/ffmpeg/audio/denoise",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Remove background noise from audio"
        },
        {
          "name": "Highlights",
          "value": "highlights",
          "action": "Extract audio highlights",
          "routing": {
            "request": {
              "url": "/ffmpeg/audio/highlights",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Extract the loudest segments based on RMS energy"
        },
        {
          "name": "Remove Silence",
          "value": "removeSilence",
          "action": "Remove silence from audio",
          "routing": {
            "request": {
              "url": "/ffmpeg/audio/remove-silence",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Detect and eliminate quiet gaps in audio"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "videoToMp4",
      "options": [
        {
          "name": "Audio to MP3",
          "value": "audioToMp3",
          "action": "Convert audio to MP3",
          "routing": {
            "request": {
              "url": "/ffmpeg/convert/audio/to/mp3",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Convert an audio file to MP3 format"
        },
        {
          "name": "Audio to WAV",
          "value": "audioToWav",
          "action": "Convert audio to WAV",
          "routing": {
            "request": {
              "url": "/ffmpeg/convert/audio/to/wav",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Convert an audio file to WAV format"
        },
        {
          "name": "Image to JPG",
          "value": "imageToJpg",
          "action": "Convert image to JPG",
          "routing": {
            "request": {
              "url": "/ffmpeg/convert/image/to/jpg",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Convert an image file to JPG format"
        },
        {
          "name": "Image to WebP",
          "value": "imageToWebp",
          "action": "Convert image to web p",
          "routing": {
            "request": {
              "url": "/ffmpeg/convert/image/to/webp",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Convert an image file to WebP format"
        },
        {
          "name": "Video to MP4",
          "value": "videoToMp4",
          "action": "Convert video to MP4",
          "routing": {
            "request": {
              "url": "/ffmpeg/convert/video/to/mp4",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Convert a video file to MP4 format"
        },
        {
          "name": "Video to WebM",
          "value": "videoToWebm",
          "action": "Convert video to web m",
          "routing": {
            "request": {
              "url": "/ffmpeg/convert/video/to/webm",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Convert a video file to WebM format (VP9 + Opus)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "convert"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "merge",
      "options": [
        {
          "name": "Concat",
          "value": "concat",
          "action": "Concatenate videos",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/concat",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Merge video clips in order into a single video"
        },
        {
          "name": "Compose Video",
          "value": "composeVideo",
          "action": "Compose video with overlays",
          "routing": {
            "request": {
              "url": "/ffmpeg/video/compose",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Overlay video or image segments onto a main video at specific time ranges"
        },
        {
          "name": "Merge",
          "value": "merge",
          "action": "Merge images and audio into video",
          "routing": {
            "request": {
              "url": "/ffmpeg/merge",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Combine image slides with audio into a video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "compose"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateImage",
      "options": [
        {
          "name": "Generate Image",
          "value": "generateImage",
          "action": "Generate image with AI",
          "routing": {
            "request": {
              "url": "/image",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Generate an image using AI from a text prompt"
        },
        {
          "name": "Get Image Status",
          "value": "imageStatus",
          "action": "Get image generation status",
          "routing": {
            "request": {
              "url": "=/image/status/{{$parameter.jobId}}",
              "method": "GET"
            }
          },
          "description": "Check the status of an image generation job"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendEmail",
      "options": [
        {
          "name": "Send Email",
          "value": "sendEmail",
          "action": "Send email notification",
          "routing": {
            "request": {
              "url": "/notifications/email",
              "method": "POST",
              "headers": {
                "Content-Type": "application/json"
              }
            }
          },
          "description": "Send an HTML email notification"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "notify"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getStatus",
      "options": [
        {
          "name": "Delete",
          "value": "deleteJob",
          "action": "Delete a job",
          "routing": {
            "request": {
              "url": "=/ffmpeg/jobs/{{$parameter.jobId}}",
              "method": "DELETE"
            }
          },
          "description": "Remove a job and its associated output file"
        },
        {
          "name": "Get Result",
          "value": "getResult",
          "action": "Get job result",
          "routing": {
            "request": {
              "url": "=/ffmpeg/result/{{$parameter.jobId}}",
              "method": "GET"
            }
          },
          "description": "Get the result of a completed job"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get job status",
          "routing": {
            "request": {
              "url": "=/ffmpeg/status/{{$parameter.jobId}}",
              "method": "GET"
            }
          },
          "description": "Retrieve current job status, progress, and completion data"
        },
        {
          "name": "Verify API Key",
          "value": "verify",
          "action": "Verify API key",
          "routing": {
            "request": {
              "url": "/verify",
              "method": "GET"
            }
          },
          "description": "Check that the API key is valid and retrieve account details"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "job"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Intro",
      "value": "addIntro",
      "action": "Add intro to video",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/add-intro",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Prepend an intro clip to a video",
      "resource": "video"
    },
    {
      "name": "Add Outro",
      "value": "addOutro",
      "action": "Add outro to video",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/add-outro",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Append an outro clip to a video",
      "resource": "video"
    },
    {
      "name": "Caption",
      "value": "caption",
      "action": "Add captions to video",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/caption",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Generate captions from audio using speech recognition",
      "resource": "video"
    },
    {
      "name": "Extract Audio",
      "value": "extractAudio",
      "action": "Extract audio from video",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/extract/audio",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Extract the audio track as a WAV file",
      "resource": "video"
    },
    {
      "name": "Extract Images",
      "value": "extractImages",
      "action": "Extract images from video",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/extract/images",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Extract frames as PNG images",
      "resource": "video"
    },
    {
      "name": "Generate GIF",
      "value": "generateGif",
      "action": "Generate GIF from video",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/extract/gif",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Create a GIF from a video segment (max 60s)",
      "resource": "video"
    },
    {
      "name": "Overlay",
      "value": "overlay",
      "action": "Add overlays to video",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/overlay",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Add text or image overlays to a video",
      "resource": "video"
    },
    {
      "name": "Progress Bar",
      "value": "progressBar",
      "action": "Add progress bar to video",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/progress-bar",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Add an animated progress indicator to a video",
      "resource": "video"
    },
    {
      "name": "Reframe",
      "value": "reframe",
      "action": "Reframe video",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/reframe",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Change the aspect ratio with colored padding",
      "resource": "video"
    },
    {
      "name": "Thumbnail",
      "value": "thumbnail",
      "action": "Create video thumbnail",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/thumbnail",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Extract a frame with optional text overlay",
      "resource": "video"
    },
    {
      "name": "Trim",
      "value": "trim",
      "action": "Trim video",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/trim",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Cut a video segment using lossless stream copy",
      "resource": "video"
    },
    {
      "name": "Watermark",
      "value": "watermark",
      "action": "Add watermark to video",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/watermark",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Overlay a logo or watermark on a video",
      "resource": "video"
    },
    {
      "name": "Denoise",
      "value": "denoise",
      "action": "Denoise audio",
      "routing": {
        "request": {
          "url": "/ffmpeg/audio/denoise",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Remove background noise from audio",
      "resource": "audio"
    },
    {
      "name": "Highlights",
      "value": "highlights",
      "action": "Extract audio highlights",
      "routing": {
        "request": {
          "url": "/ffmpeg/audio/highlights",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Extract the loudest segments based on RMS energy",
      "resource": "audio"
    },
    {
      "name": "Remove Silence",
      "value": "removeSilence",
      "action": "Remove silence from audio",
      "routing": {
        "request": {
          "url": "/ffmpeg/audio/remove-silence",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Detect and eliminate quiet gaps in audio",
      "resource": "audio"
    },
    {
      "name": "Audio to MP3",
      "value": "audioToMp3",
      "action": "Convert audio to MP3",
      "routing": {
        "request": {
          "url": "/ffmpeg/convert/audio/to/mp3",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Convert an audio file to MP3 format",
      "resource": "convert"
    },
    {
      "name": "Audio to WAV",
      "value": "audioToWav",
      "action": "Convert audio to WAV",
      "routing": {
        "request": {
          "url": "/ffmpeg/convert/audio/to/wav",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Convert an audio file to WAV format",
      "resource": "convert"
    },
    {
      "name": "Image to JPG",
      "value": "imageToJpg",
      "action": "Convert image to JPG",
      "routing": {
        "request": {
          "url": "/ffmpeg/convert/image/to/jpg",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Convert an image file to JPG format",
      "resource": "convert"
    },
    {
      "name": "Image to WebP",
      "value": "imageToWebp",
      "action": "Convert image to web p",
      "routing": {
        "request": {
          "url": "/ffmpeg/convert/image/to/webp",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Convert an image file to WebP format",
      "resource": "convert"
    },
    {
      "name": "Video to MP4",
      "value": "videoToMp4",
      "action": "Convert video to MP4",
      "routing": {
        "request": {
          "url": "/ffmpeg/convert/video/to/mp4",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Convert a video file to MP4 format",
      "resource": "convert"
    },
    {
      "name": "Video to WebM",
      "value": "videoToWebm",
      "action": "Convert video to web m",
      "routing": {
        "request": {
          "url": "/ffmpeg/convert/video/to/webm",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Convert a video file to WebM format (VP9 + Opus)",
      "resource": "convert"
    },
    {
      "name": "Concat",
      "value": "concat",
      "action": "Concatenate videos",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/concat",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Merge video clips in order into a single video",
      "resource": "compose"
    },
    {
      "name": "Compose Video",
      "value": "composeVideo",
      "action": "Compose video with overlays",
      "routing": {
        "request": {
          "url": "/ffmpeg/video/compose",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Overlay video or image segments onto a main video at specific time ranges",
      "resource": "compose"
    },
    {
      "name": "Merge",
      "value": "merge",
      "action": "Merge images and audio into video",
      "routing": {
        "request": {
          "url": "/ffmpeg/merge",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Combine image slides with audio into a video",
      "resource": "compose"
    },
    {
      "name": "Generate Image",
      "value": "generateImage",
      "action": "Generate image with AI",
      "routing": {
        "request": {
          "url": "/image",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Generate an image using AI from a text prompt",
      "resource": "image"
    },
    {
      "name": "Get Image Status",
      "value": "imageStatus",
      "action": "Get image generation status",
      "routing": {
        "request": {
          "url": "=/image/status/{{$parameter.jobId}}",
          "method": "GET"
        }
      },
      "description": "Check the status of an image generation job",
      "resource": "image"
    },
    {
      "name": "Send Email",
      "value": "sendEmail",
      "action": "Send email notification",
      "routing": {
        "request": {
          "url": "/notifications/email",
          "method": "POST",
          "headers": {
            "Content-Type": "application/json"
          }
        }
      },
      "description": "Send an HTML email notification",
      "resource": "notify"
    },
    {
      "name": "Delete",
      "value": "deleteJob",
      "action": "Delete a job",
      "routing": {
        "request": {
          "url": "=/ffmpeg/jobs/{{$parameter.jobId}}",
          "method": "DELETE"
        }
      },
      "description": "Remove a job and its associated output file",
      "resource": "job"
    },
    {
      "name": "Get Result",
      "value": "getResult",
      "action": "Get job result",
      "routing": {
        "request": {
          "url": "=/ffmpeg/result/{{$parameter.jobId}}",
          "method": "GET"
        }
      },
      "description": "Get the result of a completed job",
      "resource": "job"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get job status",
      "routing": {
        "request": {
          "url": "=/ffmpeg/status/{{$parameter.jobId}}",
          "method": "GET"
        }
      },
      "description": "Retrieve current job status, progress, and completion data",
      "resource": "job"
    },
    {
      "name": "Verify API Key",
      "value": "verify",
      "action": "Verify API key",
      "routing": {
        "request": {
          "url": "/verify",
          "method": "GET"
        }
      },
      "description": "Check that the API key is valid and retrieve account details",
      "resource": "job"
    }
  ]

npm_readme:
  # n8n-nodes-eranol

  This is an n8n community node that lets you professionaly process media using the [Eranol FFmpeg API](https://www.eranol.com). Eranol provides a powerful, cloud-based FFmpeg engine for video, audio, and image processing.

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

  ## Features

  - **Video Processing**: Trim, watermark, caption, overlay, progressBar, reframe, thumbnail, generate GIF, and more.
  - **Audio Processing**: Denoise, highlights, remove silence, and conversion.
  - **Composition**: Merge multiple images into videos with transitions and background audio.
  - **Conversion**: Batch convert between common video (MP4, WebM), audio (MP3, WAV), and image (JPG, WebP) formats.
  - **Job Management**: Long-running media tasks managed via a robust job system.

  ## Installation

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

  ```bash
  npm install n8n-nodes-eranol
  ```

  ## Credentials

  You'll need an API Key from your [Eranol Dashboard](https://www.eranol.com/dashboard).

  1. Go to **Credentials** in n8n.
  2. Select **Eranol API**.
  3. Paste your **API Key**.

  ## Resources & Operations

  ### Video
  - **Add Intro/Outro**: Seamlessly stitch intro or outro videos.
  - **Caption**: Add text overlays or closed captions.
  - **Extract Audio/Images**: Pull assets from your video files.
  - **Generate GIF**: Convert video segments into high-quality GIFs.
  - **Overlay**: Layer images or videos over your footage.
  - **Progress Bar**: Add custom progress bars to your videos.
  - **Reframe**: Automatically adjust video aspect ratios.
  - **Thumbnail**: Generate preview images at specific timestamps.
  - **Trim**: Precise cut operations.
  - **Watermark**: Brand your content with logo overlays.

  ### Audio
  - **Denoise**: Remove background noise from recordings.
  - **Highlights**: Automatically extract key moments from audio.
  - **Remove Silence**: Tighten up recordings by removing dead air.

  ### Compose
  - **Merge**: Combine images into a slideshow video with transitions.

  ### Convert
  - **Video**: MP4, WebM.
  - **Audio**: MP3, WAV.
  - **Image**: JPG, WebP.

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"A community node that enables workflow automation for media processing tasks using the Eranol FFmpeg API, supporting video, audio, and image manipulation.","capabilities":["Video trimming and watermarking","Video captioning and overlay","Video reframing and thumbnail generation","GIF generation from video segments","Progress bar addition to videos","Audio denoising and silence removal","Audio highlight extraction","Image-to-video composition with transitions","Batch format conversion (MP4, WebM, MP3, WAV, JPG, WebP)","Job management for long-running tasks"],"authentication":"API Key required","commonUseCases":["Automated video editing for social media content","Batch conversion of media files for different platforms","Automated thumbnail generation for video libraries","Audio cleanup for podcast or interview recordings","Creating GIFs from video clips"],"limitations":["Community node (not official n8n node)","Requires external API key from Eranol dashboard"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


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

updated_at: 2026-04-16 09:43:36
author_name: sus-tech
author_github_url: https://github.com/S-S-Technologies-GmbH/
npm_package_name: n8n-nodes-matrix42
npm_version: 0.1.3
community_fetched_at: 2026-04-16T09:43:36.304Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "ticket",
      "options": [
        {
          "name": "ASQL",
          "value": "asql"
        },
        {
          "name": "Import",
          "value": "import"
        },
        {
          "name": "Ticket",
          "value": "ticket"
        },
        {
          "name": "Storage",
          "value": "storage"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getFragments",
      "options": [
        {
          "name": "Get Fragments",
          "value": "getFragments",
          "action": "Get fragments",
          "description": "Receives list of fragments with defined list of columns, which match the specified search criteria"
        },
        {
          "name": "Add Fragment",
          "value": "addFragment",
          "action": "Add fragment",
          "description": "Creates a new Data Definition fragment. The operation is required for cases of multi-fragments or optional fragments."
        },
        {
          "name": "Update Fragment",
          "value": "updateFragment",
          "action": "Update fragment",
          "description": "Updates the specified Data Definition fragment, which has been at first retrieved by the Get Fragment operation, and adjusted with the new data. The Server throws the Concurrency exception in case the updated fragment has been updated between Get Fragment operation and Update Fragment."
        },
        {
          "name": "Delete Fragment",
          "value": "deleteFragment",
          "action": "Delete fragment",
          "description": "Deletes the fragment from Database defined by the Data Definition name and the fragment ID. The operation is required for cases of multi-fragments or optional fragments."
        },
        {
          "name": "Add Object",
          "value": "addObject",
          "action": "Add object",
          "description": "Add the Object of the specified Configuration Item"
        },
        {
          "name": "Get Object",
          "value": "getObject",
          "action": "Get object",
          "description": "Reads the whole Object with the specified Configuration Item name and object ID. The Service returns exclusively the data belonged to object (e.g. attributes, N:1 relations) Virtual attributes, like N:M relations are not returned and need to be obtained with the dedicated service request."
        },
        {
          "name": "Update Object",
          "value": "updateObject",
          "action": "Update object",
          "description": "Updates the object of the specified Configuration Item name and object ID. The method works in pair with “Get Object” method, which delivers the original Object with the current Timestamp (market of current state), which is used for concurrency tracking."
        },
        {
          "name": "Delete Object",
          "value": "deleteObject",
          "action": "Delete object",
          "description": "Deletes the object from Database defined by the Configuration Item name and the object ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "asql"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "executeImportDefinition",
      "options": [
        {
          "name": "Execute Import Definition",
          "value": "executeImportDefinition",
          "action": "Execute import definition",
          "description": "Execute an Import Definition"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "import"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createTicket",
      "options": [
        {
          "name": "Create Ticket",
          "value": "createTicket",
          "action": "Create a ticket",
          "description": "Create a ticket"
        },
        {
          "name": "Close Ticket",
          "value": "closeTicket",
          "action": "Close ticket",
          "description": "Close a ticket"
        },
        {
          "name": "Transform Ticket",
          "value": "transformTicket",
          "action": "Transform a ticket",
          "description": "Transform a ticket"
        },
        {
          "name": "Add Journal Entry",
          "value": "addJournalEntry",
          "action": "Add a journal entry",
          "description": "Add a journal entry"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadFile",
      "options": [
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload file",
          "description": "Upload one or more file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "storage"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Fragments",
      "value": "getFragments",
      "action": "Get fragments",
      "description": "Receives list of fragments with defined list of columns, which match the specified search criteria",
      "resource": "asql"
    },
    {
      "name": "Add Fragment",
      "value": "addFragment",
      "action": "Add fragment",
      "description": "Creates a new Data Definition fragment. The operation is required for cases of multi-fragments or optional fragments.",
      "resource": "asql"
    },
    {
      "name": "Update Fragment",
      "value": "updateFragment",
      "action": "Update fragment",
      "description": "Updates the specified Data Definition fragment, which has been at first retrieved by the Get Fragment operation, and adjusted with the new data. The Server throws the Concurrency exception in case the updated fragment has been updated between Get Fragment operation and Update Fragment.",
      "resource": "asql"
    },
    {
      "name": "Delete Fragment",
      "value": "deleteFragment",
      "action": "Delete fragment",
      "description": "Deletes the fragment from Database defined by the Data Definition name and the fragment ID. The operation is required for cases of multi-fragments or optional fragments.",
      "resource": "asql"
    },
    {
      "name": "Add Object",
      "value": "addObject",
      "action": "Add object",
      "description": "Add the Object of the specified Configuration Item",
      "resource": "asql"
    },
    {
      "name": "Get Object",
      "value": "getObject",
      "action": "Get object",
      "description": "Reads the whole Object with the specified Configuration Item name and object ID. The Service returns exclusively the data belonged to object (e.g. attributes, N:1 relations) Virtual attributes, like N:M relations are not returned and need to be obtained with the dedicated service request.",
      "resource": "asql"
    },
    {
      "name": "Update Object",
      "value": "updateObject",
      "action": "Update object",
      "description": "Updates the object of the specified Configuration Item name and object ID. The method works in pair with “Get Object” method, which delivers the original Object with the current Timestamp (market of current state), which is used for concurrency tracking.",
      "resource": "asql"
    },
    {
      "name": "Delete Object",
      "value": "deleteObject",
      "action": "Delete object",
      "description": "Deletes the object from Database defined by the Configuration Item name and the object ID",
      "resource": "asql"
    },
    {
      "name": "Execute Import Definition",
      "value": "executeImportDefinition",
      "action": "Execute import definition",
      "description": "Execute an Import Definition",
      "resource": "import"
    },
    {
      "name": "Create Ticket",
      "value": "createTicket",
      "action": "Create a ticket",
      "description": "Create a ticket",
      "resource": "ticket"
    },
    {
      "name": "Close Ticket",
      "value": "closeTicket",
      "action": "Close ticket",
      "description": "Close a ticket",
      "resource": "ticket"
    },
    {
      "name": "Transform Ticket",
      "value": "transformTicket",
      "action": "Transform a ticket",
      "description": "Transform a ticket",
      "resource": "ticket"
    },
    {
      "name": "Add Journal Entry",
      "value": "addJournalEntry",
      "action": "Add a journal entry",
      "description": "Add a journal entry",
      "resource": "ticket"
    },
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload file",
      "description": "Upload one or more file",
      "resource": "storage"
    }
  ]

npm_readme:
  # n8n-nodes-matrix42

  This is an n8n community node that integrates with the Matrix42 ESMP Web Services API. It allows you to retrieve and work with Data Fragments from Matrix42 Data Definitions directly in your n8n workflows.

  Matrix42’s ESMP API exposes CRUD‑style endpoints for data fragments, supporting OData‑like filtering, column selection, paging, sorting, 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)  
  [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

  This node supports multiple operations across different resources:

  ### Data Fragments (asql)

  -   **Get Fragments** (`getFragments`): Retrieve data fragments from a specified Data Definition.

  -   **Add Fragment** (`addFragment`): Create a new data fragment in the specified Data Definition.

  -   **Update Fragment** (`updateFragment`): Update an existing data fragment by its ID.

  -   **Delete Fragment** (`deleteFragment`): Remove a data fragment by its ID.


  ### Data Objects (asql)

  -   **Add Object** (`addObject`): Create a new Data Object under a given fragment.

  -   **Get Object** (`getObject`): Retrieve a Data Object by its ID.

  -   **Update Object** (`updateObject`): Update an existing Data Object by its ID.

  -   **Delete Object** (`deleteObject`): Delete a Data Object by its ID.


  ### Tickets

  -   **Create Ticket** (`createTicket`): Open a new ticket in the Service Desk.

  -   **Close Ticket** (`closeTicket`): Close an existing ticket by ID.

  -   **Transform Ticket** (`transformTicket`): Apply a transformation to a ticket.


  ### Import

  -   **Execute Import Definition** (`executeImportDefinition`): Run a predefined import definition to ingest data.

  ## Credentials

  > **Prerequisite:** You must have access to a running Matrix42 instance with appropriate API permissions.

  This node supports two authentication methods. Configure these under **Workflow → Credentials**.

  ### Matrix42 Token Auth

  1.  **API Token** — Your long‑lived Matrix42 API Token.

  2.  **Base URL** — Your Matrix42 server URL (e.g. `https://api.mycompany.com`).


  On execution, the node:

  -   Exchanges the API Token for a short‑lived Bearer (JWT) token via `GenerateAccessTokenFromApiToken`.

  -   Uses the Bearer token in the `Authorization` header for all subsequent calls.


  > **Self‑signed certificates**: If your Matrix42 server uses a self‑signed SSL certificate, you must add its CA certificate to n8n’s trusted certificate store. For details, see the n8n docs on adding self‑signed certificates: https://docs.n8n.io/hosting/configuration/configuration-examples/custom-certificate-authority/

  ### Matrix42 Basic Auth

  1.  **Username** and **Password** — Your Matrix42 user credentials.

  2.  **Base URL** — As above.

  ## Compatibility

  -   **n8n**: Tested with v1.100.1 and later.

  -   **Node.js**: v22.17.0 or higher.

  -   **Matrix42 ESMP API**: Tested with Matrix42 12.1.2.5325.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Matrix42 Web Services](https://help.matrix42.com/030_ESMP/030_INT/Business_Processes_and_API_Integrations/Matrix42_Web_Services_API#Public_API)

  ## Version History

  **0.1.3:**
  - Added Operations:
  	-   Tickets: `addJournalEntry`

  **0.1.2:**
  - Added Operations:
  	-   Storage Operations: `uploadFile`

  **0.1.1:**
  - Bug Fixes

  **0.1.0:**
    - Initial release supporting operations across multiple resources:
      -   Data Fragments: `getFragments`, `addFragment`, `updateFragment`, `deleteFragment`
      -   Data Objects: `addObject`, `getObject`, `updateObject`, `deleteObject`
      -   Tickets: `createTicket`, `closeTicket`, `transformTicket`
      -   Import: `executeImportDefinition`

    - Authentication methods:
      -   Matrix42 Token API (API Token ↔︎ Bearer JWT exchange)
      -   Matrix42 Basic API (HTTP Basic Authentication)
     

  ## Legal & Disclaimer

  This project is an **unofficial, community-maintained integration** for the Matrix42 ESMP **Public API**.  
  It uses only documented, publicly available endpoints as described in the official
  [Matrix42 Web Services API documentation](https://help.matrix42.com/030_ESMP/030_INT/Business_Processes_and_API_Integrations/Matrix42_Web_Services_API).

  Matrix42 **explicitly provides** a Public API and token-based authentication mechanism to support
  third-party integrations. This node simply wraps those endpoints for easier use within n8n.
  There is **no violation** of Matrix42’s licensing or terms of service in doing so.

  > **No Affiliation:**  
  > This project is **not affiliated with, endorsed, or sponsored by Matrix42 GmbH**.  
  > *MATRIX42* and related marks are trademarks of Matrix42 GmbH, used here for identification purposes only.

ai_documentation_summary:
  {"purpose":"A community n8n node that interacts with the Matrix42 ESMP Web Services API to manage Data Fragments, Data Objects, Tickets, and Import definitions.","capabilities":["Retrieve Data Fragments","Create Data Fragments","Update Data Fragments","Delete Data Fragments","Retrieve Data Objects","Create Data Objects","Update Data Objects","Delete Data Objects","Create Tickets","Close Tickets"],"authentication":"API Token (exchanges for Bearer JWT) or Basic Auth (Username/Password)","commonUseCases":["Automating data entry and updates in Matrix42 Service Desk","Integrating Matrix42 data into external workflows","Managing customer tickets programmatically","Automating data imports and file uploads"],"limitations":["Community-maintained (unofficial)","Requires access to a running Matrix42 instance with appropriate API permissions","Self-signed SSL certificates require manual configuration in n8n"],"relatedNodes":["n8n-nodes-matrix42.matrix42"]}


node_type: n8n-nodes-mfr.mfr
package_name: n8n-nodes-mfr
display_name: mfr - Field Service Management
description: Field service management app for scheduling technicians.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: apps_makeitfuture
author_github_url: https://github.com/anemesMakeitfuture/mfr-field-service-management.git
npm_package_name: n8n-nodes-mfr
npm_version: 0.1.13
community_fetched_at: 2026-04-16T09:43:36.305Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "company",
      "options": [
        {
          "name": "Company",
          "value": "company"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Appointment",
          "value": "appointment"
        },
        {
          "name": "Item Type",
          "value": "itemType"
        },
        {
          "name": "Service Object",
          "value": "serviceObject"
        },
        {
          "name": "Service Request",
          "value": "serviceRequest"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "User",
          "value": "user"
        },
        {
          "name": "Report",
          "value": "report"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a company",
          "description": "Get a company"
        },
        {
          "name": "Get Many",
          "value": "listCompanies",
          "action": "List companies",
          "description": "List Companies"
        },
        {
          "name": "Create One",
          "value": "createCompany",
          "action": "Create a company",
          "description": "Create a Company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "company"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listContacts",
      "options": [
        {
          "name": "Get Many",
          "value": "listContacts",
          "action": "List contacts",
          "description": "List Contacts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createAppointment",
      "options": [
        {
          "name": "Create One",
          "value": "createAppointment",
          "action": "Create an appointment",
          "description": "Create an Appointment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "appointment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createItemType",
      "options": [
        {
          "name": "Create One",
          "value": "createItemType",
          "action": "Create an item type",
          "description": "Create an Item Type"
        },
        {
          "name": "Get One",
          "value": "getItemType",
          "action": "Get an item type",
          "description": "Get an Item Type"
        },
        {
          "name": "Get Many",
          "value": "listItemTypes",
          "action": "List item types",
          "description": "List Item Types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "itemType"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createServiceObject",
      "options": [
        {
          "name": "Create One",
          "value": "createServiceObject",
          "action": "Create a service object",
          "description": "Create a Service Object"
        },
        {
          "name": "Get One Service Object",
          "value": "getServiceObject",
          "action": "Get a service object by id",
          "description": "Get a Service Object by ID"
        },
        {
          "name": "Get Many Service Objects",
          "value": "listServiceObjects",
          "action": "Get all service objects",
          "description": "Get all Service Objects"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "serviceObject"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createServiceRequest",
      "options": [
        {
          "name": "Create One",
          "value": "createServiceRequest",
          "action": "Create a service request",
          "description": "Create a Service Request"
        },
        {
          "name": "Get One",
          "value": "getServiceRequest",
          "action": "Get a service request by id",
          "description": "Get a Service Request by ID"
        },
        {
          "name": "Delete One",
          "value": "deleteServiceRequest",
          "action": "Delete a service request",
          "description": "Delete a Service Request"
        },
        {
          "name": "Add Tags to Service Request",
          "value": "addTagsToServiceRequest",
          "action": "Add a tag to a service request",
          "description": "Add a tag to a service request"
        },
        {
          "name": "Remove Tag From Service Request",
          "value": "removeTagFromServiceRequest",
          "action": "Remove a tag from service request",
          "description": "Remove a tag from service request"
        },
        {
          "name": "Get Many Service Requests",
          "value": "listServiceRequests",
          "action": "Get a list of all service requests",
          "description": "Get a list of all service requests, with Service Objects and Products, Steps, Reports, Appointments and Items expanded"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "serviceRequest"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadDocument",
      "options": [
        {
          "name": "Upload One",
          "value": "uploadDocument",
          "action": "Upload document",
          "description": "Upload Document"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listUsers",
      "options": [
        {
          "name": "Get Many Users",
          "value": "listUsers",
          "action": "Get all users",
          "description": "Get all Users"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateReportFromReportDefinition",
      "options": [
        {
          "name": "Generate Report",
          "value": "generateReportFromReportDefinition",
          "action": "Generate report from report definition",
          "description": "Generate Report from Report Definition"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a company",
      "description": "Get a company",
      "resource": "company"
    },
    {
      "name": "Get Many",
      "value": "listCompanies",
      "action": "List companies",
      "description": "List Companies",
      "resource": "company"
    },
    {
      "name": "Create One",
      "value": "createCompany",
      "action": "Create a company",
      "description": "Create a Company",
      "resource": "company"
    },
    {
      "name": "Get Many",
      "value": "listContacts",
      "action": "List contacts",
      "description": "List Contacts",
      "resource": "contact"
    },
    {
      "name": "Create One",
      "value": "createAppointment",
      "action": "Create an appointment",
      "description": "Create an Appointment",
      "resource": "appointment"
    },
    {
      "name": "Create One",
      "value": "createItemType",
      "action": "Create an item type",
      "description": "Create an Item Type",
      "resource": "itemType"
    },
    {
      "name": "Get One",
      "value": "getItemType",
      "action": "Get an item type",
      "description": "Get an Item Type",
      "resource": "itemType"
    },
    {
      "name": "Get Many",
      "value": "listItemTypes",
      "action": "List item types",
      "description": "List Item Types",
      "resource": "itemType"
    },
    {
      "name": "Create One",
      "value": "createServiceObject",
      "action": "Create a service object",
      "description": "Create a Service Object",
      "resource": "serviceObject"
    },
    {
      "name": "Get One Service Object",
      "value": "getServiceObject",
      "action": "Get a service object by id",
      "description": "Get a Service Object by ID",
      "resource": "serviceObject"
    },
    {
      "name": "Get Many Service Objects",
      "value": "listServiceObjects",
      "action": "Get all service objects",
      "description": "Get all Service Objects",
      "resource": "serviceObject"
    },
    {
      "name": "Create One",
      "value": "createServiceRequest",
      "action": "Create a service request",
      "description": "Create a Service Request",
      "resource": "serviceRequest"
    },
    {
      "name": "Get One",
      "value": "getServiceRequest",
      "action": "Get a service request by id",
      "description": "Get a Service Request by ID",
      "resource": "serviceRequest"
    },
    {
      "name": "Delete One",
      "value": "deleteServiceRequest",
      "action": "Delete a service request",
      "description": "Delete a Service Request",
      "resource": "serviceRequest"
    },
    {
      "name": "Add Tags to Service Request",
      "value": "addTagsToServiceRequest",
      "action": "Add a tag to a service request",
      "description": "Add a tag to a service request",
      "resource": "serviceRequest"
    },
    {
      "name": "Remove Tag From Service Request",
      "value": "removeTagFromServiceRequest",
      "action": "Remove a tag from service request",
      "description": "Remove a tag from service request",
      "resource": "serviceRequest"
    },
    {
      "name": "Get Many Service Requests",
      "value": "listServiceRequests",
      "action": "Get a list of all service requests",
      "description": "Get a list of all service requests, with Service Objects and Products, Steps, Reports, Appointments and Items expanded",
      "resource": "serviceRequest"
    },
    {
      "name": "Upload One",
      "value": "uploadDocument",
      "action": "Upload document",
      "description": "Upload Document",
      "resource": "document"
    },
    {
      "name": "Get Many Users",
      "value": "listUsers",
      "action": "Get all users",
      "description": "Get all Users",
      "resource": "user"
    },
    {
      "name": "Generate Report",
      "value": "generateReportFromReportDefinition",
      "action": "Generate report from report definition",
      "description": "Generate Report from Report Definition",
      "resource": "report"
    }
  ]

npm_readme:
  # n8n-nodes-mfr

  This is an n8n community node. It lets you use mfr – Field Service Management in your n8n workflows.

  mfr – Field Service Management is a cloud platform for creating, scheduling and tracking service requests, assets, appointments, technicians, reports and related documents.


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

  ## Installation

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

  ## Operations


  - Get a Company
  - Create a Company
  - List Companies
  - Create a Service Request
  - Get a Service Request
  - List Service Requests
  - Delete a Service Request
  - Generate Report
  - Add Tags to Service Request
  - Remove Tag from Service Request
  - Upload Document
  - Appointment
  - Create an Appointment
  - Create an Item Type
  - Get an Item Type
  - List Item Types
  - Create a Service Object
  - Get a Service Object
  - List Service Objects
  - List Users
  - Watch Events Trigger – subscribe to real‑time change events from mfr

  ## Credentials

  The basic auth method is used for the requests.

  ## Compatibility

  1.98.0

  ## Usage

  Add the mfr Field Service node to your workflow and choose a Resource and Operation from the dropdown. Map the required fields using n8n data‑pinning or expressions.

  Example ideas:

  Create a Service Request when a support ticket is opened

  Trigger: Zendesk, Freshdesk, etc.

  Node: Create a Company (if customer doesn’t exist)

  Node: Create a Service Request

  Node: Slack / Email → notify dispatcher.

  Generate a PDF report nightly for completed service requests

  Trigger: Cron (daily 02:00)

  Node: List Service Requests (filter status = completed, updatedYesterday)

  Loop: Generate Report → store in S3 / email to customer.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [mfr API Documentation and Auth](https://documenter.getpostman.com/view/3999268/TVYCAzpK#intro)

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with mfr – Field Service Management to automate scheduling, tracking, and reporting for service requests, technicians, and assets.","capabilities":["Create and manage companies","Create, retrieve, list, and delete service requests","Generate reports","Manage tags on service requests","Upload documents","Create and manage appointments","Manage item types","Manage service objects","List users","Subscribe to real-time change events"],"authentication":"Basic auth","commonUseCases":["Automatically create service requests when support tickets are opened from Zendesk or Freshdesk","Generate nightly PDF reports for completed service requests and store them in cloud storage","Notify dispatchers via Slack or email when new service requests are created"],"limitations":["Community node (may not be maintained by n8n core team)","Requires external API documentation for detailed field mapping"],"relatedNodes":["Cron Trigger","Slack","Email","S3","Zendesk"]}


node_type: @crowdin/n8n-nodes-crowdin.crowdinEnterpriseStringBasedTrigger
package_name: @crowdin/n8n-nodes-crowdin
display_name: Crowdin Enterprise (String-Based) Trigger
description: Starts the workflow when Crowdin Enterprise string-based project 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: taras.prosvirov
author_github_url: https://github.com/crowdin/n8n-nodes-crowdin.git
npm_package_name: @crowdin/n8n-nodes-crowdin
npm_version: 0.8.0
community_fetched_at: 2026-04-16T09:43:36.306Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
[cell repeats an earlier one in this file: 11013 characters]

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows automatically when specific events occur in a Crowdin Enterprise string-based localization project.","capabilities":["Monitors Enterprise string-based projects for project-level events","Detects when a project is fully translated","Detects when a project is fully reviewed/approved","Detects successful project builds","Detects completion of QA checks","Detects updates to exported translations","Supports account/organization level events (group creation/deletion)","Returns webhook payload with event details for workflow processing"],"authentication":"API key required (Enterprise account credentials)","commonUseCases":["Automatically start translation workflows when a project reaches 100% translation","Notify stakeholders when all translations are approved","Trigger deployment pipelines after successful project builds","Initiate QA review processes when translations are complete","Send notifications when project groups are created or deleted"],"limitations":["Only supports Enterprise version of Crowdin (not free crowdin.com)","Only supports string-based projects (not file-based)","Limited to webhook events; does not support manual actions or file operations","Requires a configured Enterprise account with webhook permissions"],"relatedNodes":["Crowdin Enterprise (String-Based)","Crowdin Enterprise (File-Based)","Crowdin (String-Based)","Crowdin (File-Based)","Crowdin Enterprise (File-Based) Trigger"]}


node_type: @replyio/n8n-nodes-reply.replyTrigger
package_name: @replyio/n8n-nodes-reply
display_name: Reply Trigger
description: Starts the workflow when Reply.io 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: bborys
author_github_url: https://github.com/reply-team/n8n-public.git
npm_package_name: @replyio/n8n-nodes-reply
npm_version: 0.21.0
community_fetched_at: 2026-04-16T09:43:36.307Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # @replyio/n8n-nodes-reply

  This is an n8n community node for [Reply.io](https://reply.io) - a sales engagement platform that automates multichannel outreach across email, LinkedIn, calls, SMS, and WhatsApp.

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

  ## Installation

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

  ## Nodes

  ### Reply

  Interact with Reply.io API to manage contacts, sequences, and contact statuses.

  **Resources & Operations:**

  | Resource | Operations |
  |----------|------------|
  | Contact | Create, Get, Get Many, Update, Delete |
  | Contact Status | Update Status, Clear Status |
  | Sequence | Get, Get Many, Get Contacts, Add Contact, Start, Pause, Archive |

  ### Reply Trigger

  Starts workflows when Reply.io events occur.

  **Supported Events:**

  | Category | Events |
  |----------|--------|
  | Email | Sent, Opened, Bounced, Link Clicked, Replied, Reply Categorized |
  | LinkedIn | Message Sent, Message Replied, Connection Sent, Connection Accepted, Reply Categorized |
  | Sequence | Contact Finished, Contact Opted Out, Contact Called |
  | Account Health | Email Connection Lost, Email Account Error |

  ## Credentials

  1. Log in to your [Reply.io](https://reply.io) account
  2. Go to **Settings** > **API Key**
  3. Copy your API key
  4. In n8n, create new Reply API credentials and paste the key

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows automatically when specific events occur in a Reply.io sales engagement account.","capabilities":["Monitors email events (sent, opened, bounced, link clicked, replied, categorized)","Monitors LinkedIn events (message sent, replied, connection sent/accepted, categorized)","Monitors sequence events (contact finished, opted out, called)","Monitors account health events (connection lost, account errors)","Configurable event filtering by category and specific event type"],"authentication":"API key required (obtained from Reply.io Settings > API Key)","commonUseCases":["Automated follow-up sequences based on email opens or clicks","Lead scoring based on engagement metrics","Alerting on bounced emails or connection rejections","Triggering LinkedIn outreach based on email responses"],"limitations":["Requires active Reply.io account with API access","Limited to event-based triggers (no direct data manipulation like Reply node)","No built-in credential management UI (requires manual API key entry)"],"relatedNodes":["Reply (for managing contacts and sequences)","Webhook (for custom event handling)","Email (for sending follow-ups)","LinkedIn (for social engagement)"]}


node_type: n8n-nodes-orgo.orgo
package_name: n8n-nodes-orgo
display_name: Orgo
description: Interact with Orgo API - Multi-tenant SaaS platform for organizations
category: Community
development_style: declarative
version: 1.1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: orgo-space
author_github_url: https://github.com/orgo-space/
npm_package_name: n8n-nodes-orgo
npm_version: 0.1.10
community_fetched_at: 2026-04-16T09:43:36.308Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "user",
      "options": [
        {
          "name": "Contact",
          "value": "contact",
          "description": "Manage external contacts and relationships"
        },
        {
          "name": "Contract User",
          "value": "contract",
          "description": "Operations with user contracts and signatures"
        },
        {
          "name": "Event",
          "value": "event",
          "description": "Operations with events"
        },
        {
          "name": "Event Registration",
          "value": "eventAttend",
          "description": "Manage event registrations and attendance"
        },
        {
          "name": "Payment",
          "value": "productPayment",
          "description": "Operations with payments and fees"
        },
        {
          "name": "User",
          "value": "user",
          "description": "Operations with users (members)"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user",
          "description": "Get a user by ID"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many users",
          "description": "Get multiple users"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a user",
          "description": "Create a new user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create contact",
          "description": "Create a new contact"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete contact",
          "description": "Delete a contact"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get contact",
          "description": "Get a contact by ID"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many contacts",
          "description": "Get multiple contacts"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update contact",
          "description": "Update a contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an event",
          "description": "Get an event by UUID"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many events",
          "description": "Get multiple events"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "event"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Register for event",
          "description": "Register for an event"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Cancel event registration",
          "description": "Cancel event registration"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get event registration",
          "description": "Get an event registration by ID"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many event registrations",
          "description": "Get event registrations for a specific event"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update event registration",
          "description": "Update event registration/attendance status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "eventAttend"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a contract user",
          "description": "Get a contract user by ID"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many contract users",
          "description": "Get multiple contract users"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contract"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a payment",
          "description": "Get a payment by ID"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many payments",
          "description": "Get multiple payments"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "productPayment"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get a user",
      "description": "Get a user by ID",
      "resource": "user"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many users",
      "description": "Get multiple users",
      "resource": "user"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a user",
      "description": "Create a new user",
      "resource": "user"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create contact",
      "description": "Create a new contact",
      "resource": "contact"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete contact",
      "description": "Delete a contact",
      "resource": "contact"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get contact",
      "description": "Get a contact by ID",
      "resource": "contact"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many contacts",
      "description": "Get multiple contacts",
      "resource": "contact"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update contact",
      "description": "Update a contact",
      "resource": "contact"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an event",
      "description": "Get an event by UUID",
      "resource": "event"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many events",
      "description": "Get multiple events",
      "resource": "event"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Register for event",
      "description": "Register for an event",
      "resource": "eventAttend"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Cancel event registration",
      "description": "Cancel event registration",
      "resource": "eventAttend"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get event registration",
      "description": "Get an event registration by ID",
      "resource": "eventAttend"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many event registrations",
      "description": "Get event registrations for a specific event",
      "resource": "eventAttend"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update event registration",
      "description": "Update event registration/attendance status",
      "resource": "eventAttend"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a contract user",
      "description": "Get a contract user by ID",
      "resource": "contract"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many contract users",
      "description": "Get multiple contract users",
      "resource": "contract"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a payment",
      "description": "Get a payment by ID",
      "resource": "productPayment"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many payments",
      "description": "Get multiple payments",
      "resource": "productPayment"
    }
  ]

npm_readme:
  # n8n-nodes-orgo

  This is an n8n community node that provides comprehensive integration with Orgo, a multi-tenant SaaS platform for organizations specializing in membership management, event coordination, and community engagement.

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

  ### Option 1: Community Nodes (Recommended)
  1. Go to **Settings > Community Nodes** in your n8n instance
  2. Select **Install** and enter `n8n-nodes-orgo`
  3. Click **Install**

  ### Option 2: Manual Installation
  ```bash
  npm install n8n-nodes-orgo
  ```

  After installation, restart your n8n instance to see the new nodes.

  ## Operations

  This package provides two powerful nodes for comprehensive Orgo integration:

  ### Orgo Node
  The main node for interacting with the Orgo API, supporting full CRUD operations across all resources.

  **Available Resources:**

  #### **User Management**
  - **Get User**: Retrieve user details by ID
  - **Get Many Users**: List multiple users with pagination
  - **Create User**: Register new users with email, first name, and last name

  #### **Contact Management**
  - **Get Contact**: Retrieve contact details by ID
  - **Get Many Contacts**: List multiple contacts with pagination
  - **Create Contact**: Add new external contacts with name and email
  - **Update Contact**: Modify contact information
  - **Delete Contact**: Remove contacts from the system

  #### **Event Management**  
  - **Get Event**: Retrieve event details by UUID
  - **Get Many Events**: List multiple events with pagination

  #### **Event Registration**
  - **Get Registration**: Retrieve event registration by ID
  - **Get Event Registrations**: List all registrations for a specific event (paginated, 100 per page)
  - **Register for Event**: Create new event registration (requires event UUID and user ID)
  - **Update Registration Status**: Modify attendance status (Registered, Attended, Not Attending, Invited)
  - **Cancel Registration**: Remove event registration

  #### **Contract User Management**
  - **Get Contract User**: Retrieve contract user details by ID
  - **Get Many Contract Users**: List multiple contract users with pagination

  #### **Payment Management**
  - **Get Payment**: Retrieve payment record by ID  
  - **Get Many Payments**: List payment records with pagination

  #### **Webhook Management**
  - **Get Webhook**: Retrieve webhook subscription by ID
  - **Get Many Webhooks**: List webhook subscriptions
  - **Create Webhook**: Set up new webhook subscriptions
  - **Update Webhook**: Modify webhook configuration
  - **Delete Webhook**: Remove webhook subscriptions
  - **Test Webhook**: Send test webhook event

  #### **Custom Endpoints**
  - **Custom Request**: Make requests to any Orgo API endpoint

  ### Orgo Trigger Node
  A trigger node that responds to Orgo webhooks for real-time automation and event-driven workflows.

  **Supported Event Types:**
  - **Contact Events**: `contact.created`, `contact.updated`, `contact.deleted`
  - **Event Registration**: `event_attend.created`, `event_attend.updated`
  - **User Role Events**: `user_role.created`, `user_role.deleted`
  - **User Events**: `user.created`, `user.updated`

  ## Credentials

  To use the Orgo nodes, you need to configure API credentials in n8n:

  ### Required Fields
  1. **API Base URL**: Your Orgo instance API base URL
     - Format: `https://your-domain.com/api/v1`
     - Example: `https://app.orgo.space/api/v1`
     - For local development: `http://localhost:8000/api/v1`

  2. **API Token**: Your personal API token from Orgo
     - Generated from your Orgo account settings
     - Used for authentication with the Orgo API

  ### Optional Fields
  3. **Webhook Secret**: Secret key for webhook signature verification (recommended for security)
  4. **Tenant ID**: Your organization/tenant ID (auto-detected if not provided)

  ### Getting Your API Token

  1. Log into your Orgo account
  2. Navigate to **Organization Settings > API & OAuth -> API
  3. Generate a new API token or copy an existing one
  4. Copy the token and paste it into your n8n Orgo API credentials

  ### Testing Your Credentials

  The credential configuration includes a built-in test that verifies:
  - API connectivity to your Orgo instance
  - Token validity and permissions
  - Proper API base URL configuration

  ## API Documentation

  For detailed API reference, visit: [docs.orgo.space/api-reference](https://docs.orgo.space/api-reference)

  The Orgo API provides comprehensive endpoints for:
  - User and identity management
  - Event and attendance tracking
  - Payment and subscription handling
  - Contract and document management
  - Profile and badge systems
  - Voting and discussion features

  ## Webhook Setup

  The Orgo Trigger node provides automated webhook management:

  ### Automatic Management
  - **Auto-Registration**: Webhooks are automatically created when workflows are activated
  - **Auto-Cleanup**: Webhooks are automatically removed when workflows are deactivated
  - **Event Filtering**: Subscribe only to the events you need
  - **Signature Verification**: Optional webhook signature validation for security

  ### Webhook Payload Structure

  Orgo webhooks deliver standardized payloads:

  ```json
  {
    "id": "wh_evt_123456789abcd",
    "event": "user.created",
    "api_version": "2024-01",
    "created": 1705320600,
    "data": {
      "object": {
        "id": 123,
        "email": "user@example.com",
        "firstName": "John",
        "lastName": "Doe"
      },
      "previous_attributes": {
        "email": {
          "old": "old@example.com",
          "new": "user@example.com"
        }
      }
    },
    "tenant_id": 1,
    "request": {
      "id": "req_987654321efgh",
      "idempotency_key": null
    }
  }
  ```

  ### Accessing Webhook Data in n8n

  In your workflow, access webhook data using:
  - `{{$json.object}}` - Main entity data
  - `{{$json.event}}` - Event type (e.g., "user.created")
  - `{{$json.previous_attributes}}` - Changed fields for update events
  - `{{$json.tenant_id}}` - Organization ID
  - `{{$json.created}}` - Event timestamp

  ## Example Workflows

  ### User Registration Automation
  Automatically welcome new users and sync them to external systems:

  ```json
  {
    "name": "New User Onboarding",
    "nodes": [
      {
        "name": "Orgo User Created",
        "type": "n8n-nodes-orgo.orgoTrigger",
        "parameters": {
          "events": ["user.created"],
          "verifySignature": true
        }
      },
      {
        "name": "Send Welcome Email",
        "type": "n8n-nodes-base.emailSend",
        "parameters": {
          "toEmail": "={{$json.object.email}}",
          "subject": "Welcome to {{$json.object.organization}}!",
          "text": "Hello {{$json.object.firstName}}, welcome to our community!"
        }
      },
      {
        "name": "Create CRM Contact",
        "type": "n8n-nodes-base.httpRequest",
        "parameters": {
          "method": "POST",
          "url": "https://your-crm.com/api/contacts",
          "body": {
            "email": "={{$json.object.email}}",
            "first_name": "={{$json.object.firstName}}",
            "last_name": "={{$json.object.lastName}}",
            "source": "orgo_registration"
          }
        }
      }
    ]
  }
  ```

  ### Event Registration Management
  Handle event registrations and send confirmations:

  ```json
  {
    "name": "Event Registration Handler",
    "nodes": [
      {
        "name": "Event Registration",
        "type": "n8n-nodes-orgo.orgoTrigger",
        "parameters": {
          "events": ["event_attend.created"]
        }
      },
      {
        "name": "Get Event Details",
        "type": "n8n-nodes-orgo.orgo",
        "parameters": {
          "resource": "event",
          "operation": "get",
          "id": "={{$json.object.eventId}}"
        }
      },
      {
        "name": "Send Confirmation Email",
        "type": "n8n-nodes-base.emailSend",
        "parameters": {
          "toEmail": "={{$json.object.user.email}}",
          "subject": "Event Registration Confirmed: {{$node['Get Event Details'].json.title}}",
          "html": "Your registration for {{$node['Get Event Details'].json.title}} on {{$node['Get Event Details'].json.date}} has been confirmed!"
        }
      }
    ]
  }
  ```

  ### Payment Processing Workflow
  Automate payment confirmations and notifications:

  ```json
  {
    "name": "Payment Processing",
    "nodes": [
      {
        "name": "Payment Events",
        "type": "n8n-nodes-orgo.orgoTrigger",
        "parameters": {
          "events": ["product_payment.created", "product_payment.updated"]
        }
      },
      {
        "name": "Check Payment Status",
        "type": "n8n-nodes-base.switch",
        "parameters": {
          "dataPropertyName": "object.status",
          "rules": {
            "values": [
              {"value": "completed"},
              {"value": "failed"},
              {"value": "pending"}
            ]
          }
        }
      },
      {
        "name": "Send Receipt (Success)",
        "type": "n8n-nodes-base.emailSend",
        "parameters": {
          "toEmail": "={{$json.object.user.email}}",
          "subject": "Payment Receipt - {{$json.object.amount}} {{$json.object.currency}}",
          "text": "Thank you for your payment of {{$json.object.amount}} {{$json.object.currency}}."
        }
      }
    ]
  }
  ```

  ## Multi-Tenant Architecture

  Orgo's multi-tenant design ensures data isolation and security:

  - **Automatic Tenant Scoping**: All API requests are automatically scoped to your organization
  - **Tenant ID Inclusion**: Webhook events include `tenant_id` for proper filtering
  - **Permission Respect**: User permissions and access levels are automatically enforced
  - **Cross-Tenant Security**: No access to data from other organizations

  ## Error Handling & Reliability

  The nodes include comprehensive error handling:

  ### API Error Handling
  - **Detailed Error Messages**: Clear error descriptions from the Orgo API
  - **HTTP Status Codes**: Proper handling of 4xx and 5xx responses
  - **Validation Errors**: Field-level validation error reporting

  ### Webhook Reliability
  - **Signature Verification**: Prevents unauthorized webhook requests
  - **Payload Validation**: Ensures webhook data integrity
  - **Retry Logic**: Automatic retry for failed webhook deliveries

  ### Network Resilience
  - **Connection Timeouts**: Configurable request timeouts
  - **Rate Limiting**: Automatic handling of API rate limits
  - **Graceful Degradation**: Continues operation during temporary outages

  ## Performance & Best Practices

  ### Pagination
  - Use the `limit` parameter to control response sizes
  - Default limit is 25 items per request
  - Implement pagination for large datasets

  ### Webhook Events
  - Subscribe only to necessary events to reduce noise
  - Use event filtering to improve workflow performance
  - Enable signature verification for security

  ### API Usage
  - Cache frequently accessed data when possible
  - Use batch operations for multiple related requests
  - Monitor API usage to stay within rate limits

  ## Compatibility

  **Tested Compatibility:**
  - n8n version 1.0.0 and above
  - Node.js 18.x and above
  - Orgo API version 2024-01

  **Browser Support:**
  - Works in all modern browsers that support n8n
  - Compatible with n8n Cloud and self-hosted instances

  ## Troubleshooting

  ### Common Issues

  **Authentication Errors**
  - Verify your API token is correct and hasn't expired
  - Ensure the API Base URL doesn't include `/api/v1`
  - Check that your account has the necessary permissions

  **Webhook Not Receiving Events**
  - Verify the webhook URL is accessible from the internet
  - Check that the selected events are being triggered in Orgo
  - Ensure webhook signature verification is properly configured

  **API Request Failures**
  - Confirm the Orgo instance is running and accessible
  - Check network connectivity and firewall settings
  - Verify the API endpoint exists and accepts the request method

  ### Debug Mode
  Enable n8n debug logging to troubleshoot issues:
  ```bash
  N8N_LOG_LEVEL=debug n8n start
  ```
  ## Support

  - **GitHub Issues**: [Report bugs and request features](https://github.com/Orgo-space/n8n-nodes-orgo/issues)
  - **n8n Community**: [Get help from the n8n community](https://community.n8n.io/)
  - **Orgo Documentation**: [docs.orgo.space/api-reference](https://docs.orgo.space/api-reference)

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Orgo Platform](https://app.orgo.space)
  - [Orgo API Documentation](https://docs.orgo.space/api-reference)
  - [n8n Workflow Examples](https://n8n.io/workflows/)

  ## License

  [MIT](LICENSE.md)

  ---

  **Keywords**: n8n, community-node, orgo, webhook, automation, workflow, membership-management, event-management, api-integration

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Orgo, a multi-tenant SaaS platform for membership management, event coordination, and community engagement, allowing full CRUD operations on users, contacts, events, registrations, contracts, payments, and webhooks.","capabilities":["User management (create, retrieve, list users)","Contact management (create, update, delete, retrieve contacts)","Event management (create, retrieve, list events)","Event registration handling (register, update status, cancel)","Contract user management","Payment record retrieval","Webhook creation, management, and testing","Custom API endpoint requests","Webhook trigger for real-time automation","Event filtering and signature verification"],"authentication":"API Token required (Base URL and Token in credentials)","commonUseCases":["Automating user onboarding workflows","Syncing event registrations between systems","Triggering actions on contact or user changes","Managing membership and contract data","Tracking payment records"],"limitations":["Community node (may require manual installation)","Requires valid Orgo API token and Base URL configuration","Tenant ID is auto-detected but can be manually specified"],"relatedNodes":["Orgo Trigger","Generic HTTP Request","Generic Webhook"]}


node_type: @nskha/n8n-nodes-scrappey.scrappey
package_name: @nskha/n8n-nodes-scrappey
display_name: Scrappey
description: Make advanced web requests with anti-bot protection bypass using Scrappey 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: automations-project
author_github_url: https://github.com/Automations-Project/n8n-nodes-scrappey.git
npm_package_name: @nskha/n8n-nodes-scrappey
npm_version: 0.3.13
community_fetched_at: 2026-04-16T09:43:36.309Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  ![Banner](.github/assets/banner.webp)

  # Scrappey n8n Node

  [![CI](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/ci.yml/badge.svg)](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/ci.yml)
  [![Release](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/release.yml/badge.svg)](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/release.yml)
  [![Security Scan](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/security.yml/badge.svg)](https://github.com/Automations-Project/n8n-nodes-scrappey/actions/workflows/security.yml)
  [![npm version](https://img.shields.io/npm/v/@nskha/n8n-nodes-scrappey?logo=npm)](https://www.npmjs.com/package/@nskha/n8n-nodes-scrappey)
  [![npm downloads](https://img.shields.io/npm/dm/@nskha/n8n-nodes-scrappey?logo=npm)](https://www.npmjs.com/package/@nskha/n8n-nodes-scrappey)
  [![n8n Node version](https://img.shields.io/github/package-json/v/Automations-Project/n8n-nodes-scrappey?logo=n8n&label=n8n%20node)](https://github.com/Automations-Project/n8n-nodes-scrappey)
  [![n8n compatibility](https://img.shields.io/github/v/release/n8n-io/n8n?logo=n8n&label=)](https://n8n.io)
  [![Node.js compatibility](https://img.shields.io/node/v/@nskha/n8n-nodes-scrappey?logo=node.js)](https://nodejs.org)
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.5%2B-blue?logo=typescript)](https://www.typescriptlang.org)
  [![Dependencies](https://img.shields.io/librariesio/release/npm/@nskha/n8n-nodes-scrappey?logo=dependabot)](https://libraries.io/npm/@nskha%2Fn8n-nodes-scrappey)
  [![License](https://img.shields.io/github/license/Automations-Project/n8n-nodes-scrappey)](LICENSE.md)

  [![GitHub stars](https://img.shields.io/github/stars/Automations-Project/n8n-nodes-scrappey?style=social)](https://github.com/Automations-Project/n8n-nodes-scrappey/stargazers)
  [![GitHub forks](https://img.shields.io/github/forks/Automations-Project/n8n-nodes-scrappey?style=social)](https://github.com/Automations-Project/n8n-nodes-scrappey/network)
  [![GitHub issues](https://img.shields.io/github/issues/Automations-Project/n8n-nodes-scrappey)](https://github.com/Automations-Project/n8n-nodes-scrappey/issues)
  [![Last commit](https://img.shields.io/github/last-commit/Automations-Project/n8n-nodes-scrappey)](https://github.com/Automations-Project/n8n-nodes-scrappey/commits)

  > 🚀 **Advanced web scraping and anti-bot bypass node for n8n workflows**

  A powerful n8n community node that integrates with the [Scrappey.com API](https://scrappey.com) to provide advanced web scraping capabilities with built-in anti-bot protection bypass. Perfect for automating data extraction from protected websites, handling CAPTCHAs, and managing complex browser interactions.

  ## ✨ Key Features

  ### 🛠️ **Three Operation Modes**

  1. **Request Builder** - Create fully customized HTTP/browser requests with granular control
  2. **HTTP Auto-Retry** - Automatically retry failed HTTP requests through Scrappey's anti-bot network
  3. **Browser Auto-Retry** - Advanced browser-based retry with full anti-bot protection

  ### 🔒 **Anti-Bot Protection Bypass**

  - **Cloudflare** challenge solving
  - **Datadome** bypass capabilities
  - **hCaptcha & reCAPTCHA** automatic solving
  - **JavaScript-heavy websites** full browser simulation
  - **Mouse movement simulation** for enhanced stealth

  ### 🌍 **Advanced Proxy Management**

  - **Residential proxies** with country targeting
  - **Datacenter proxies** for fast requests
  - **Mobile proxies** for mobile-specific content
  - **Custom proxy** support (SOCKS4/5, HTTP/HTTPS)
  - **150+ countries** available for geo-targeting

  ### ⚙️ **Flexible Configuration**

  - **Multiple request types**: Standard HTTP, Browser, Patched Chrome
  - **Custom headers & cookies** with field-based or JSON input
  - **Session management** for maintaining state across requests
  - **POST/PUT/PATCH support** with body or form parameters
  - **CSS selector waiting** for dynamic content
  - **XHR/Fetch interception** for API data extraction

  ## 🚀 Installation

  ### Method 1: n8n Community Nodes (Recommended)

  1. Open your n8n instance
  2. Go to **Settings** → **Community Nodes**
  3. Enter: `@automations-project/n8n-nodes-scrappey`
  4. Click **Install**

  ### Method 2: Manual Installation

  ```bash
  # Using npm
  npm install @automations-project/n8n-nodes-scrappey

  # Using pnpm
  pnpm add @automations-project/n8n-nodes-scrappey

  # Using yarn
  yarn add @automations-project/n8n-nodes-scrappey
  ```

  ### Method 3: Development Installation

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

  # Install dependencies
  pnpm install

  # Build the node
  pnpm run build

  # Link for development
  pnpm run start:dev
  ```

  ## 🔧 Configuration

  ### 1. Set Up Scrappey API Credentials

  1. Sign up at [Scrappey.com](/#) to get your API key.
  2. In n8n, create new **Scrappey API** credentials
  3. Enter your API key and optional proxy settings
     > 🎯 **Get Started Free!** Try Scrappey with **750 Direct requests** and **150 Browser requests** at no cost.  
     > [Start your free trial →](https://nodes.n8n.community/scrappey/signup)
     >
     > **Affordable scaling**: For just €100, you can get 600,000 request credits including proxies, captcha etc...

  ### 2. Credential Options

  - **API Key** (required): Your Scrappey.com API key
  - **Custom Proxy** (optional): Your own proxy URL (SOCKS4/5, HTTP/HTTPS)
  - **Whitelisted Domains** (optional): JSON array of allowed domains for enhanced security

  ## 📋 Operation Modes
  ![Operations Types](.github/assets/operations.jpg)
  ### 🛠️ Request Builder (Manual)

  **Primary mode for creating custom requests with full control**

  ```typescript
  // Example configuration options:
  {
    "url": "https://example.com/api/data",
    "httpMethod": "GET",
    "request_type": "Browser", // or "Request", "PatchedChrome"
    "whichProxyToUse": "proxyFromScrappey",
    "proxyType": "residential", // residential, datacenter, mobile
    "customProxyCountry": "UnitedStates",
    "antibot": true,
    "mouseMovements": true,
    "datadome": true
  }
  ```

  **Use Cases:**

  - Complex form submissions with CAPTCHA solving
  - JavaScript-heavy SPA scraping
  - API data extraction with anti-bot protection
  - Multi-step workflows with session management

  ### 🔁 HTTP Auto-Retry

  **Fallback solution for failed n8n HTTP Request nodes**
  ![Banner](.github/assets/example.svg)
  Connect the **error output** (red connector) of a standard HTTP Request node to this operation. It automatically retries the same request through Scrappey's network when blocked by:

  - Cloudflare challenges
  - Rate limiting
  - IP blocks
  - Basic anti-bot measures


  ### 🌐 Browser Auto-Retry

  **Advanced browser-based retry with full anti-bot protection**

  Similar to HTTP Auto-Retry but uses a full browser environment with:

  - Automatic CAPTCHA solving (hCaptcha, reCAPTCHA)
  - Mouse movement simulation
  - Datadome bypass enabled
  - JavaScript execution
  - 3 automatic retries

  ## 💡 Usage Examples

  ### Basic Web Scraping

  ```javascript
  // Request Builder - Simple GET request
  {
    "operation": "requestBuilder",
    "url": "https://httpbin.org/get",
    "httpMethod": "request.get",
    "request_type": "Request"
  }
  ```

  ### Advanced Browser Automation

  ```javascript
  // Browser request with anti-bot protection
  {
    "operation": "requestBuilder",
    "url": "https://protected-site.com",
    "request_type": "Browser",
    "antibot": true,
    "mouseMovements": true,
    "datadome": true,
    "cssSelector": ".content-loaded",
    "proxyType": "residential",
    "customProxyCountry": "UnitedStates"
  }
  ```

  ### Form Submission with CAPTCHA

  ```javascript
  // POST request with CAPTCHA solving
  {
    "operation": "requestBuilder",
    "url": "https://example.com/submit",
    "httpMethod": "request.post",
    "request_type": "Browser",
    "bodyOrParams": "body_used",
    "body_for_request": "{\"name\":\"John\",\"email\":\"john@example.com\"}",
    "antibot": true
  }
  ```

  ### Auto-Retry Fallback

  ```javascript
  // Connect HTTP Request node error output to Scrappey node input
  // Set operation to "httpRequestAutoRetry" or "httpRequestAutoRetryBrowser"
  {
    "operation": "httpRequestAutoRetry",
    "whichProxyToUse": "proxyFromScrappey",
    "proxyType": "residential"
  }
  ```

  ## 🔒 Error Handling

  The node provides detailed error messages for common Scrappey API error codes:

  | Code      | Description        | Solution                            |
  | --------- | ------------------ | ----------------------------------- |
  | CODE-0001 | Server overloaded  | Retry after a few minutes           |
  | CODE-0002 | Cloudflare blocked | Try different proxy or browser mode |
  | CODE-0003 | Too many attempts  | Wait before retrying                |
  | CODE-0004 | Invalid command    | Check request configuration         |
  | CODE-0005 | Tunnel failed      | Retry with different proxy          |

  ## 🏗️ Development

  ### Building from Source

  ```bash
  # Install dependencies
  pnpm install

  # Development build with watch
  pnpm run build:watch

  # Production build
  pnpm run build

  # Linting & formatting
  pnpm run lint
  pnpm run format

  # Type checking
  pnpm run type-check

  # Full validation
  pnpm run validate
  ```

  ### Project Structure

  ```
  n8n-nodes-scrappey/
  ├── nodes/Scrappey/          # Main node implementation
  │   ├── Scrappey.node.ts     # Node definition and execution
  │   ├── execute.ts           # Operation dispatcher
  │   ├── RequestMethods.ts    # HTTP/Browser request handlers
  │   ├── requestBodyBuilder.ts # Request body construction
  │   ├── fields.ts            # Node field definitions
  │   ├── GenericFunctions.ts  # API integration utilities
  │   └── utils.ts             # Helper functions
  ├── credentials/             # Credential definitions
  │   └── ScrappeyApi.credentials.ts
  ├── scripts/                 # Build and deployment scripts
  ├── .github/workflows/       # CI/CD pipelines
  └── dist/                    # Built output
  ```

  ### CI/CD Pipeline

  This project includes a comprehensive CI/CD setup:

  - **Continuous Integration**: Automated testing, linting, and building on every PR
  - **Auto-versioning**: Automatic version bumps based on commit messages
  - **Automated Releases**: Publishes to GitHub Packages and optionally npm
  - **Security Scanning**: CodeQL analysis and dependency auditing
  - **Dependabot**: Automated dependency updates

  #### Commit Message Conventions

  - `feat: description` → Minor version bump
  - `fix: description` → Patch version bump
  - `BREAKING CHANGE` or `[major]` → Major version bump
  - `[skip ci]` or `[skip version]` → Skip automation

  ## 🤝 Contributing

  1. Fork the repository
  2. Create a feature branch: `git checkout -b feature/amazing-feature`
  3. Commit changes: `git commit -m 'feat: add amazing feature'`
  4. Push to branch: `git push origin feature/amazing-feature`
  5. Open a Pull Request

  ## 📄 License

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

  ## 🔗 Links

  - **Scrappey Website**: [https://scrappey.com](https://scrappey.com)
  - **Scrappey Documentation**: [https://wiki.scrappey.com](https://wiki.scrappey.com)
  - **n8n Community**: [https://community.n8n.io](https://community.n8n.io)
  - **GitHub Issues**: [Report bugs or request features](https://github.com/Automations-Project/n8n-nodes-scrappey/issues)
  - **Nskha Discord**: [⚠️Incative community](https://nskha.com/discord)

  ---

  **Made with ❤️ for the n8n community**

ai_documentation_summary:
  {"purpose":"The Scrappey n8n node automates advanced web scraping by integrating with the Scrappey API to perform HTTP requests and browser automation with built-in anti-bot protection bypass capabilities.","capabilities":["Custom HTTP request building with granular control","Automatic retry for failed HTTP requests","Browser-based retry with full anti-bot bypass","Cloudflare challenge solving","hCaptcha and reCAPTCHA automatic solving","Datadome bypass","JavaScript-heavy website simulation","Mouse movement simulation","Residential, datacenter, and mobile proxy support","Geo-targeting across 150+ countries"],"authentication":"API key required","commonUseCases":["Automated data extraction from protected websites","CAPTCHA handling and bypass","Web scraping with anti-bot evasion","API data extraction via XHR/Fetch interception","Geolocation-based content retrieval"],"limitations":["Requires Scrappey API key from Scrappey.com","Free tier limited to 750 direct requests and 150 browser requests","Relies on third-party Scrappey API for actual request execution"],"relatedNodes":["HTTP Request","Webhook","Code","Credentials"]}


node_type: n8n-nodes-linkupapi.linkup
package_name: n8n-nodes-linkupapi
display_name: Linkup API for LinkedIn
description: Connect your AI agent to LinkedIn and other B2B channels
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:36
author_name: linkup_eliott
author_github_url: https://github.com/Eliott-89/
npm_package_name: n8n-nodes-linkupapi
npm_version: 4.0.65
community_fetched_at: 2026-04-16T09:43:36.310Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "profile",
      "options": [
        {
          "name": "Profiles",
          "value": "profile"
        },
        {
          "name": "Companies",
          "value": "company"
        },
        {
          "name": "Network",
          "value": "network"
        },
        {
          "name": "Messages",
          "value": "message"
        },
        {
          "name": "Posts",
          "value": "post"
        },
        {
          "name": "Recruiter",
          "value": "recruiter"
        },
        {
          "name": "Company API",
          "value": "company api"
        },
        {
          "name": "Person API",
          "value": "person api"
        },
        {
          "name": "Mail API",
          "value": "mail api"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get my profile",
      "options": [
        {
          "name": "Get My Profile",
          "value": "get my profile",
          "action": "Get my LinkedIn profile",
          "description": "Get your LinkedIn profile information"
        },
        {
          "name": "Get Profile Information",
          "value": "get profile info",
          "action": "Get a profile's information",
          "description": "Get profile information (profile/info)"
        },
        {
          "name": "Search Profile",
          "value": "search profile",
          "action": "Search for profiles",
          "description": "Search LinkedIn profiles"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "profile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search companies",
      "options": [
        {
          "name": "Search Companies",
          "value": "search companies",
          "action": "Search for companies",
          "description": "Search for companies on LinkedIn"
        },
        {
          "name": "Get Company Information",
          "value": "get company info",
          "action": "Get company information",
          "description": "Get detailed information about a company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "company"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send connection request",
      "options": [
        {
          "name": "Send Connection Request",
          "value": "send connection request",
          "action": "Send a connection request",
          "description": "Send a connection request to a profile"
        },
        {
          "name": "Get Connections",
          "value": "get connections",
          "action": "Get connections",
          "description": "Get your LinkedIn connections"
        },
        {
          "name": "Accept Connection Invitation",
          "value": "accept connection invitation",
          "action": "Accept connection invitation",
          "description": "Accept a received connection invitation"
        },
        {
          "name": "Get Received Invitations",
          "value": "get received invitations",
          "action": "Get received invitations",
          "description": "Get received connection invitations"
        },
        {
          "name": "Get Sent Invitations",
          "value": "get sent invitations",
          "action": "Get sent invitations",
          "description": "Get sent connection invitations"
        },
        {
          "name": "Withdraw Invitation",
          "value": "withdraw invitation",
          "action": "Withdraw an invitation",
          "description": "Withdraw a sent invitation"
        },
        {
          "name": "Get Network Recommendations",
          "value": "get network recommendations",
          "action": "Get network recommendations",
          "description": "Get network recommendations"
        },
        {
          "name": "Get Invitation Status",
          "value": "get invitation status",
          "action": "Check invitation status",
          "description": "Check invitation status for a profile"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "network"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send message",
      "options": [
        {
          "name": "Send Message",
          "value": "send message",
          "action": "Send a message",
          "description": "Send a message to a connection"
        },
        {
          "name": "Get Message Inbox",
          "value": "get message inbox",
          "action": "Get message inbox",
          "description": "Get your message inbox"
        },
        {
          "name": "Get Conversation Messages",
          "value": "get conversation messages",
          "action": "Get conversation messages",
          "description": "Get messages from a conversation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "message"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get post reactions",
      "options": [
        {
          "name": "Get Post Reactions",
          "value": "get post reactions",
          "action": "Get post reactions",
          "description": "Get reactions on a post"
        },
        {
          "name": "React To Post",
          "value": "react to post",
          "action": "React to a post",
          "description": "React to a post"
        },
        {
          "name": "Repost Content",
          "value": "repost content",
          "action": "Repost content",
          "description": "Repost content"
        },
        {
          "name": "Add Comment To Post",
          "value": "add comment to post",
          "action": "Add comment to post",
          "description": "Add a comment to a post"
        },
        {
          "name": "Get Comments",
          "value": "get comments",
          "action": "Get post comments",
          "description": "Get comments on a post"
        },
        {
          "name": "Answer Comment",
          "value": "answer comment",
          "action": "Answer a comment",
          "description": "Answer a comment"
        },
        {
          "name": "Search Posts",
          "value": "search posts",
          "action": "Search for posts",
          "description": "Search for posts"
        },
        {
          "name": "Create Post",
          "value": "create post",
          "action": "Create a post",
          "description": "Create a new post"
        },
        {
          "name": "Get LinkedIn Feed",
          "value": "get linkedin feed",
          "action": "Get LinkedIn feed",
          "description": "Get your LinkedIn feed"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get candidates",
      "options": [
        {
          "name": "Get Candidates",
          "value": "get candidates",
          "action": "Get candidates",
          "description": "Get candidate list"
        },
        {
          "name": "Get Candidate CV",
          "value": "get candidate cv",
          "action": "Get candidate CV",
          "description": "Get candidate CV"
        },
        {
          "name": "Get Job Posts",
          "value": "get job posts",
          "action": "Get job posts",
          "description": "Get job posts"
        },
        {
          "name": "Publish Job",
          "value": "publish job",
          "action": "Publish a job",
          "description": "Publish a job"
        },
        {
          "name": "Close Job",
          "value": "close job",
          "action": "Close a job",
          "description": "Close a job"
        },
        {
          "name": "Create Job",
          "value": "create job",
          "action": "Create a job",
          "description": "Create a new job"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "recruiter"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search companies",
      "options": [
        {
          "name": "Search Companies",
          "value": "search companies",
          "action": "Search for companies",
          "description": "Search for companies"
        },
        {
          "name": "Get Company Information",
          "value": "get company info",
          "action": "Get company information",
          "description": "Get company information"
        },
        {
          "name": "Get Company Information By Domain",
          "value": "get company info by domain",
          "action": "Get company information by domain",
          "description": "Get company information by domain"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "company api"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search profiles",
      "options": [
        {
          "name": "Search Profiles",
          "value": "search profiles",
          "action": "Search for profiles",
          "description": "Search for profiles"
        },
        {
          "name": "Extract Profile Information",
          "value": "extract profile info",
          "action": "Extract profile information",
          "description": "Extract profile information (data/profil/info)"
        },
        {
          "name": "Profile Enrichment",
          "value": "profile enrichment",
          "action": "Enrich profile information",
          "description": "Enrich profile information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "person api"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "email finder",
      "options": [
        {
          "name": "Email Finder",
          "value": "email finder",
          "action": "Find email addresses",
          "description": "Find email addresses from LinkedIn profiles"
        },
        {
          "name": "Email Reverse",
          "value": "email reverse",
          "action": "Reverse lookup email",
          "description": "Reverse lookup email to get LinkedIn profile information"
        },
        {
          "name": "Email Validate",
          "value": "email validate",
          "action": "Validate email address",
          "description": "Validate if an email address is valid and deliverable"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "mail api"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get My Profile",
      "value": "get my profile",
      "action": "Get my LinkedIn profile",
      "description": "Get your LinkedIn profile information",
      "resource": "profile"
    },
    {
      "name": "Get Profile Information",
      "value": "get profile info",
      "action": "Get a profile's information",
      "description": "Get profile information (profile/info)",
      "resource": "profile"
    },
    {
      "name": "Search Profile",
      "value": "search profile",
      "action": "Search for profiles",
      "description": "Search LinkedIn profiles",
      "resource": "profile"
    },
    {
      "name": "Search Companies",
      "value": "search companies",
      "action": "Search for companies",
      "description": "Search for companies on LinkedIn",
      "resource": "company"
    },
    {
      "name": "Get Company Information",
      "value": "get company info",
      "action": "Get company information",
      "description": "Get detailed information about a company",
      "resource": "company"
    },
    {
      "name": "Send Connection Request",
      "value": "send connection request",
      "action": "Send a connection request",
      "description": "Send a connection request to a profile",
      "resource": "network"
    },
    {
      "name": "Get Connections",
      "value": "get connections",
      "action": "Get connections",
      "description": "Get your LinkedIn connections",
      "resource": "network"
    },
    {
      "name": "Accept Connection Invitation",
      "value": "accept connection invitation",
      "action": "Accept connection invitation",
      "description": "Accept a received connection invitation",
      "resource": "network"
    },
    {
      "name": "Get Received Invitations",
      "value": "get received invitations",
      "action": "Get received invitations",
      "description": "Get received connection invitations",
      "resource": "network"
    },
    {
      "name": "Get Sent Invitations",
      "value": "get sent invitations",
      "action": "Get sent invitations",
      "description": "Get sent connection invitations",
      "resource": "network"
    },
    {
      "name": "Withdraw Invitation",
      "value": "withdraw invitation",
      "action": "Withdraw an invitation",
      "description": "Withdraw a sent invitation",
      "resource": "network"
    },
    {
      "name": "Get Network Recommendations",
      "value": "get network recommendations",
      "action": "Get network recommendations",
      "description": "Get network recommendations",
      "resource": "network"
    },
    {
      "name": "Get Invitation Status",
      "value": "get invitation status",
      "action": "Check invitation status",
      "description": "Check invitation status for a profile",
      "resource": "network"
    },
    {
      "name": "Send Message",
      "value": "send message",
      "action": "Send a message",
      "description": "Send a message to a connection",
      "resource": "message"
    },
    {
      "name": "Get Message Inbox",
      "value": "get message inbox",
      "action": "Get message inbox",
      "description": "Get your message inbox",
      "resource": "message"
    },
    {
      "name": "Get Conversation Messages",
      "value": "get conversation messages",
      "action": "Get conversation messages",
      "description": "Get messages from a conversation",
      "resource": "message"
    },
    {
      "name": "Get Post Reactions",
      "value": "get post reactions",
      "action": "Get post reactions",
      "description": "Get reactions on a post",
      "resource": "post"
    },
    {
      "name": "React To Post",
      "value": "react to post",
      "action": "React to a post",
      "description": "React to a post",
      "resource": "post"
    },
    {
      "name": "Repost Content",
      "value": "repost content",
      "action": "Repost content",
      "description": "Repost content",
      "resource": "post"
    },
    {
      "name": "Add Comment To Post",
      "value": "add comment to post",
      "action": "Add comment to post",
      "description": "Add a comment to a post",
      "resource": "post"
    },
    {
      "name": "Get Comments",
      "value": "get comments",
      "action": "Get post comments",
      "description": "Get comments on a post",
      "resource": "post"
    },
    {
      "name": "Answer Comment",
      "value": "answer comment",
      "action": "Answer a comment",
      "description": "Answer a comment",
      "resource": "post"
    },
    {
      "name": "Search Posts",
      "value": "search posts",
      "action": "Search for posts",
      "description": "Search for posts",
      "resource": "post"
    },
    {
      "name": "Create Post",
      "value": "create post",
      "action": "Create a post",
      "description": "Create a new post",
      "resource": "post"
    },
    {
      "name": "Get LinkedIn Feed",
      "value": "get linkedin feed",
      "action": "Get LinkedIn feed",
      "description": "Get your LinkedIn feed",
      "resource": "post"
    },
    {
      "name": "Get Candidates",
      "value": "get candidates",
      "action": "Get candidates",
      "description": "Get candidate list",
      "resource": "recruiter"
    },
    {
      "name": "Get Candidate CV",
      "value": "get candidate cv",
      "action": "Get candidate CV",
      "description": "Get candidate CV",
      "resource": "recruiter"
    },
    {
      "name": "Get Job Posts",
      "value": "get job posts",
      "action": "Get job posts",
      "description": "Get job posts",
      "resource": "recruiter"
    },
    {
      "name": "Publish Job",
      "value": "publish job",
      "action": "Publish a job",
      "description": "Publish a job",
      "resource": "recruiter"
    },
    {
      "name": "Close Job",
      "value": "close job",
      "action": "Close a job",
      "description": "Close a job",
      "resource": "recruiter"
    },
    {
      "name": "Create Job",
      "value": "create job",
      "action": "Create a job",
      "description": "Create a new job",
      "resource": "recruiter"
    },
    {
      "name": "Search Companies",
      "value": "search companies",
      "action": "Search for companies",
      "description": "Search for companies",
      "resource": "company api"
    },
    {
      "name": "Get Company Information",
      "value": "get company info",
      "action": "Get company information",
      "description": "Get company information",
      "resource": "company api"
    },
    {
      "name": "Get Company Information By Domain",
      "value": "get company info by domain",
      "action": "Get company information by domain",
      "description": "Get company information by domain",
      "resource": "company api"
    },
    {
      "name": "Search Profiles",
      "value": "search profiles",
      "action": "Search for profiles",
      "description": "Search for profiles",
      "resource": "person api"
    },
    {
      "name": "Extract Profile Information",
      "value": "extract profile info",
      "action": "Extract profile information",
      "description": "Extract profile information (data/profil/info)",
      "resource": "person api"
    },
    {
      "name": "Profile Enrichment",
      "value": "profile enrichment",
      "action": "Enrich profile information",
      "description": "Enrich profile information",
      "resource": "person api"
    },
    {
      "name": "Email Finder",
      "value": "email finder",
      "action": "Find email addresses",
      "description": "Find email addresses from LinkedIn profiles",
      "resource": "mail api"
    },
    {
      "name": "Email Reverse",
      "value": "email reverse",
      "action": "Reverse lookup email",
      "description": "Reverse lookup email to get LinkedIn profile information",
      "resource": "mail api"
    },
    {
      "name": "Email Validate",
      "value": "email validate",
      "action": "Validate email address",
      "description": "Validate if an email address is valid and deliverable",
      "resource": "mail api"
    }
  ]

npm_readme:
  # @linkupapi/n8n-nodes

  Official n8n integration for LinkupAPI - Give your AI agents access to LinkedIn, WhatsApp, and real-time web data through a single powerful API


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

  ## Quick Start

  ### 1. Get API Credentials

  Sign up at [linkupapi.com](https://www.linkupapi.com) and get your API key.

  ### 2. Configure in n8n

  Add your LinkupAPI credentials in n8n:
  - **Credential Type**: LinkupAPI
  - **API Key**: Your API key from the dashboard

  ### 3. Use in Workflows

  Drag and drop LinkupAPI nodes into your workflow and start automating.



  ## Features

  ### LinkedIn Automation
  - **Connection Requests**: Send personalized invitations programmatically
  - **Messaging**: Automate DM campaigns with text and media
  - **Engagement**: Post comments and interact with content at scale

  ### WhatsApp Integration
  - **Messaging**: Send WhatsApp messages
  - **Automation**: Build conversational workflows

  ### Email Intelligence
  - **Email Finder**: Discover professional email addresses
  - **Email Verifier**: Validate deliverability in real-time
  - **Reverse Lookup**: Get profile data from email addresses

  ### Web Crawler API
  - **People Search**: Find professionals with advanced filters (title, company, location, skills)
  - **Company Intelligence**: Get complete company data from any domain
  - **Company Search**: Filter companies by industry, size, funding, and location
  - **Hiring Signals**: Track companies actively recruiting
  - **Funding Data**: Source companies raising capital
  - **Sales Automation**: Prospect on LinkedIn, find emails, track hiring signals
  - **Recruitment**: Source candidates, monitor job postings, enrich profiles
  - **Lead Generation**: Search companies, enrich data, detect buying intent
  - **AI Agents**: Build autonomous workflows for outreach and intelligence

  ## API Endpoints

  | Category | Endpoints | Description |
  |----------|-----------|-------------|
  | **LinkedIn** | Invitations, Messages, Comments and more | Automate LinkedIn outreach |
  | **WhatsApp** | Messages | Send WhatsApp messages |
  | **Email** | Finder, Verifier, Reverse | Email intelligence tools |
  | **Web Crawler** | People Search, Company Search, Job Postings, Funding | Real-time B2B intelligence |

  ## Documentation

  - **Full API Docs**: [docs.linkupapi.com](https://docs.linkupapi.com/api-reference/introduction)
  - **Support**: support@linkupapi.com

  ## Compliance & Security

  - ✅ GDPR & CCPA compliant
  - ✅ Zero-storage architecture
  - ✅ Real-time processing only
  - ✅ Enterprise-grade security

  ## Requirements

  - Node.js: >= 18.10
  - n8n: Latest version
  - Valid Linkup API credentials

  ## License

  Proprietary - See [terms of use](https://www.linkupapi.com/legal/terms-of-use)


  ## Support

  - Website: [linkupapi.com](https://www.linkupapi.com)
  - Email: support@linkupapi.com
  - Documentation: [docs.linkupapi.com](https://docs.linkupapi.com/api-reference/introduction)

ai_documentation_summary:
  {"purpose":"This n8n node integrates LinkupAPI to connect AI agents with LinkedIn, WhatsApp, and real-time web data for B2B automation, outreach, and intelligence gathering.","capabilities":["Send personalized LinkedIn connection requests","Automate LinkedIn DM campaigns with text and media","Post comments and interact with LinkedIn content at scale","Send WhatsApp messages","Build conversational WhatsApp workflows","Discover professional email addresses (Email Finder)","Validate email deliverability (Email Verifier)","Retrieve profile data from email addresses (Reverse Lookup)","Search professionals with advanced filters (title, company, location, skills)","Retrieve company data from any domain"],"authentication":"API Key required","commonUseCases":["B2B sales outreach automation","LinkedIn lead generation and prospecting","Conversational WhatsApp marketing","Professional email discovery and verification","Candidate sourcing and recruitment"],"limitations":["Requires valid LinkupAPI credentials from linkupapi.com","Requires Node.js >= 18.10"],"relatedNodes":["n8n-nodes-linkupapi.linkup"]}


