# nodes

node_type: n8n-nodes-streak-crm.streak
package_name: n8n-nodes-streak-crm
display_name: Streak
description: Streak CRM Node
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: nader_heidari
author_github_url: https://github.com/nukleas/
npm_package_name: n8n-nodes-streak-crm
npm_version: 1.1.17
community_fetched_at: 2026-03-25T21:19:40.663Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "user",
      "options": [
        {
          "name": "Box",
          "value": "box",
          "description": "Operate on Streak boxes (deals/opportunities)"
        },
        {
          "name": "Contact",
          "value": "contact",
          "description": "Operate on Streak contacts"
        },
        {
          "name": "Field",
          "value": "field",
          "description": "Operate on Streak fields and field values"
        },
        {
          "name": "Organization",
          "value": "organization",
          "description": "Operate on Streak organizations"
        },
        {
          "name": "Pipeline",
          "value": "pipeline",
          "description": "Operate on Streak pipelines"
        },
        {
          "name": "Stage",
          "value": "stage",
          "description": "Operate on Streak pipeline stages"
        },
        {
          "name": "Task",
          "value": "task",
          "description": "Operate on Streak tasks"
        },
        {
          "name": "Team",
          "value": "team",
          "description": "Operate on Streak teams"
        },
        {
          "name": "User",
          "value": "user",
          "description": "Operate on Streak users"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCurrentUser",
      "options": [
        {
          "name": "Get Current User",
          "value": "getCurrentUser",
          "action": "Get current user",
          "description": "Get information about the current user"
        },
        {
          "name": "Get User",
          "value": "getUser",
          "action": "Get a user",
          "description": "Get information about a specific user by their key"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMyTeams",
      "options": [
        {
          "name": "Get My Teams",
          "value": "getMyTeams",
          "action": "Get my teams",
          "description": "List all teams the authenticated user belongs to"
        },
        {
          "name": "Get Team",
          "value": "getTeam",
          "action": "Get a team",
          "description": "Get information about a specific team"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAllPipelines",
      "options": [
        {
          "name": "Create Pipeline",
          "value": "createPipeline",
          "action": "Create a pipeline",
          "description": "Creates a new pipeline"
        },
        {
          "name": "Delete Pipeline",
          "value": "deletePipeline",
          "action": "Delete a pipeline",
          "description": "Deletes a pipeline"
        },
        {
          "name": "Get Pipeline",
          "value": "getPipeline",
          "action": "Get a pipeline",
          "description": "Gets a specific pipeline by its key"
        },
        {
          "name": "List All Pipelines",
          "value": "listAllPipelines",
          "action": "List all pipelines",
          "description": "Lists all pipelines the user has access to"
        },
        {
          "name": "Move Boxes (Batch)",
          "value": "moveBoxesBatch",
          "action": "Move boxes between pipelines",
          "description": "Moves multiple boxes to a different pipeline"
        },
        {
          "name": "Update Pipeline",
          "value": "updatePipeline",
          "action": "Update a pipeline",
          "description": "Updates an existing pipeline"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pipeline"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listBoxes",
      "options": [
        {
          "name": "Create Box in a Pipeline",
          "value": "createBox",
          "action": "Create a box in a pipeline",
          "description": "Creates a new box in a pipeline"
        },
        {
          "name": "Delete Box",
          "value": "deleteBox",
          "action": "Delete a box",
          "description": "Deletes a box"
        },
        {
          "name": "Get Box",
          "value": "getBox",
          "action": "Get a box",
          "description": "Gets a specific box by its key"
        },
        {
          "name": "Get Multiple Boxes",
          "value": "getMultipleBoxes",
          "action": "Get multiple boxes",
          "description": "Gets multiple boxes by their keys"
        },
        {
          "name": "Get Timeline",
          "value": "getTimeline",
          "action": "Get timeline",
          "description": "Gets the timeline of events for a box"
        },
        {
          "name": "List Boxes in Pipeline",
          "value": "listBoxes",
          "action": "Get all boxes in a pipeline",
          "description": "Get all boxes (deals) in a pipeline"
        },
        {
          "name": "Update Box",
          "value": "updateBox",
          "action": "Update a box",
          "description": "Updates an existing box"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "box"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listStages",
      "options": [
        {
          "name": "Create Stage in a Pipeline",
          "value": "createStage",
          "action": "Create a stage in a pipeline",
          "description": "Creates a new stage in a pipeline"
        },
        {
          "name": "Delete Stage",
          "value": "deleteStage",
          "action": "Delete a stage",
          "description": "Deletes a stage"
        },
        {
          "name": "Get Stage",
          "value": "getStage",
          "action": "Get a stage",
          "description": "Gets a specific stage by its key"
        },
        {
          "name": "List Stages in a Pipeline",
          "value": "listStages",
          "action": "List stages in a pipeline",
          "description": "Lists all stages in a pipeline"
        },
        {
          "name": "Update Stage",
          "value": "updateStage",
          "action": "Update a stage",
          "description": "Updates an existing stage"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "stage"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listFields",
      "options": [
        {
          "name": "Create Field in a Pipeline",
          "value": "createField",
          "action": "Create a field in a pipeline",
          "description": "Creates a new field in a pipeline"
        },
        {
          "name": "Delete Field",
          "value": "deleteField",
          "action": "Delete a field",
          "description": "Deletes a field"
        },
        {
          "name": "Get Field",
          "value": "getField",
          "action": "Get a field",
          "description": "Gets a specific field by its key"
        },
        {
          "name": "Get Field Value in a Box",
          "value": "getFieldValue",
          "action": "Get a field value in a box",
          "description": "Gets a specific field value for a box"
        },
        {
          "name": "List Field Values in a Box",
          "value": "listFieldValues",
          "action": "List field values in a box",
          "description": "Lists all field values for a box"
        },
        {
          "name": "List Fields in a Pipeline",
          "value": "listFields",
          "action": "List fields in a pipeline",
          "description": "Lists all fields in a pipeline"
        },
        {
          "name": "Update Field",
          "value": "updateField",
          "action": "Update a field",
          "description": "Updates an existing field"
        },
        {
          "name": "Update Field Value in a Box",
          "value": "updateFieldValue",
          "action": "Update a field value in a box",
          "description": "Updates a field value for a box"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "field"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getContact",
      "options": [
        {
          "name": "Get Contact",
          "value": "getContact",
          "action": "Get a contact",
          "description": "Gets a specific contact"
        },
        {
          "name": "Create Contact",
          "value": "createContact",
          "action": "Create a contact",
          "description": "Creates a new contact"
        },
        {
          "name": "Update Contact",
          "value": "updateContact",
          "action": "Update a contact",
          "description": "Updates an existing contact"
        },
        {
          "name": "Delete Contact",
          "value": "deleteContact",
          "action": "Delete a contact",
          "description": "Deletes a contact"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getOrganization",
      "options": [
        {
          "name": "Check Existing Organizations",
          "value": "checkExistingOrganizations",
          "action": "Check existing organizations",
          "description": "Checks for existing organizations by name or domain"
        },
        {
          "name": "Create Organization",
          "value": "createOrganization",
          "action": "Create an organization",
          "description": "Creates a new organization"
        },
        {
          "name": "Delete Organization",
          "value": "deleteOrganization",
          "action": "Delete an organization",
          "description": "Deletes an organization"
        },
        {
          "name": "Get Organization",
          "value": "getOrganization",
          "action": "Get an organization",
          "description": "Gets a specific organization"
        },
        {
          "name": "Update Organization",
          "value": "updateOrganization",
          "action": "Update an organization",
          "description": "Updates an existing organization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "organization"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTask",
      "options": [
        {
          "name": "Create Task in a Box",
          "value": "createTask",
          "action": "Create a task in a box",
          "description": "Creates a new task for a box"
        },
        {
          "name": "Delete Task",
          "value": "deleteTask",
          "action": "Delete a task",
          "description": "Deletes a task"
        },
        {
          "name": "Get Task",
          "value": "getTask",
          "action": "Get a task",
          "description": "Gets a specific task"
        },
        {
          "name": "Get Tasks in a Box",
          "value": "getTasksInBox",
          "action": "Get tasks in a box",
          "description": "Gets all tasks associated with a box"
        },
        {
          "name": "Update Task",
          "value": "updateTask",
          "action": "Update a task",
          "description": "Updates an existing task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Current User",
      "value": "getCurrentUser",
      "action": "Get current user",
      "description": "Get information about the current user"
    },
    {
      "name": "Get User",
      "value": "getUser",
      "action": "Get a user",
      "description": "Get information about a specific user by their key"
    },
    {
      "name": "Get My Teams",
      "value": "getMyTeams",
      "action": "Get my teams",
      "description": "List all teams the authenticated user belongs to"
    },
    {
      "name": "Get Team",
      "value": "getTeam",
      "action": "Get a team",
      "description": "Get information about a specific team"
    },
    {
      "name": "Create Pipeline",
      "value": "createPipeline",
      "action": "Create a pipeline",
      "description": "Creates a new pipeline"
    },
    {
      "name": "Delete Pipeline",
      "value": "deletePipeline",
      "action": "Delete a pipeline",
      "description": "Deletes a pipeline"
    },
    {
      "name": "Get Pipeline",
      "value": "getPipeline",
      "action": "Get a pipeline",
      "description": "Gets a specific pipeline by its key"
    },
    {
      "name": "List All Pipelines",
      "value": "listAllPipelines",
      "action": "List all pipelines",
      "description": "Lists all pipelines the user has access to"
    },
    {
      "name": "Move Boxes (Batch)",
      "value": "moveBoxesBatch",
      "action": "Move boxes between pipelines",
      "description": "Moves multiple boxes to a different pipeline"
    },
    {
      "name": "Update Pipeline",
      "value": "updatePipeline",
      "action": "Update a pipeline",
      "description": "Updates an existing pipeline"
    },
    {
      "name": "Create Box in a Pipeline",
      "value": "createBox",
      "action": "Create a box in a pipeline",
      "description": "Creates a new box in a pipeline"
    },
    {
      "name": "Delete Box",
      "value": "deleteBox",
      "action": "Delete a box",
      "description": "Deletes a box"
    },
    {
      "name": "Get Box",
      "value": "getBox",
      "action": "Get a box",
      "description": "Gets a specific box by its key"
    },
    {
      "name": "Get Multiple Boxes",
      "value": "getMultipleBoxes",
      "action": "Get multiple boxes",
      "description": "Gets multiple boxes by their keys"
    },
    {
      "name": "Get Timeline",
      "value": "getTimeline",
      "action": "Get timeline",
      "description": "Gets the timeline of events for a box"
    },
    {
      "name": "List Boxes in Pipeline",
      "value": "listBoxes",
      "action": "Get all boxes in a pipeline",
      "description": "Get all boxes (deals) in a pipeline"
    },
    {
      "name": "Update Box",
      "value": "updateBox",
      "action": "Update a box",
      "description": "Updates an existing box"
    },
    {
      "name": "Create Stage in a Pipeline",
      "value": "createStage",
      "action": "Create a stage in a pipeline",
      "description": "Creates a new stage in a pipeline"
    },
    {
      "name": "Delete Stage",
      "value": "deleteStage",
      "action": "Delete a stage",
      "description": "Deletes a stage"
    },
    {
      "name": "Get Stage",
      "value": "getStage",
      "action": "Get a stage",
      "description": "Gets a specific stage by its key"
    },
    {
      "name": "List Stages in a Pipeline",
      "value": "listStages",
      "action": "List stages in a pipeline",
      "description": "Lists all stages in a pipeline"
    },
    {
      "name": "Update Stage",
      "value": "updateStage",
      "action": "Update a stage",
      "description": "Updates an existing stage"
    },
    {
      "name": "Create Field in a Pipeline",
      "value": "createField",
      "action": "Create a field in a pipeline",
      "description": "Creates a new field in a pipeline"
    },
    {
      "name": "Delete Field",
      "value": "deleteField",
      "action": "Delete a field",
      "description": "Deletes a field"
    },
    {
      "name": "Get Field",
      "value": "getField",
      "action": "Get a field",
      "description": "Gets a specific field by its key"
    },
    {
      "name": "Get Field Value in a Box",
      "value": "getFieldValue",
      "action": "Get a field value in a box",
      "description": "Gets a specific field value for a box"
    },
    {
      "name": "List Field Values in a Box",
      "value": "listFieldValues",
      "action": "List field values in a box",
      "description": "Lists all field values for a box"
    },
    {
      "name": "List Fields in a Pipeline",
      "value": "listFields",
      "action": "List fields in a pipeline",
      "description": "Lists all fields in a pipeline"
    },
    {
      "name": "Update Field",
      "value": "updateField",
      "action": "Update a field",
      "description": "Updates an existing field"
    },
    {
      "name": "Update Field Value in a Box",
      "value": "updateFieldValue",
      "action": "Update a field value in a box",
      "description": "Updates a field value for a box"
    },
    {
      "name": "Get Contact",
      "value": "getContact",
      "action": "Get a contact",
      "description": "Gets a specific contact"
    },
    {
      "name": "Create Contact",
      "value": "createContact",
      "action": "Create a contact",
      "description": "Creates a new contact"
    },
    {
      "name": "Update Contact",
      "value": "updateContact",
      "action": "Update a contact",
      "description": "Updates an existing contact"
    },
    {
      "name": "Delete Contact",
      "value": "deleteContact",
      "action": "Delete a contact",
      "description": "Deletes a contact"
    },
    {
      "name": "Check Existing Organizations",
      "value": "checkExistingOrganizations",
      "action": "Check existing organizations",
      "description": "Checks for existing organizations by name or domain"
    },
    {
      "name": "Create Organization",
      "value": "createOrganization",
      "action": "Create an organization",
      "description": "Creates a new organization"
    },
    {
      "name": "Delete Organization",
      "value": "deleteOrganization",
      "action": "Delete an organization",
      "description": "Deletes an organization"
    },
    {
      "name": "Get Organization",
      "value": "getOrganization",
      "action": "Get an organization",
      "description": "Gets a specific organization"
    },
    {
      "name": "Update Organization",
      "value": "updateOrganization",
      "action": "Update an organization",
      "description": "Updates an existing organization"
    },
    {
      "name": "Create Task in a Box",
      "value": "createTask",
      "action": "Create a task in a box",
      "description": "Creates a new task for a box"
    },
    {
      "name": "Delete Task",
      "value": "deleteTask",
      "action": "Delete a task",
      "description": "Deletes a task"
    },
    {
      "name": "Get Task",
      "value": "getTask",
      "action": "Get a task",
      "description": "Gets a specific task"
    },
    {
      "name": "Get Tasks in a Box",
      "value": "getTasksInBox",
      "action": "Get tasks in a box",
      "description": "Gets all tasks associated with a box"
    },
    {
      "name": "Update Task",
      "value": "updateTask",
      "action": "Update a task",
      "description": "Updates an existing task"
    }
  ]

npm_readme:
  # n8n-nodes-streak-crm

  This is an n8n community node that lets you use [Streak CRM](https://streak.com) in your n8n workflows.

  Streak CRM is a powerful customer relationship management (CRM) tool integrated directly into Gmail that helps teams track leads, manage sales pipelines, and streamline customer communications.

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

  ```bash
  npm install n8n-nodes-streak-crm
  ```

  Or if you use n8n Desktop, you can go to **Settings > Community nodes > Install** and provide the package name `n8n-nodes-streak-crm`.

  ## Operations

  This node supports a comprehensive set of operations across various Streak CRM resources.

  ### Architecture Improvements

  The node now features a dedicated `StreakApiService` class that centralizes all API interactions, providing:

  - Consistent error handling across all operations
  - Strong TypeScript typing for better code reliability
  - Improved performance with optimized request handling
  - Better developer experience for future enhancements

  ### User Operations
  - **Get Current User** - Retrieve the details of the current authenticated user
  - **Get User** - Retrieve details of a specific user by key

  ### Team Operations
  - **Get My Teams** - Retrieve all teams the current user belongs to
  - **Get Team** - Retrieve details of a specific team by key

  ### Pipeline Operations
  - **List All Pipelines** - Get all available pipelines
  - **Get Pipeline** - Retrieve a specific pipeline by key
  - **Create Pipeline** - Create a new pipeline with customizable properties
  - **Update Pipeline** - Update properties of an existing pipeline
  - **Delete Pipeline** - Remove a pipeline
  - **Move Boxes Between Pipelines** - Move multiple boxes (deals) between pipelines in batch

  ### Box Operations
  - **List Boxes in Pipeline** - Get all boxes (deals) in a specific pipeline
  - **Get Box** - Retrieve a specific box by key
  - **Get Multiple Boxes** - Retrieve multiple boxes at once
  - **Create Box** - Create a new box in a pipeline
  - **Update Box** - Update properties of an existing box
  - **Delete Box** - Remove a box
  - **Get Box Timeline** - Retrieve the timeline of events for a box

  ### Stage Operations
  - **List Stages** - Get all stages in a pipeline
  - **Get Stage** - Retrieve a specific stage by key
  - **Create Stage** - Create a new stage in a pipeline
  - **Update Stage** - Update properties of an existing stage
  - **Delete Stage** - Remove a stage from a pipeline

  ### Field Operations
  - **List Fields** - Get all fields in a pipeline
  - **Get Field** - Retrieve a specific field by key
  - **Create Field** - Create a new field in a pipeline
  - **Update Field** - Update properties of an existing field
  - **Delete Field** - Remove a field from a pipeline
  - **List Field Values** - Get all field values for a box
  - **Get Field Value** - Retrieve a specific field value
  - **Update Field Value** - Update a field value for a box

  ### Contact Operations
  - **Get Contact** - Retrieve a specific contact by key
  - **Create Contact** - Create a new contact
  - **Update Contact** - Update properties of an existing contact
  - **Delete Contact** - Remove a contact

  ### Organization Operations
  - **Get Organization** - Retrieve a specific organization by key
  - **Create Organization** - Create a new organization
  - **Check Existing Organizations** - Search for existing organizations by name or domain
  - **Update Organization** - Update properties of an existing organization
  - **Delete Organization** - Remove an organization

  ### Task Operations
  - **Get Task** - Retrieve a specific task by key
  - **Get Tasks in Box** - Get all tasks associated with a box
  - **Create Task** - Create a new task for a box
  - **Update Task** - Update properties of an existing task
  - **Delete Task** - Remove a task

  ## Credentials

  To use this node, you need an API key from Streak CRM.

  ### How to get your API key:

  1. Log in to your Streak account at [streak.com](https://streak.com)
  2. Go to **Settings** > **API** 
  3. Copy your API key

  In n8n, create a new credential of type **Streak CRM API** and enter your API key.

  ## Compatibility

  This node was developed and tested with n8n version 1.0.0 and Streak API v1.

  ## Usage

  ### Example: Creating a new pipeline and adding a box (deal)

  This is a simple workflow to create a pipeline and then add a box to it:

  1. **Streak CRM node** with operation **Create Pipeline**
     - Set name: `New Sales Pipeline`
     - Optional: Add description, team key, and other properties

  2. **Streak CRM node** with operation **Create Box**
     - Use the pipeline key from the previous node
     - Set name: `Potential Client`
     - Optional: Add stage key and other properties

  ### Example: Managing contacts and linking them to boxes

  1. **Streak CRM node** with operation **Create Contact**
     - Set email: `client@example.com`
     - Add fields for name, organization, etc.

  2. **Streak CRM node** with operation **Update Box**
     - Use an existing box key
     - Link the contact by updating field values

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Streak API Documentation](https://streak.readme.io/reference/about-the-streak-api)
  * [Streak User Guide](https://streak.com/support/articles)

  ## Version History

  ### 1.0.3
  - Added a comprehensive StreakApiService class to centralize API interactions
  - Improved pipeline selection with dynamic dropdown loading
  - Fixed Box Keys field handling in Move Boxes operation
  - Enhanced error handling and API request consistency
  - Added TypeScript interfaces for better type safety

  ### 1.0.2
  - Initial release with comprehensive support for Users, Teams, Pipelines, Boxes, Stages, Fields, Contacts, Organizations, and Tasks
  - Support for pagination in list operations
  - Detailed error handling

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of Streak CRM workflows, allowing users to manage pipelines, boxes (deals), contacts, organizations, tasks, and other CRM resources directly within n8n.","capabilities":["Create, read, update, and delete pipelines","Create, read, update, and delete boxes (deals)","Create, read, update, and delete contacts","Create, read, update, and delete organizations","Create, read, update, and delete tasks","Manage stages and fields within pipelines","Move boxes between pipelines in batch","Retrieve box timelines","Search for existing organizations by name or domain","Retrieve current authenticated user details"],"authentication":"API key required","commonUseCases":["Automating lead tracking and sales pipeline management","Syncing CRM data between Streak and other tools via n8n","Automating contact creation and organization management","Batch moving deals between sales stages"],"limitations":["Requires a Streak API key from the user's account","Compatible with Streak API v1 only","Requires manual installation via npm package"],"relatedNodes":["Streak CRM API","Gmail","Generic HTTP Request"]}


node_type: n8n-nodes-checkmk.checkmk
package_name: n8n-nodes-checkmk
display_name: Checkmk
description: Complete Checkmk monitoring system integration with 100% API coverage
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: marcoandredg
author_github_url: https://github.com/LynxmindRepo/
npm_package_name: n8n-nodes-checkmk
npm_version: 1.1.1
community_fetched_at: 2026-03-25T21:19:40.664Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "host",
      "options": [
        {
          "name": "Activate Change",
          "value": "activateChanges"
        },
        {
          "name": "Agent",
          "value": "agent"
        },
        {
          "name": "Audit Log",
          "value": "auditLog"
        },
        {
          "name": "Aux Tag",
          "value": "auxTag"
        },
        {
          "name": "Background Job",
          "value": "backgroundJob"
        },
        {
          "name": "BI Aggregation",
          "value": "biAggregation"
        },
        {
          "name": "BI Pack",
          "value": "biPack"
        },
        {
          "name": "BI Rule",
          "value": "biRule"
        },
        {
          "name": "Broker Connection",
          "value": "brokerConnection"
        },
        {
          "name": "Certificate",
          "value": "certificate"
        },
        {
          "name": "Comment",
          "value": "comment"
        },
        {
          "name": "Configuration Entity",
          "value": "configurationEntity"
        },
        {
          "name": "Contact Group",
          "value": "contactGroup"
        },
        {
          "name": "DCD",
          "value": "dcd"
        },
        {
          "name": "Discovery",
          "value": "discovery"
        },
        {
          "name": "Downtime",
          "value": "downtime"
        },
        {
          "name": "Event Console",
          "value": "eventConsole"
        },
        {
          "name": "Folder",
          "value": "folder"
        },
        {
          "name": "Host",
          "value": "host"
        },
        {
          "name": "Host Group",
          "value": "hostGroup"
        },
        {
          "name": "Host Status",
          "value": "hostStatus"
        },
        {
          "name": "Host Tag Group",
          "value": "hostTagGroup"
        },
        {
          "name": "LDAP Connection",
          "value": "ldapConnection"
        },
        {
          "name": "License Usage",
          "value": "licenseUsage"
        },
        {
          "name": "Metric",
          "value": "metric"
        },
        {
          "name": "Notification Rule",
          "value": "notificationRule"
        },
        {
          "name": "OpenTelemetry",
          "value": "openTelemetry"
        },
        {
          "name": "Parent Scan",
          "value": "parentScan"
        },
        {
          "name": "Password",
          "value": "password"
        },
        {
          "name": "Problem",
          "value": "problem"
        },
        {
          "name": "Quick Setup",
          "value": "quickSetup"
        },
        {
          "name": "Rule",
          "value": "rule"
        },
        {
          "name": "Ruleset",
          "value": "ruleset"
        },
        {
          "name": "SAML Connection",
          "value": "samlConnection"
        },
        {
          "name": "Service",
          "value": "service"
        },
        {
          "name": "Service Group",
          "value": "serviceGroup"
        },
        {
          "name": "Service Status",
          "value": "serviceStatus"
        },
        {
          "name": "Site",
          "value": "site"
        },
        {
          "name": "SLA",
          "value": "sla"
        },
        {
          "name": "Time Period",
          "value": "timePeriod"
        },
        {
          "name": "User",
          "value": "user"
        },
        {
          "name": "User Role",
          "value": "userRole"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a host",
          "description": "Create a new host"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a host",
          "description": "Delete a host"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a host",
          "description": "Get a host"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many hosts",
          "description": "Get many hosts"
        },
        {
          "name": "Move",
          "value": "move",
          "action": "Move a host",
          "description": "Move host to different folder"
        },
        {
          "name": "Rename",
          "value": "rename",
          "action": "Rename a host",
          "description": "Rename a host"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a host",
          "description": "Update a host"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "host"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a host group",
          "description": "Create a host group"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a host group",
          "description": "Delete a host group"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a host group",
          "description": "Get a host group"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many host groups",
          "description": "Get many host groups"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a host group",
          "description": "Update a host group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "hostGroup"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a service group",
          "description": "Create a service group"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a service group",
          "description": "Delete a service group"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a service group",
          "description": "Get a service group"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many service groups",
          "description": "Get many service groups"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a service group",
          "description": "Update a service group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "serviceGroup"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a folder",
          "description": "Create a folder"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a folder",
          "description": "Delete a folder"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a folder",
          "description": "Get a folder"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many folders",
          "description": "Get many folders"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a folder",
          "description": "Update a folder"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "folder"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a user",
          "description": "Create a user"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a user",
          "description": "Delete a user"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user",
          "description": "Get a user"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many users",
          "description": "Get many users"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a user",
          "description": "Update a user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a contact group",
          "description": "Create a contact group"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a contact group",
          "description": "Delete a contact group"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a contact group",
          "description": "Get a contact group"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many contact groups",
          "description": "Get many contact groups"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a contact group",
          "description": "Update a contact group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contactGroup"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a time period",
          "description": "Create a time period"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a time period",
          "description": "Delete a time period"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a time period",
          "description": "Get a time period"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many time periods",
          "description": "Get many time periods"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a time period",
          "description": "Update a time period"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "timePeriod"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a rule",
          "description": "Get a rule"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many rules",
          "description": "Get many rules"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "rule"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "run",
      "options": [
        {
          "name": "Run",
          "value": "run",
          "action": "Run discovery",
          "description": "Run service discovery"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get discovery status",
          "description": "Get discovery status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "discovery"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "activate",
      "options": [
        {
          "name": "Activate",
          "value": "activate",
          "action": "Activate changes",
          "description": "Activate pending changes"
        },
        {
          "name": "Get Pending",
          "value": "getPending",
          "action": "Get pending changes",
          "description": "Get pending changes"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get activation status",
          "description": "Get activation status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "activateChanges"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a site",
          "description": "Get a site"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many sites",
          "description": "Get many sites"
        },
        {
          "name": "Login",
          "value": "login",
          "action": "Login to site",
          "description": "Login to a site"
        },
        {
          "name": "Logout",
          "value": "logout",
          "action": "Logout from site",
          "description": "Logout from a site"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a service",
          "description": "Get a service"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many services",
          "description": "Get many services"
        },
        {
          "name": "Acknowledge Problem",
          "value": "acknowledge",
          "action": "Acknowledge a service problem",
          "description": "Acknowledge a service problem"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "service"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a downtime",
          "description": "Create a downtime"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a downtime",
          "description": "Delete a downtime"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a downtime",
          "description": "Get a downtime"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many downtimes",
          "description": "Get many downtimes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "downtime"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many problems",
          "description": "Get many problems"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "problem"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getState",
      "options": [
        {
          "name": "Get State",
          "value": "getState",
          "action": "Get BI aggregation state",
          "description": "Get BI aggregation state"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "biAggregation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many BI packs",
          "description": "Get many BI packs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "biPack"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many BI rules",
          "description": "Get many BI rules"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "biRule"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a comment",
          "description": "Create a comment"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many comments",
          "description": "Get many comments"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a comment",
          "description": "Delete a comment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "comment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many event console entries",
          "description": "Get many event console entries"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "eventConsole"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many host statuses",
          "description": "Get many host statuses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "hostStatus"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many metrics",
          "description": "Get many metrics"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "metric"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many service statuses",
          "description": "Get many service statuses"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "serviceStatus"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "compute",
      "options": [
        {
          "name": "Compute",
          "value": "compute",
          "action": "Compute SLA data",
          "description": "Compute SLA data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sla"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many agents",
          "description": "Get many agents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many audit logs",
          "description": "Get many audit logs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "auditLog"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an aux tag",
          "description": "Create an aux tag"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many aux tags",
          "description": "Get many aux tags"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an aux tag",
          "description": "Update an aux tag"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an aux tag",
          "description": "Delete an aux tag"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "auxTag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a host tag group",
          "description": "Create a host tag group"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many host tag groups",
          "description": "Get many host tag groups"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a host tag group",
          "description": "Update a host tag group"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a host tag group",
          "description": "Delete a host tag group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "hostTagGroup"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an LDAP connection",
          "description": "Create an LDAP connection"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many LDAP connections",
          "description": "Get many LDAP connections"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an LDAP connection",
          "description": "Update an LDAP connection"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an LDAP connection",
          "description": "Delete an LDAP connection"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ldapConnection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many notification rules",
          "description": "Get many notification rules"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "notificationRule"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an open telemetry collector",
          "description": "Create an OpenTelemetry collector"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many open telemetry collectors",
          "description": "Get many OpenTelemetry collectors"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an open telemetry collector",
          "description": "Update an OpenTelemetry collector"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an open telemetry collector",
          "description": "Delete an OpenTelemetry collector"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "openTelemetry"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "run",
      "options": [
        {
          "name": "Run",
          "value": "run",
          "action": "Run parent scan",
          "description": "Run parent scan"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "parentScan"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many passwords",
          "description": "Get many passwords"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "password"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many rulesets",
          "description": "Get many rulesets"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ruleset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a SAML connection",
          "description": "Create a SAML connection"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many SAML connections",
          "description": "Get many SAML connections"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a SAML connection",
          "description": "Update a SAML connection"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a SAML connection",
          "description": "Delete a SAML connection"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "samlConnection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a user role",
          "description": "Create a user role"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many user roles",
          "description": "Get many user roles"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a user role",
          "description": "Update a user role"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a user role",
          "description": "Delete a user role"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "userRole"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many background jobs",
          "description": "Get many background jobs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "backgroundJob"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many broker connections",
          "description": "Get many broker connections"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "brokerConnection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many certificates",
          "description": "Get many certificates"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "certificate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many configuration entities",
          "description": "Get many configuration entities"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "configurationEntity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many DCD configurations",
          "description": "Get many DCD configurations"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dcd"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get license usage",
          "description": "Get license usage"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "licenseUsage"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many quick setup configurations",
          "description": "Get many quick setup configurations"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "quickSetup"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a host",
      "description": "Create a new host"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a host",
      "description": "Delete a host"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a host",
      "description": "Get a host"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many hosts",
      "description": "Get many hosts"
    },
    {
      "name": "Move",
      "value": "move",
      "action": "Move a host",
      "description": "Move host to different folder"
    },
    {
      "name": "Rename",
      "value": "rename",
      "action": "Rename a host",
      "description": "Rename a host"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a host",
      "description": "Update a host"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a host group",
      "description": "Create a host group"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a host group",
      "description": "Delete a host group"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a host group",
      "description": "Get a host group"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many host groups",
      "description": "Get many host groups"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a host group",
      "description": "Update a host group"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a service group",
      "description": "Create a service group"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a service group",
      "description": "Delete a service group"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a service group",
      "description": "Get a service group"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many service groups",
      "description": "Get many service groups"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a service group",
      "description": "Update a service group"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a folder",
      "description": "Create a folder"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a folder",
      "description": "Delete a folder"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a folder",
      "description": "Get a folder"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many folders",
      "description": "Get many folders"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a folder",
      "description": "Update a folder"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a user",
      "description": "Create a user"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a user",
      "description": "Delete a user"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a user",
      "description": "Get a user"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many users",
      "description": "Get many users"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a user",
      "description": "Update a user"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a contact group",
      "description": "Create a contact group"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a contact group",
      "description": "Delete a contact group"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a contact group",
      "description": "Get a contact group"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many contact groups",
      "description": "Get many contact groups"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a contact group",
      "description": "Update a contact group"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a time period",
      "description": "Create a time period"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a time period",
      "description": "Delete a time period"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a time period",
      "description": "Get a time period"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many time periods",
      "description": "Get many time periods"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a time period",
      "description": "Update a time period"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a rule",
      "description": "Get a rule"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many rules",
      "description": "Get many rules"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run discovery",
      "description": "Run service discovery"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get discovery status",
      "description": "Get discovery status"
    },
    {
      "name": "Activate",
      "value": "activate",
      "action": "Activate changes",
      "description": "Activate pending changes"
    },
    {
      "name": "Get Pending",
      "value": "getPending",
      "action": "Get pending changes",
      "description": "Get pending changes"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get activation status",
      "description": "Get activation status"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a site",
      "description": "Get a site"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many sites",
      "description": "Get many sites"
    },
    {
      "name": "Login",
      "value": "login",
      "action": "Login to site",
      "description": "Login to a site"
    },
    {
      "name": "Logout",
      "value": "logout",
      "action": "Logout from site",
      "description": "Logout from a site"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a service",
      "description": "Get a service"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many services",
      "description": "Get many services"
    },
    {
      "name": "Acknowledge Problem",
      "value": "acknowledge",
      "action": "Acknowledge a service problem",
      "description": "Acknowledge a service problem"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a downtime",
      "description": "Create a downtime"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a downtime",
      "description": "Delete a downtime"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a downtime",
      "description": "Get a downtime"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many downtimes",
      "description": "Get many downtimes"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many problems",
      "description": "Get many problems"
    },
    {
      "name": "Get State",
      "value": "getState",
      "action": "Get BI aggregation state",
      "description": "Get BI aggregation state"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many BI packs",
      "description": "Get many BI packs"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many BI rules",
      "description": "Get many BI rules"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a comment",
      "description": "Create a comment"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many comments",
      "description": "Get many comments"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a comment",
      "description": "Delete a comment"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many event console entries",
      "description": "Get many event console entries"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many host statuses",
      "description": "Get many host statuses"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many metrics",
      "description": "Get many metrics"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many service statuses",
      "description": "Get many service statuses"
    },
    {
      "name": "Compute",
      "value": "compute",
      "action": "Compute SLA data",
      "description": "Compute SLA data"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many agents",
      "description": "Get many agents"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many audit logs",
      "description": "Get many audit logs"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an aux tag",
      "description": "Create an aux tag"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many aux tags",
      "description": "Get many aux tags"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an aux tag",
      "description": "Update an aux tag"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an aux tag",
      "description": "Delete an aux tag"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a host tag group",
      "description": "Create a host tag group"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many host tag groups",
      "description": "Get many host tag groups"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a host tag group",
      "description": "Update a host tag group"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a host tag group",
      "description": "Delete a host tag group"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an LDAP connection",
      "description": "Create an LDAP connection"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many LDAP connections",
      "description": "Get many LDAP connections"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an LDAP connection",
      "description": "Update an LDAP connection"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an LDAP connection",
      "description": "Delete an LDAP connection"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many notification rules",
      "description": "Get many notification rules"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an open telemetry collector",
      "description": "Create an OpenTelemetry collector"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many open telemetry collectors",
      "description": "Get many OpenTelemetry collectors"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an open telemetry collector",
      "description": "Update an OpenTelemetry collector"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an open telemetry collector",
      "description": "Delete an OpenTelemetry collector"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run parent scan",
      "description": "Run parent scan"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many passwords",
      "description": "Get many passwords"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many rulesets",
      "description": "Get many rulesets"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a SAML connection",
      "description": "Create a SAML connection"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many SAML connections",
      "description": "Get many SAML connections"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a SAML connection",
      "description": "Update a SAML connection"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a SAML connection",
      "description": "Delete a SAML connection"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a user role",
      "description": "Create a user role"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many user roles",
      "description": "Get many user roles"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a user role",
      "description": "Update a user role"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a user role",
      "description": "Delete a user role"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many background jobs",
      "description": "Get many background jobs"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many broker connections",
      "description": "Get many broker connections"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many certificates",
      "description": "Get many certificates"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many configuration entities",
      "description": "Get many configuration entities"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many DCD configurations",
      "description": "Get many DCD configurations"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get license usage",
      "description": "Get license usage"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many quick setup configurations",
      "description": "Get many quick setup configurations"
    }
  ]

npm_readme:
  # n8n-nodes-checkmk

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

  Checkmk is an IT monitoring platform for hybrid infrastructure, providing observability for servers, networks, cloud services, and applications from a single dashboard.

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

  ## Documentation

  For complete documentation including installation, operations, credentials, usage examples, and troubleshooting, see [DOCUMENTATION.md](DOCUMENTATION.md).

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with the Checkmk IT monitoring platform, allowing workflow automation with 100% API coverage for servers, networks, cloud services, and applications.","capabilities":["Checkmk API integration","Workflow automation for monitoring systems","Full API coverage support","Hybrid infrastructure observability"],"authentication":"See DOCUMENTATION.md for credentials setup","commonUseCases":["Automated monitoring alerts","Server status checks","Network monitoring automation","Cloud service observability"],"limitations":["Community node (not official n8n node)","Full documentation in separate DOCUMENTATION.md file"],"relatedNodes":["Checkmk API node","Monitoring nodes","Alerting nodes"]}


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

updated_at: 2026-03-25 21:19:40
author_name: tszturmaj-nalpeiron
author_github_url: https://github.com/Nalpeiron/integrations-n8n.git
npm_package_name: @nalpeiron/n8n-nodes-nalpeiron
npm_version: 1.0.5
community_fetched_at: 2026-03-25T21:19:40.665Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Attribute",
          "value": "attribute",
          "description": "Manage global attributes"
        },
        {
          "name": "Customer",
          "value": "customer",
          "description": "Manage customer general operations"
        },
        {
          "name": "Entitlement",
          "value": "entitlement",
          "description": "Manage entitlement general operations"
        },
        {
          "name": "Feature",
          "value": "feature",
          "description": "Manage global features"
        },
        {
          "name": "Offering",
          "value": "offering",
          "description": "Manage offerings"
        },
        {
          "name": "Plan",
          "value": "plan",
          "description": "Manage plans"
        },
        {
          "name": "Product",
          "value": "product",
          "description": "Manage product general operations"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get Global Attribute",
          "value": "get",
          "action": "Get global attribute",
          "description": "This method returns selected global attribute"
        },
        {
          "name": "Get Global Attributes List",
          "value": "list",
          "action": "Get global attributes list",
          "description": "This method returns list of all attributes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "attribute"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get a Customer Contact List",
          "value": "listContacts",
          "action": "Get a customer contact list",
          "description": "This method returns a list of customer contacts"
        },
        {
          "name": "Get Contact Credentials",
          "value": "listContactsCredentials",
          "action": "Get contact credentials",
          "description": "Return the credentials for a contact. If contact does not have credentials, Authentication field will be null."
        },
        {
          "name": "Get Customer",
          "value": "get",
          "action": "Get customer",
          "description": "This method returns the selected customer"
        },
        {
          "name": "Get Customer Contact",
          "value": "getContacts",
          "action": "Get customer contact",
          "description": "This method returns selected customer contact details"
        },
        {
          "name": "Get Customer End User Portal URL",
          "value": "listEup",
          "action": "Get customer end user portal url",
          "description": "This method returns customer End User Portal URL"
        },
        {
          "name": "Get Customer List",
          "value": "list",
          "action": "Get customer list",
          "description": "This method returns list of customers"
        },
        {
          "name": "Get Customer Note",
          "value": "getNotes",
          "action": "Get customer note",
          "description": "This method returns customer note"
        },
        {
          "name": "Get Customer Note List",
          "value": "listNotes",
          "action": "Get customer note list",
          "description": "This method returns list of customer notes"
        },
        {
          "name": "Get Customer Zentitle Statistic",
          "value": "listStats",
          "action": "Get customer zentitle statistic",
          "description": "Return zentitle statistic for a given customer"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "customer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get Activation State",
          "value": "getActivations",
          "action": "Get activation state",
          "description": "This method returns activation details including information about attributes and available features"
        },
        {
          "name": "Get an Entitlement Group",
          "value": "getGroups",
          "action": "Get an entitlement group",
          "description": "This method returns entitlement group details. The amount of data returned can be adjusted by using query expand parameter configuration."
        },
        {
          "name": "Get Entitlement",
          "value": "get",
          "action": "Get entitlement",
          "description": "This method returns entitlement details"
        },
        {
          "name": "Get Entitlement Group Authorized Contacts",
          "value": "listGroupsAuthorizedContacts",
          "action": "Get entitlement group authorized contacts",
          "description": "This method returns list of contacts (with ABL credentials) authorized for the entitlement group"
        },
        {
          "name": "Get Entitlement Group List",
          "value": "listGroups",
          "action": "Get entitlement group list",
          "description": "This method returns entitlement group list. Amount of data returned can be adjusted by using query expand parameter configuration."
        },
        {
          "name": "Get Entitlement List",
          "value": "list",
          "action": "Get entitlement list",
          "description": "This method returns list of entitlements that can be filtered by following query parameters"
        },
        {
          "name": "Get Entitlement Note",
          "value": "getNotes",
          "action": "Get entitlement note",
          "description": "This method returns entitlement note"
        },
        {
          "name": "Get Entitlement Note List",
          "value": "listNotes",
          "action": "Get entitlement note list",
          "description": "This method returns list of entitlement notes"
        },
        {
          "name": "List of Entitlement Activations",
          "value": "listActivations",
          "action": "List of entitlement activations",
          "description": "This method returns list of entitlement activation that can be filtered by following query parameters"
        },
        {
          "name": "Log of Activations Activity",
          "value": "listActivationsLog",
          "action": "Log of activations activity",
          "description": "This method returns log of activations activity on the entitlement"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "entitlement"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get Global Feature",
          "value": "get",
          "action": "Get global feature",
          "description": "This method returns selected global feature"
        },
        {
          "name": "Get Global Features List",
          "value": "list",
          "action": "Get global features list",
          "description": "This method returns list of all global features"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "feature"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get Offering",
          "value": "get",
          "action": "Get offering",
          "description": "This method returns offering details"
        },
        {
          "name": "Get Offering List",
          "value": "list",
          "action": "Get offering list",
          "description": "This method returns list of offering that can be filtered by the following query parameters"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "offering"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get Plan",
          "value": "get",
          "action": "Get plan",
          "description": "This method returns plan details"
        },
        {
          "name": "Get Plan List",
          "value": "list",
          "action": "Get plan list",
          "description": "This method returns list of plans that can be filtered by following query parameters"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "plan"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get a Product List",
          "value": "list",
          "action": "Get a product list",
          "description": "This method returns a list of products that can be filtered by following query parameters"
        },
        {
          "name": "Get Edition",
          "value": "getEditions",
          "action": "Get edition",
          "description": "This method returns product edition details"
        },
        {
          "name": "Get Edition Attribute",
          "value": "getEditionsAttributes",
          "action": "Get edition attribute",
          "description": "This method returns selected attribute with value defined in edition level (in case of override). If no value is defined in edition level, value defined in higher level is returned."
        },
        {
          "name": "Get Edition Attributes List",
          "value": "listEditionsAttributes",
          "action": "Get edition attributes list",
          "description": "This method returns list of all attributes for selected edition"
        },
        {
          "name": "Get Edition Feature",
          "value": "getEditionsFeatures",
          "action": "Get edition feature",
          "description": "This method returns selected feature with value defined in edition level (in case of override). If no value is defined in edition level, value defined in higher level is returned."
        },
        {
          "name": "Get Edition Feature List",
          "value": "listEditionsFeatures",
          "action": "Get edition feature list",
          "description": "This method returns list of all features for selected edition"
        },
        {
          "name": "Get Edition List",
          "value": "listEditions",
          "action": "Get edition list",
          "description": "This method returns list of editions that can be filtered by following query parameters"
        },
        {
          "name": "Get Product",
          "value": "get",
          "action": "Get product",
          "description": "This method returns product details"
        },
        {
          "name": "Get Product Attribute",
          "value": "getAttributes",
          "action": "Get product attribute",
          "description": "This method returns selected attribute. In case of global attribute, if overridden value exists on product level, it will be returned, otherwise global value will be returned."
        },
        {
          "name": "Get Product Attributes List",
          "value": "listAttributes",
          "action": "Get product attributes list",
          "description": "This method returns list of all attributes for selected product"
        },
        {
          "name": "Get Product Feature",
          "value": "getFeatures",
          "action": "Get product feature",
          "description": "This method returns selected feature. In case of global feature, if overridden value exists on product level, it will be returned, otherwise global value will be returned."
        },
        {
          "name": "Get Product Features List",
          "value": "listFeatures",
          "action": "Get product features list",
          "description": "This method returns list of all features for selected product"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "product"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Global Attribute",
      "value": "get",
      "action": "Get global attribute",
      "description": "This method returns selected global attribute"
    },
    {
      "name": "Get Global Attributes List",
      "value": "list",
      "action": "Get global attributes list",
      "description": "This method returns list of all attributes"
    },
    {
      "name": "Get a Customer Contact List",
      "value": "listContacts",
      "action": "Get a customer contact list",
      "description": "This method returns a list of customer contacts"
    },
    {
      "name": "Get Contact Credentials",
      "value": "listContactsCredentials",
      "action": "Get contact credentials",
      "description": "Return the credentials for a contact. If contact does not have credentials, Authentication field will be null."
    },
    {
      "name": "Get Customer",
      "value": "get",
      "action": "Get customer",
      "description": "This method returns the selected customer"
    },
    {
      "name": "Get Customer Contact",
      "value": "getContacts",
      "action": "Get customer contact",
      "description": "This method returns selected customer contact details"
    },
    {
      "name": "Get Customer End User Portal URL",
      "value": "listEup",
      "action": "Get customer end user portal url",
      "description": "This method returns customer End User Portal URL"
    },
    {
      "name": "Get Customer List",
      "value": "list",
      "action": "Get customer list",
      "description": "This method returns list of customers"
    },
    {
      "name": "Get Customer Note",
      "value": "getNotes",
      "action": "Get customer note",
      "description": "This method returns customer note"
    },
    {
      "name": "Get Customer Note List",
      "value": "listNotes",
      "action": "Get customer note list",
      "description": "This method returns list of customer notes"
    },
    {
      "name": "Get Customer Zentitle Statistic",
      "value": "listStats",
      "action": "Get customer zentitle statistic",
      "description": "Return zentitle statistic for a given customer"
    },
    {
      "name": "Get Activation State",
      "value": "getActivations",
      "action": "Get activation state",
      "description": "This method returns activation details including information about attributes and available features"
    },
    {
      "name": "Get an Entitlement Group",
      "value": "getGroups",
      "action": "Get an entitlement group",
      "description": "This method returns entitlement group details. The amount of data returned can be adjusted by using query expand parameter configuration."
    },
    {
      "name": "Get Entitlement",
      "value": "get",
      "action": "Get entitlement",
      "description": "This method returns entitlement details"
    },
    {
      "name": "Get Entitlement Group Authorized Contacts",
      "value": "listGroupsAuthorizedContacts",
      "action": "Get entitlement group authorized contacts",
      "description": "This method returns list of contacts (with ABL credentials) authorized for the entitlement group"
    },
    {
      "name": "Get Entitlement Group List",
      "value": "listGroups",
      "action": "Get entitlement group list",
      "description": "This method returns entitlement group list. Amount of data returned can be adjusted by using query expand parameter configuration."
    },
    {
      "name": "Get Entitlement List",
      "value": "list",
      "action": "Get entitlement list",
      "description": "This method returns list of entitlements that can be filtered by following query parameters"
    },
    {
      "name": "Get Entitlement Note",
      "value": "getNotes",
      "action": "Get entitlement note",
      "description": "This method returns entitlement note"
    },
    {
      "name": "Get Entitlement Note List",
      "value": "listNotes",
      "action": "Get entitlement note list",
      "description": "This method returns list of entitlement notes"
    },
    {
      "name": "List of Entitlement Activations",
      "value": "listActivations",
      "action": "List of entitlement activations",
      "description": "This method returns list of entitlement activation that can be filtered by following query parameters"
    },
    {
      "name": "Log of Activations Activity",
      "value": "listActivationsLog",
      "action": "Log of activations activity",
      "description": "This method returns log of activations activity on the entitlement"
    },
    {
      "name": "Get Global Feature",
      "value": "get",
      "action": "Get global feature",
      "description": "This method returns selected global feature"
    },
    {
      "name": "Get Global Features List",
      "value": "list",
      "action": "Get global features list",
      "description": "This method returns list of all global features"
    },
    {
      "name": "Get Offering",
      "value": "get",
      "action": "Get offering",
      "description": "This method returns offering details"
    },
    {
      "name": "Get Offering List",
      "value": "list",
      "action": "Get offering list",
      "description": "This method returns list of offering that can be filtered by the following query parameters"
    },
    {
      "name": "Get Plan",
      "value": "get",
      "action": "Get plan",
      "description": "This method returns plan details"
    },
    {
      "name": "Get Plan List",
      "value": "list",
      "action": "Get plan list",
      "description": "This method returns list of plans that can be filtered by following query parameters"
    },
    {
      "name": "Get a Product List",
      "value": "list",
      "action": "Get a product list",
      "description": "This method returns a list of products that can be filtered by following query parameters"
    },
    {
      "name": "Get Edition",
      "value": "getEditions",
      "action": "Get edition",
      "description": "This method returns product edition details"
    },
    {
      "name": "Get Edition Attribute",
      "value": "getEditionsAttributes",
      "action": "Get edition attribute",
      "description": "This method returns selected attribute with value defined in edition level (in case of override). If no value is defined in edition level, value defined in higher level is returned."
    },
    {
      "name": "Get Edition Attributes List",
      "value": "listEditionsAttributes",
      "action": "Get edition attributes list",
      "description": "This method returns list of all attributes for selected edition"
    },
    {
      "name": "Get Edition Feature",
      "value": "getEditionsFeatures",
      "action": "Get edition feature",
      "description": "This method returns selected feature with value defined in edition level (in case of override). If no value is defined in edition level, value defined in higher level is returned."
    },
    {
      "name": "Get Edition Feature List",
      "value": "listEditionsFeatures",
      "action": "Get edition feature list",
      "description": "This method returns list of all features for selected edition"
    },
    {
      "name": "Get Edition List",
      "value": "listEditions",
      "action": "Get edition list",
      "description": "This method returns list of editions that can be filtered by following query parameters"
    },
    {
      "name": "Get Product",
      "value": "get",
      "action": "Get product",
      "description": "This method returns product details"
    },
    {
      "name": "Get Product Attribute",
      "value": "getAttributes",
      "action": "Get product attribute",
      "description": "This method returns selected attribute. In case of global attribute, if overridden value exists on product level, it will be returned, otherwise global value will be returned."
    },
    {
      "name": "Get Product Attributes List",
      "value": "listAttributes",
      "action": "Get product attributes list",
      "description": "This method returns list of all attributes for selected product"
    },
    {
      "name": "Get Product Feature",
      "value": "getFeatures",
      "action": "Get product feature",
      "description": "This method returns selected feature. In case of global feature, if overridden value exists on product level, it will be returned, otherwise global value will be returned."
    },
    {
      "name": "Get Product Features List",
      "value": "listFeatures",
      "action": "Get product features list",
      "description": "This method returns list of all features for selected product"
    }
  ]

npm_readme:
  # @nalpeiron/n8n-nodes-nalpeiron

  Automate your license management and customer success workflows with the [Nalpeiron Growth Platform](https://nalpeiron.com). This n8n community node lets you integrate both Zentitle2 (license operations) and Zengain (customer lifecycle management) components with real-time notifications into your automation workflows.

  ![Version](https://img.shields.io/npm/v/@nalpeiron/n8n-nodes-nalpeiron)
  ![Downloads](https://img.shields.io/npm/dm/@nalpeiron/n8n-nodes-nalpeiron)
  ![License](https://img.shields.io/npm/l/@nalpeiron/n8n-nodes-nalpeiron)

  ## What You Can Do

  ### 📊 License Data & Reporting

  - Retrieve license details and status information
  - List and filter licenses by various criteria
  - Track license usage and seat assignments
  - Monitor license expiration dates

  ### 👥 Customer Information

  - Get customer records and contact details
  - List customers with filtering options
  - Access customer-specific license information
  - Handle multi-tenant customer scenarios

  ### 📦 Product & Feature Insights

  - Retrieve product configurations and details
  - List available features and capabilities
  - Access product offerings and packages
  - Query custom attributes and configurations

  ### 🔔 Real-Time Notifications

  Listen for webhook events from both Growth Platform components:

  **Zentitle2 Component Events**:

  - License creation, activation, and expiration
  - Customer lifecycle events
  - Seat management notifications
  - Renewal and maintenance alerts

  **Zengain Component Events**:

  - Customer lifecycle changes (creation and updates) for revenue optimization and proactive customer success

  ## Use Cases

  Perfect for automating:

  **License Management (Zentitle2 Component):**

  - **License Monitoring**: Track license status and expiration dates across your organization
  - **Renewal Alerts**: Set up notifications for upcoming license expirations
  - **Usage Reporting**: Generate reports on license utilization and seat assignments
  - **Compliance Tracking**: Monitor license compliance and usage patterns

  **Customer Success & Revenue Growth (Zengain Component):**

  - **Revenue Optimization**: Identify upsell opportunities and at-risk accounts
  - **Proactive Customer Success**: Automate engagement based on customer lifecycle insights
  - **Sales Intelligence**: Sync customer behavior data to CRM systems for prioritized outreach
  - **Churn Prevention**: Set up automated workflows to address customer health signals

  **Integrated Growth Platform Workflows:**

  - **Data Synchronization**: Keep external systems updated with both license and customer success information from the Growth Platform
  - **Unified Customer View**: Combine Zentitle2 licensing data with Zengain customer success insights for complete customer intelligence

  ## Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes** in n8n
  2. Select **Install**
  3. Enter `@nalpeiron/n8n-nodes-nalpeiron` as the package name
  4. Click **Install**

  ### npm

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

  ## Setup Guide

  ### Step 1: Installation

  Install via Community Nodes (recommended) or npm as shown above.

  ### Step 2: Create API Credentials

  1. Log into your Nalpeiron Growth Platform account
  2. Go to the API credentials section
  3. Create new OAuth2 credentials
  4. Note down your Client ID, Client Secret, and OAuth URL

  ### Step 3: Configure Credentials in n8n

  1. In n8n, go to **Settings** > **Credentials**
  2. Click **Add Credential** and select **Nalpeiron account**
  3. Configure the following fields:
     - **Base URL**: Your Nalpeiron API endpoint (e.g., https://api.nalpeiron.com)
     - **Tenant ID**: Your Nalpeiron tenant identifier
     - **Client ID**: Your OAuth2 Client ID from Nalpeiron admin panel
     - **Client Secret**: Your OAuth2 Client Secret from Nalpeiron admin panel
     - **Access Token URL**: The OAuth2 Token endpoint URL (e.g., https://auth.nalpeiron.com/protocol/openid-connect/token)

  ### Step 4: Test Your Credentials

  The credentials include a built-in test function:

  1. Fill in your credential fields in the n8n UI
  2. Click the **"Test"** button
  3. Get immediate validation of your OAuth2 configuration

  **What Gets Tested:**

  - OAuth2 Token Request validation
  - Access Token format verification
  - Tenant-specific API access
  - Error diagnosis with specific guidance for common issues

  ## Getting Started

  After installation, you'll find four new nodes in your n8n palette:

  **Zentitle2 Nodes** (License Management Component):

  - **📊 Nalpeiron Zentitle2** - Retrieve license data (get licenses, customers, products, usage information)
  - **🔔 Nalpeiron Zentitle2 Trigger** - Listen for real-time events (license expiration, customer updates, renewals)

  **Zengain Nodes** (Customer Success Component):

  - **📊 Nalpeiron Zengain** - Access customer lifecycle data and account insights for revenue optimization
  - **🔔 Nalpeiron Zengain Trigger** - Listen for customer success events to drive proactive engagement

  **Note:** All Nalpeiron nodes are also available as AI tools for enhanced automation and intelligent workflows.

  ### Example Workflows

  **License Renewal Alert (Zentitle2 Component):**

  ```
  Nalpeiron Zentitle2 Trigger (license expires in 7 days) → Get Customer Details → Send Renewal Notice
  ```

  **Customer Success Automation (Zengain Component):**

  ```
  Nalpeiron Zengain Trigger (customer created) → Get Customer Insights → Update CRM with Revenue Opportunities
  ```

  ## Resources

  The node provides access to these Nalpeiron Growth Platform resources

  ## Webhook Events

  The trigger node supports webhook events for real-time automation

  ## Webhook Setup

  ### Basic Setup

  1. Add either the **Nalpeiron Zentitle2 Trigger** or **Nalpeiron Zengain Trigger** node to your workflow
  2. Select the events you want to listen for (supports multiple selection)
  3. Webhooks are automatically registered
  4. The webhook URL is automatically configured

  ### Authentication

  **Note:** RSA signature verification has been removed from this community package to ensure compatibility with n8n Cloud verification requirements. All webhook requests are accepted without signature verification.

  For production deployments requiring webhook authentication, consider implementing verification in your external systems or using n8n self-hosted with custom authentication logic.

  ### Auto-Setup Feature

  The trigger node automatically manage webhooks:

  - **Auto-Create**: Creates webhooks when the trigger activates
  - **Auto-Update**: Updates webhook subscriptions when events change
  - **Auto-Delete**: Removes webhooks when the trigger is deactivated

  ### Webhook Payload Structure

  All webhooks follow this structure:

  ```json
  {
  	"eventId": "event_NsqUHwSXC0S4f4vuNkegSg",
  	"eventDate": "2025-06-06T11:39:22.739326Z",
  	"eventCode": "customer.created",
  	"resourceId": "cust_ILLqMyx3UUy_n5cZqui7NQ",
  	"callAttempt": 1,
  	"payload": {
  		// Event-specific data
  	}
  }
  ```

  ### Accessing Webhook Data in n8n

  | Data          | Access Path                   | Example                  |
  | ------------- | ----------------------------- | ------------------------ |
  | Event Type    | `{{ $json.data.eventCode }}`  | `"customer.created"`     |
  | Resource ID   | `{{ $json.data.resourceId }}` | `"cust_abc123"`          |
  | Event Payload | `{{ $json.data.payload }}`    | Event-specific data      |
  | Event Date    | `{{ $json.data.eventDate }}`  | `"2025-06-06T11:39:22Z"` |

  ## Troubleshooting

  ### Webhook Not Triggering

  1. Check webhook URL is correctly registered in Nalpeiron Growth Platform
  2. Verify selected events match the events being sent
  3. Review n8n execution logs for errors
  4. Test webhook manually using the "Test URL" feature

  ### API Calls Failing

  1. Verify OAuth2 credentials are correct and have proper permissions
  2. Check the base URL points to the correct environment

  ## License

  MIT

  ## Support

  For Nalpeiron Growth Platform API questions, please contact [Nalpeiron Support](https://nalpeiron.com/support).

  ## Links

  - [n8n](https://n8n.io)
  - [Nalpeiron Growth Platform](https://nalpeiron.com)
  - [API Documentation](https://api.nalpeiron.io/docs)

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with the Nalpeiron Growth Platform to automate license management (Zentitle2) and customer lifecycle management (Zengain) workflows.","capabilities":["Retrieve license details and status information","List and filter licenses by criteria","Track license usage and seat assignments","Monitor license expiration dates","Get customer records and contact details","Access customer-specific license information","Retrieve product configurations and details","Query available features and capabilities","Listen for real-time license events (creation, activation, expiration, renewal)","Listen for real-time customer lifecycle events"],"authentication":"OAuth2 (Client ID, Client Secret, Base URL, Tenant ID, Access Token URL)","commonUseCases":["Automated license renewal alerts and expiration tracking","License compliance monitoring and usage reporting","Revenue optimization through customer lifecycle insights","Proactive customer success automation","CRM synchronization with customer and license data"],"limitations":["Read-only access to data (no modification capabilities mentioned)","Requires manual OAuth2 credential setup in n8n","Webhook event selection may require manual configuration"],"relatedNodes":["Nalpeiron Zentitle2 Trigger","Nalpeiron Zengain Trigger","Nalpeiron Zengain","Nalpeiron Zentitle2"]}


node_type: n8n-nodes-google-search-console.googleSearchConsole
package_name: n8n-nodes-google-search-console
display_name: Google Search Console
description: Connect to Google Search Console API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: mrazari
author_github_url: https://github.com/mrazari/
npm_package_name: n8n-nodes-google-search-console
npm_version: 1.0.40
community_fetched_at: 2026-03-25T21:19:40.666Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "site",
      "options": [
        {
          "name": "Site",
          "value": "site"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getSites",
      "options": [
        {
          "name": "Get Sites",
          "value": "getSites",
          "action": "List verified sites"
        },
        {
          "name": "Get Page Insights",
          "value": "getPageInsights",
          "action": "Query search analytics"
        },
        {
          "name": "Inspect URL",
          "value": "inspectUrl",
          "action": "Url inspection index status"
        },
        {
          "name": "Compare Page Insights",
          "value": "comparePageInsights",
          "action": "Compare search analytics between two date ranges"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "site"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Sites",
      "value": "getSites",
      "action": "List verified sites"
    },
    {
      "name": "Get Page Insights",
      "value": "getPageInsights",
      "action": "Query search analytics"
    },
    {
      "name": "Inspect URL",
      "value": "inspectUrl",
      "action": "Url inspection index status"
    },
    {
      "name": "Compare Page Insights",
      "value": "comparePageInsights",
      "action": "Compare search analytics between two date ranges"
    }
  ]

npm_readme:
  # Google Search Console - n8n Custom Node

  This custom node for n8n allows you to connect to the official Google Search Console API and retrieve information about registered sites and their page performance.

  ## Features

  🔹 Fetch a list of sites registered under your Google Search Console account

  🔹 Retrieve performance insights for specific pages within a defined date range (clicks, impressions, CTR, and position)

  ## Operations

  ### 1. Get Sites

  Retrieves the list of sites registered in your Google Search Console account.

  ### 2. Get Page Insights

  Analyzes page performance based on the following parameters:

  * **Site URL**: Exact URL or domain property
  * **Start/End Date**: Define the time period
  * **Search Type**: Web / Image / Video / News
  * **Row Limit**: Number of rows to return
  * **Dimensions**: Choose from Page, Query, Country, or Device

  ## Requirements

  You must configure the following credentials to use this node:

  * **GoogleSearchConsoleOAuth2Api**

  Make sure to set up the credential using OAuth2 with the appropriate scopes for Google Search Console access.

  ## Notes

  * The `Site URL` must match the format of the property in your GSC account:

    * For domain property: `sc-domain:example.com`
    * For URL-prefix property: `https://www.example.com/`

  * An incorrect format or unregistered site will result in an "Invalid URL" error.

  ## Node Icon

  This node uses a simplified version of the official Google Search Console icon.

  ## Author

  Developed by [mrazari](https://mrazari.com), member of the [n8nir.ir](https://n8nir.ir) community — specializing in custom n8n nodes with TypeScript and official API integrations.

  ---

  Feel free to reach out for improvements, suggestions, or new feature requests.

ai_documentation_summary:
  {"purpose":"Connects to the Google Search Console API to retrieve registered sites and analyze page performance metrics within a specified date range.","capabilities":["Fetch list of sites registered under a Google Search Console account","Retrieve page performance insights including clicks, impressions, CTR, and position","Filter performance data by site URL, date range, search type (Web/Image/Video/News), and dimensions (Page/Query/Country/Device)","Limit returned results using row limit parameter"],"authentication":"OAuth2 (GoogleSearchConsoleOAuth2Api credential required)","commonUseCases":["Monitor website search performance over time","Analyze user engagement metrics for specific pages","Track keyword rankings and click-through rates","Compare performance across different devices or countries"],"limitations":["Site URL must match the exact format of the property in the GSC account (e.g., 'sc-domain:example.com' or 'https://www.example.com/')","Incorrect URL format or unregistered sites will result in 'Invalid URL' errors","Relies on official Google Search Console API availability and rate limits"],"relatedNodes":["Google Search Console","Google Sheets","HTTP Request"]}


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

updated_at: 2026-03-25 21:19:40
author_name: dariusz-softr
author_github_url: https://github.com/softr-io/n8n-softr.git
npm_package_name: n8n-nodes-softr
npm_version: 1.0.8
community_fetched_at: 2026-03-25T21:19:40.666Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-softr

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

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

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

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

  ## Installation

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

  ## Operations

  ### Softr Databases

  Triggers

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

  Actions:

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

  ### Softr Application Users

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

  ## Credentials

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

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

  ## Compatibility

  Implemented and tested against n8n version 1.103.2.

  ## Usage

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

  ## Resources

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

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


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

updated_at: 2026-03-25 21:19:40
author_name: thiagohirano
author_github_url: https://github.com/thiagohirano/
npm_package_name: n8n-nodes-graphorlm
npm_version: 0.1.12
community_fetched_at: 2026-03-25T21:19:40.667Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-graphorlm

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

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

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

  ## Installation

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

  ### npm

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

  ### n8n Desktop/Cloud

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

  ## Nodes

  This package includes two nodes:

  1. **Graphor** - Full-featured node with all operations
  2. **Graphor Tool** - Simplified node optimized for AI Agents

  Both nodes can be used as tools with n8n AI Agents (like the AI Agent node with OpenAI, Anthropic, etc.)

  ## Operations

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

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

  ### Flow
  - **List**: List all flows in your project
  - **Run**: Execute a deployed RAG flow with a query
  - **Deploy**: Deploy a flow to make it accessible via API

  ### Source
  - **List**: List all sources in your project
  - **Upload File**: Upload a file (PDF, DOCX, images, audio, video)
  - **Upload From URL**: Ingest content from a web page URL
  - **Upload From GitHub**: Ingest content from a public GitHub repository
  - **Upload From YouTube**: Ingest content from a YouTube video
  - **Process**: Process a source with OCR/parsing (Basic, Hi-Res, Hi-Res FT, MAI, GraphorLM)
  - **Get Elements**: Get structured elements from a processed source
  - **Delete**: Delete a source from your project

  ## Credentials

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

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

  ## Supported File Types

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

  ## Processing Methods

  | Method | Description |
  |--------|-------------|
  | **Basic** | Fast processing with heuristic classification |
  | **Hi-Res** | High resolution processing with advanced layout detection |
  | **Hi-Res FT** | Fine-tuned high resolution processing |
  | **MAI** | Multi-modal AI processing |
  | **GraphorLM** | Graphor proprietary processing method |

  ## Compatibility

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

  ## Resources

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

  ## License

  [MIT](LICENSE)

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


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

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

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

npm_readme:
  # n8n-nodes-wiza

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

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

  ## Features

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

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

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

  ## Installation

  ### Community Nodes (Recommended)

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

  ### Manual Installation

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

  ### Docker

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

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

  ## Setup

  ### 1. Get Your API Key

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

  ### 2. Configure Credentials

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

  ## Usage

  ### Basic Email Finding

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

  ### Phone Number Lookup

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

  ### LinkedIn Profile Enhancement

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

  ## Input Types

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

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

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

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

  ## Response Data

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

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

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

  ## Configuration Options

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

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

  ## Error Handling

  The node handles various error scenarios:

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

  ## Workflow Examples

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

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

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

  ## Support

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

  ## License

  [MIT](LICENSE.md)

  ## Contributing

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

  ---

  Made with ❤️ by the Wiza team

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the Wiza API to enrich contact data by finding verified email addresses, phone numbers, and LinkedIn profiles for prospects.","capabilities":["Find verified work and personal email addresses from LinkedIn URLs, contact details, or other emails","Discover mobile and direct dial phone numbers using email addresses, LinkedIn URLs, or contact details","Locate and extract LinkedIn profile details including name, title, location, and company domain","Support multiple input types: Email, LinkedIn URL, Contact Details (Name + Company), or All Fields","Configure timeout settings (30-600 seconds) for enrichment operations","Filter email types: Work, Personal, or Any"],"authentication":"API key required via n8n Credentials","commonUseCases":["Lead enrichment pipelines for sales teams","Personalizing LinkedIn outreach messages","Validating and cleaning contact databases","Finding missing contact information for cold outreach"],"limitations":["Results depend on the quality and availability of provided input data","May encounter rate limiting which triggers automatic retries","Enrichment can take up to 5 minutes (timeout setting) to complete","No results may occur if input data is insufficient or unavailable in Wiza's database"],"relatedNodes":["Webhook","CRM Update","CSV Import","Email Validation","LinkedIn Automation"]}


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

updated_at: 2026-03-25 21:19:40
author_name: skrapion
author_github_url: https://github.com/Skrapion/
npm_package_name: n8n-nodes-unifi-access
npm_version: 1.0.7
community_fetched_at: 2026-03-25T21:19:40.668Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "user",
      "options": [
        {
          "name": "Access Policy",
          "value": "accessPolicy"
        },
        {
          "name": "Credential",
          "value": "credential"
        },
        {
          "name": "Device",
          "value": "device"
        },
        {
          "name": "Notification",
          "value": "notification"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Assign Access Policy",
          "value": "assignAccessPolicy",
          "action": "Assign access policies to a user",
          "description": "Assign access policies to a user"
        },
        {
          "name": "Assign NFC Card",
          "value": "assignNfc",
          "action": "Assign an NFC card to a user",
          "description": "Assign an NFC card to a user"
        },
        {
          "name": "Clear PIN",
          "value": "clearPin",
          "action": "Clear a user's PIN",
          "description": "Clear a user's PIN"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new user",
          "description": "Create a new user"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a user",
          "description": "Delete a user"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a user",
          "description": "Get the data of a single user"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get users",
          "description": "Get users"
        },
        {
          "name": "Send UniFi Identity Invitations",
          "value": "sendInvitations",
          "action": "Send UniFi Identity invitations"
        },
        {
          "name": "Set PIN",
          "value": "setPin",
          "action": "Set a user's PIN",
          "description": "Set a user's PIN"
        },
        {
          "name": "Unassign NFC Card",
          "value": "unassignNfc",
          "action": "Unssign an NFC card from a user",
          "description": "Unssign an NFC card from a user"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a user",
          "description": "Update a user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an access policy",
          "description": "Get an access policy"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get access policies",
          "description": "Get access policies"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "accessPolicy"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generatePin",
      "options": [
        {
          "name": "Delete NFC Card",
          "value": "deleteNfc",
          "action": "Delete an NFC card",
          "description": "Delete an NFC card"
        },
        {
          "name": "Enroll NFC Card",
          "value": "enrollNfc",
          "action": "Enroll an NFC card",
          "description": "Wake up a UA reader and create a session to enroll an NFC card"
        },
        {
          "name": "Generate PIN",
          "value": "generatePin",
          "action": "Generate a random PIN",
          "description": "Generate a random PIN"
        },
        {
          "name": "Get Many NFC Cards",
          "value": "getAllNfcs",
          "action": "Get NFC cards",
          "description": "Get NFC cards"
        },
        {
          "name": "Get NFC Card",
          "value": "getNfc",
          "action": "Get an NFC card",
          "description": "Get an NFC card"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "credential"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get devices",
          "description": "Get devices"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "device"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add Webhook",
          "value": "add",
          "action": "Add a webhook endpoint",
          "description": "Add a webhook endpoint"
        },
        {
          "name": "Delete Webhook",
          "value": "delete",
          "action": "Delete a webhook endpoint",
          "description": "Delete a webhook endpoint"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get webhook endpoints",
          "description": "Get webhook endpoints"
        },
        {
          "name": "Update Webhook",
          "value": "update",
          "action": "Update a webhook endpoint",
          "description": "Update a webhook endpoint"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "notification"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

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

npm_readme:
  # n8n-nodes-unifi-access

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

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

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

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

  ## Installation

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

  ## Operations

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

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

  ## Credentials

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

  ## Compatibility

  Tested again n8n 2.4.8 and UniFi Access 4.1.15.

  ## Resources

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

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


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

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

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

npm_readme:
  # n8n-nodes-woztell-sanuker

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

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


  ## Product Features

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

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

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

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

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

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


  ## In case you don't have the n8n

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


  ## Sign up WOZTELL and WhatsApp Business API for Free

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

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

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

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

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

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

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

  ## Installation

  Install WOZTELL community node package in your n8n

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

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

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

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

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



  ## Credentials

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

  1.  Open **Credential**

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

  2.  Create credential by searching **WOZTELL**

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

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

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

  5.  Generate the access token

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

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

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

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

      

  ## Build automation with WOZTELL

  #### Create a n8n workflow

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

  #### Open the nodes panel

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

  #### Search WOZTELL

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



  ## Triggers and Nodes

  #### Overview

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

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

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

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



  #### Webhook: On WOZTELL Message received

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

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

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

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

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



  #### Node: Send Response

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

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

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

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



  #### Node: Redirect member to node

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

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

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

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

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

  #### Node: Send WhatsApp Template message

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

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

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

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



  ## Contact

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

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



  ## About Us

  **Sanuker**

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

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

  **WOZTELL**

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

  ## Resources

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

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


node_type: n8n-nodes-videotoblog.videoToBlog
package_name: n8n-nodes-videotoblog
display_name: VideoToBlog
description: Emits events from Video To Blog when a post is exported
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: andrewp629
author_github_url: https://github.com/Video-To-Blog/
npm_package_name: n8n-nodes-videotoblog
npm_version: 1.0.3
community_fetched_at: 2026-03-25T21:19:40.670Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-videotoblog

  Community node(s) to integrate Video To Blog with n8n.

  - Nodes
    - VideoToBlog (Trigger): Emits an item when a post is exported in Video To Blog

  ## Quick Start

  1. Install and link locally:

  ```sh
  npm run build
  npm link
  # In your n8n custom dir (~/.n8n/custom)
  npm link n8n-nodes-videotoblog
  n8n start
  ```

  2. Open n8n and add "VideoToBlog" as the first node.
     - Destination: a friendly label (e.g., "Docs")
     - Credentials: VideoToBlog API (enter your n8n API key from Video To Blog Integrations)
  3. Click "Listen for test event" to register the Test URL, or Activate the workflow to register the Production URL automatically.
  4. Export a blog post from Video To Blog. The trigger will output one item with:
     - html, markdown, emailHtml, title, metaDescription, metaTitle, slug, tags

  Optional: None - the trigger auto-registers/unregisters its webhook.

  ## Node parameters

  - Destination (string): Friendly identifier for your publishing target in n8n
  - Trigger Event (fixed): Post Exported
    

  ## Credentials

  - VideoToBlog API: Generic header auth, adds `x-api-key: <your_key>`.

  ## Docs & references

  - VideoToBlog n8n integration guide: https://docs.videotoblog.ai/en/help/articles/2997507-n8n
  - n8n submission checklist: https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/

  ## HTTPS and modes

  - No Base URL field is required in the node UI.
  - Test mode (Execute Node) uses the local Test webhook URL; activation registers the Production webhook URL.

  ## Development

  - Lint/build/test with the n8n node CLI scripts already included:
    - `npm run lint`
    - `npm run dev`
    - `npm run build`

  ## Compatibility

  - n8n: 1.x
  - License: MIT

ai_documentation_summary:
  {"purpose":"A trigger node that emits workflow items when a blog post is exported from Video To Blog.","capabilities":["Triggers on post export events","Outputs post metadata including title, slug, tags, and content formats (HTML, Markdown, Email HTML)","Supports both test and production webhook registration","Auto-registers/unregisters webhooks without manual configuration"],"authentication":"API Key (via custom header x-api-key)","commonUseCases":["Automatically publish Video To Blog posts to external CMS or marketing platforms","Trigger content processing workflows upon new blog post creation","Sync blog metadata across multiple systems"],"limitations":["Requires manual installation and linking of the community package","Only supports n8n version 1.x","No Base URL configuration field in the node UI"],"relatedNodes":["Webhook","HTTP Request","Trigger"]}


node_type: n8n-nodes-itop.iTop
package_name: n8n-nodes-itop
display_name: iTop
description: Interact with iTop CMDB via REST API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: larhip
author_github_url: https://github.com/itomig-de/
npm_package_name: n8n-nodes-itop
npm_version: 1.0.3
community_fetched_at: 2026-03-25T21:19:40.670Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "object",
      "options": [
        {
          "name": "Object",
          "value": "object"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Apply Stimulus",
          "value": "apply_stimulus",
          "action": "Apply stimulus to an object",
          "description": "Update fields and apply a stimulus on a single iTop object"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new object",
          "description": "Create a new object in iTop"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an object",
          "description": "Delete an existing object in iTop"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get objects",
          "description": "Search for and retrieve iTop objects"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an object",
          "description": "Update a single iTop object"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "object"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Apply Stimulus",
      "value": "apply_stimulus",
      "action": "Apply stimulus to an object",
      "description": "Update fields and apply a stimulus on a single iTop object"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new object",
      "description": "Create a new object in iTop"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an object",
      "description": "Delete an existing object in iTop"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get objects",
      "description": "Search for and retrieve iTop objects"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an object",
      "description": "Update a single iTop object"
    }
  ]

npm_readme:
  # n8n-nodes-itop

  This is an n8n community node. It lets you use iTop CMDB 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)

  ## Preview

  https://github.com/user-attachments/assets/6524dc6b-c6c9-4a39-ae8f-218ec982d13b


  ## Installation

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

  ## Operations

  - **Get**: Search for and retrieve iTop objects using OQL queries or object IDs
  - **Update**: Update a single iTop object with new field values

  ## Credentials

  You can use either username/password or token-based authentication to use this node.

  ### Setting up credentials in n8n

  1. In n8n, go to **Credentials** and create a new **iTop API** credential
  2. Enter your **iTop URL** (e.g., `https://your-itop-instance.com`)
  3. Select your **Authentication Method**:

  ### Username and Password

  1. Select **Username and Password** as the authentication method
  2. Enter your iTop **Username**
  3. Enter your iTop **Password**
  4. Optionally adjust the **API Version** (default: 1.3)

  ### Token

  1. Select **Token** as the authentication method
  2. Enter your iTop **Auth Token**
     - To generate a token in iTop, go to **User Account** > **Personal Tokens**
  3. Optionally adjust the **API Version** (default: 1.3)

  ### Required iTop Permissions

  Users need the following permissions in iTop:
  - **REST Services User** profile
  - **Write access** on the classes they want to modify
  - **Bulk write** permissions on the classes they want to modify

  Note: Standard administrator accounts do not have REST access by default unless the REST Services User profile is explicitly granted.

  ## Compatibility

  Compatible with n8n@1.60.0 or later

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [iTop REST/JSON API documentation](https://www.itophub.io/wiki/page?id=latest:advancedtopics:rest_json)

ai_documentation_summary:
  {"purpose":"Allows n8n workflows to interact with iTop CMDB through its REST API for retrieving and updating objects.","capabilities":["Search and retrieve iTop objects using OQL queries","Retrieve iTop objects using object IDs","Update single iTop objects with new field values"],"authentication":"Username and Password or Token-based authentication","commonUseCases":["Automating CMDB data retrieval in n8n workflows","Synchronizing IT asset information between systems","Updating CMDB records based on workflow triggers"],"limitations":["Standard administrator accounts do not have REST access by default; explicit REST Services User profile is required","Requires specific permissions: REST Services User profile, write access on target classes, and bulk write permissions","Compatible only with n8n version 1.60.0 or later"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: @musixmatch/n8n-nodes-musixmatch.musixmatch
package_name: @musixmatch/n8n-nodes-musixmatch
display_name: Musixmatch
description: Interact with Musixmatch API to access music metadata, lyrics, and more
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: musixmatchdev
author_github_url: https://github.com/musixmatchdev/n8n-nodes-musixmatch.git
npm_package_name: @musixmatch/n8n-nodes-musixmatch
npm_version: 0.2.4
community_fetched_at: 2026-03-25T21:19:40.671Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "catalog",
      "options": [
        {
          "name": "Catalog",
          "value": "catalog"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Chart Tracks Get",
          "value": "chartTracksGet",
          "action": "Get chart tracks",
          "description": "Retrieve track charts"
        },
        {
          "name": "Track Get",
          "value": "trackGet",
          "action": "Get track information",
          "description": "Get track information"
        },
        {
          "name": "Track Lyrics Get",
          "value": "trackLyricsGet",
          "action": "Get track lyrics",
          "description": "Get track lyrics"
        },
        {
          "name": "Track Subtitle Get",
          "value": "trackSubtitleGet",
          "action": "Get track subtitles",
          "description": "Get track subtitles"
        },
        {
          "name": "Matcher Track Get",
          "value": "matcherTrackGet",
          "action": "Match track by metadata",
          "description": "Match track by metadata"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "catalog"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Chart Tracks Get",
      "value": "chartTracksGet",
      "action": "Get chart tracks",
      "description": "Retrieve track charts"
    },
    {
      "name": "Track Get",
      "value": "trackGet",
      "action": "Get track information",
      "description": "Get track information"
    },
    {
      "name": "Track Lyrics Get",
      "value": "trackLyricsGet",
      "action": "Get track lyrics",
      "description": "Get track lyrics"
    },
    {
      "name": "Track Subtitle Get",
      "value": "trackSubtitleGet",
      "action": "Get track subtitles",
      "description": "Get track subtitles"
    },
    {
      "name": "Matcher Track Get",
      "value": "matcherTrackGet",
      "action": "Match track by metadata",
      "description": "Match track by metadata"
    }
  ]

npm_readme:
  # n8n-nodes-musixmatch

  <picture>
    <source media="(prefers-color-scheme: dark)" srcset=".github/musixmatch-logo-dark.png">
    <source media="(prefers-color-scheme: light)" srcset=".github/musixmatch-logo.png">
    <img alt="Musixmatch Logo" src=".github/musixmatch-logo.png" width="300">
  </picture>

  [![npm version](https://img.shields.io/npm/v/@musixmatch/n8n-nodes-musixmatch.svg)](https://www.npmjs.com/package/@musixmatch/n8n-nodes-musixmatch)
  [![npm downloads](https://img.shields.io/npm/dt/@musixmatch/n8n-nodes-musixmatch.svg)](https://www.npmjs.com/package/@musixmatch/n8n-nodes-musixmatch)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
  [![GitHub issues](https://img.shields.io/github/issues/musixmatchdev/n8n-nodes-musixmatch.svg)](https://github.com/musixmatchdev/n8n-nodes-musixmatch/issues)

  This is an n8n community node that lets you use [Musixmatch](https://www.musixmatch.com/) in your n8n workflows.

  Musixmatch is the world's largest lyrics catalog, providing access to millions of songs' lyrics, translations, subtitles, and music metadata. This node enables you to integrate Musixmatch's powerful API into your automation workflows.

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

  ## Table of Contents

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

  ## Installation

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

  ### Community Node Installation

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

  After installing the node, you can use it like any other node in your workflows.

  ## Operations

  The Musixmatch node currently supports the following operations:

  ### Catalog Resource

  - **Chart Tracks Get**: Retrieve the top charting tracks from a specific country
  - **Track Get**: Get track information by Musixmatch Track ID
  - **Track Lyrics Get**: Retrieve lyrics for a specific track
  - **Track Lyrics Translation Get**: Get translated lyrics for a track in a specified language
  - **Track Subtitle Get**: Retrieve subtitles (time-synced lyrics) for a track
  - **Matcher Track Get**: Search and match a track by artist and track name

  ### Available Operations Details

  #### Chart Tracks Get

  Retrieve trending and top charting tracks from Musixmatch charts. You can filter by country and chart type (e.g., top, hot, mxmweekly).

  #### Track Get

  Fetch detailed information about a specific track using its Musixmatch Track ID, including metadata like artist name, album, release date, and more.

  #### Track Lyrics Get

  Access the lyrics of any track in the Musixmatch catalog by providing the Track ID.

  #### Track Lyrics Translation Get

  Get translated versions of lyrics in multiple languages. Perfect for multilingual applications and global audiences.

  #### Track Subtitle Get

  Retrieve time-synced subtitles (lyrics with timestamps) for karaoke applications, music players, or synchronized displays.

  #### Matcher Track Get

  Search for a track by providing the artist name and track title. This operation returns the best matching track from the Musixmatch database.

  ## Credentials

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

  ### Getting Your API Key

  1. Visit [Musixmatch API Pricing](https://www.musixmatch.com/pro/api/pricing?utm_source=github_n8n_node&utm_medium=web&utm_content=pricing_page_link) to view available plans
  2. Subscribe to a plan that fits your needs
  3. Once subscribed, you'll receive your API key
  4. Copy your API key to use with this n8n node

  ### Setting Up Credentials in n8n

  1. In your n8n workflow, add the Musixmatch node
  2. Click on **Credential for Musixmatch API**
  3. Select **Create New Credential**
  4. Enter your **API Key**
  5. Click **Save**

  The node will automatically authenticate all API requests using your credentials.

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Tested with n8n versions**: 1.119.2 and above

  This node is built using the latest n8n community node standards and should be compatible with all recent versions of n8n.

  ## Usage

  ### Example Workflow: Get Trending Tracks with Lyrics

  Here's a simple example that retrieves the top 10 trending tracks from the US charts and fetches their lyrics:

  1. **Add Musixmatch node** configured to use **Chart Tracks Get** operation
     - Set **Country** to `US`
     - Set **Chart Name** to `top`
     - Set **Page Size** to `10`

  2. **Add a second Musixmatch node** configured to use **Track Lyrics Get** operation
     - Use `{{ $json.track_id }}` from the previous node to fetch lyrics for each track

  3. **Process the results** with other n8n nodes as needed (e.g., save to database, send to webhook, etc.)

  ### Example Workflow: Search and Translate Lyrics

  1. **Add Musixmatch node** configured to use **Matcher Track Get** operation
     - Set **Artist Name** to the artist you want to search
     - Set **Track Name** to the song title

  2. **Add a second Musixmatch node** configured to use **Track Lyrics Translation Get** operation
     - Use `{{ $json.track_id }}` from the previous node
     - Set **Language** to your desired language code (e.g., `es` for Spanish, `fr` for French)

  ### Tips

  - The node is compatible with AI Agent workflows (marked as `usableAsTool`)
  - All operations respect n8n's **Continue On Fail** setting for robust error handling
  - Use the **Matcher Track Get** operation when you don't have a Track ID but know the artist and song name
  - Rate limits depend on your Musixmatch API plan - consider implementing appropriate delays for large batch operations

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Musixmatch API Documentation](https://docs.musixmatch.com/lyrics-api/introduction?utm_source=github_n8n_node&utm_medium=web&utm_content=docs_link)
  - [n8n Documentation](https://docs.n8n.io/)

  ## Support

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

  ---

  _This is a community node and is not officially maintained by n8n. For official support, please contact Musixmatch directly._

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the Musixmatch API to retrieve music metadata, lyrics, translations, and subtitles.","capabilities":["Retrieve top charting tracks by country","Get detailed track information by Track ID","Fetch lyrics for specific tracks","Get translated lyrics in multiple languages","Retrieve time-synced subtitles","Search and match tracks by artist and name"],"authentication":"API Key required","commonUseCases":["Automating music metadata collection for databases","Integrating lyrics into content creation workflows","Building multilingual lyric translation tools","Creating karaoke or synchronized display applications"],"limitations":["Rate limits depend on the Musixmatch API plan","Requires a paid Musixmatch subscription to obtain an API key","Minimum n8n version required is 1.0.0"],"relatedNodes":["n8n HTTP Request node","n8n Set node","n8n Webhook node"]}


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

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

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

npm_readme:
  # n8n-nodes-scrape-creators

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

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

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

  ## How to install

  ### Community Nodes

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

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

  ## Credentials

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

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

  3. Create new credential in n8n

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

  ## Resources

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

  ## Version history

  0.1.5 - Initial Release

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


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

updated_at: 2026-03-25 21:19:40
author_name: goranstjepanovic
author_github_url: https://github.com/flarelight-io/n8n-nodes-flarelight.git
npm_package_name: @flarelight/n8n-nodes-flarelight
npm_version: 1.0.3
community_fetched_at: 2026-03-25T21:19:40.673Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "import",
      "options": [
        {
          "name": "Automation",
          "value": "automation"
        },
        {
          "name": "Import",
          "value": "import"
        },
        {
          "name": "Preparation",
          "value": "preparation"
        },
        {
          "name": "Report",
          "value": "report"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "execute",
      "options": [
        {
          "name": "Execute Automation",
          "value": "execute",
          "action": "Execute automation",
          "routing": {
            "request": {
              "url": "=/Automation/{{$parameter[\"automationId\"]}}/Execute",
              "method": "POST"
            }
          },
          "description": "Execute an automation by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "automation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many imports",
          "routing": {
            "request": {
              "url": "/Import/All",
              "method": "GET"
            }
          },
          "description": "Get many available imports"
        },
        {
          "name": "Get Import Data",
          "value": "getData",
          "action": "Get import data",
          "routing": {
            "request": {
              "url": "=/Import/{{$parameter[\"importId\"]}}/Data?start={{ $parameter.start }}&count={{ $parameter.count }}",
              "method": "GET"
            }
          },
          "description": "Get data from a specific import"
        },
        {
          "name": "Create Import",
          "value": "create",
          "action": "Create import",
          "routing": {
            "request": {
              "url": "/Import/Data",
              "body": "={{ JSON.parse($parameter.importRequest) }}",
              "method": "POST"
            }
          },
          "description": "Create a new data import"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "import"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many preparations",
          "routing": {
            "request": {
              "url": "/Preparation/All",
              "method": "GET"
            }
          },
          "description": "Get many available data preparations"
        },
        {
          "name": "Get Preparation Data",
          "value": "getData",
          "action": "Get preparation data",
          "routing": {
            "request": {
              "url": "=/Preparation/{{$parameter[\"preparationId\"]}}/Data?start={{ $parameter.start }}&count={{ $parameter.count }}",
              "method": "GET"
            }
          },
          "description": "Get data from a specific preparation"
        },
        {
          "name": "Execute Preparation",
          "value": "execute",
          "action": "Execute preparation",
          "routing": {
            "request": {
              "url": "=/Preparation/{{$parameter[\"preparationId\"]}}/Execute",
              "method": "POST"
            }
          },
          "description": "Execute a data preparation by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "preparation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many reports",
          "routing": {
            "request": {
              "url": "/Report/All",
              "method": "GET"
            }
          },
          "description": "Get many available reports"
        },
        {
          "name": "Get Report",
          "value": "get",
          "action": "Get report",
          "routing": {
            "request": {
              "url": "=/Report/{{$parameter[\"reportId\"]}}",
              "method": "GET"
            }
          },
          "description": "Get a specific report by ID"
        },
        {
          "name": "Generate Report",
          "value": "generate",
          "action": "Generate report",
          "routing": {
            "request": {
              "url": "=/Report/{{$parameter[\"reportId\"]}}/Generate",
              "method": "POST"
            }
          },
          "description": "Generate a report by ID"
        },
        {
          "name": "Get Chart Data",
          "value": "getChartData",
          "action": "Get chart data",
          "routing": {
            "request": {
              "url": "/Report/ChartData",
              "body": "={{ JSON.parse($parameter.chartDataRequest) }}",
              "method": "POST"
            }
          },
          "description": "Get chart data for reports"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Execute Automation",
      "value": "execute",
      "action": "Execute automation",
      "routing": {
        "request": {
          "url": "=/Automation/{{$parameter[\"automationId\"]}}/Execute",
          "method": "POST"
        }
      },
      "description": "Execute an automation by ID"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many imports",
      "routing": {
        "request": {
          "url": "/Import/All",
          "method": "GET"
        }
      },
      "description": "Get many available imports"
    },
    {
      "name": "Get Import Data",
      "value": "getData",
      "action": "Get import data",
      "routing": {
        "request": {
          "url": "=/Import/{{$parameter[\"importId\"]}}/Data?start={{ $parameter.start }}&count={{ $parameter.count }}",
          "method": "GET"
        }
      },
      "description": "Get data from a specific import"
    },
    {
      "name": "Create Import",
      "value": "create",
      "action": "Create import",
      "routing": {
        "request": {
          "url": "/Import/Data",
          "body": "={{ JSON.parse($parameter.importRequest) }}",
          "method": "POST"
        }
      },
      "description": "Create a new data import"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many preparations",
      "routing": {
        "request": {
          "url": "/Preparation/All",
          "method": "GET"
        }
      },
      "description": "Get many available data preparations"
    },
    {
      "name": "Get Preparation Data",
      "value": "getData",
      "action": "Get preparation data",
      "routing": {
        "request": {
          "url": "=/Preparation/{{$parameter[\"preparationId\"]}}/Data?start={{ $parameter.start }}&count={{ $parameter.count }}",
          "method": "GET"
        }
      },
      "description": "Get data from a specific preparation"
    },
    {
      "name": "Execute Preparation",
      "value": "execute",
      "action": "Execute preparation",
      "routing": {
        "request": {
          "url": "=/Preparation/{{$parameter[\"preparationId\"]}}/Execute",
          "method": "POST"
        }
      },
      "description": "Execute a data preparation by ID"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many reports",
      "routing": {
        "request": {
          "url": "/Report/All",
          "method": "GET"
        }
      },
      "description": "Get many available reports"
    },
    {
      "name": "Get Report",
      "value": "get",
      "action": "Get report",
      "routing": {
        "request": {
          "url": "=/Report/{{$parameter[\"reportId\"]}}",
          "method": "GET"
        }
      },
      "description": "Get a specific report by ID"
    },
    {
      "name": "Generate Report",
      "value": "generate",
      "action": "Generate report",
      "routing": {
        "request": {
          "url": "=/Report/{{$parameter[\"reportId\"]}}/Generate",
          "method": "POST"
        }
      },
      "description": "Generate a report by ID"
    },
    {
      "name": "Get Chart Data",
      "value": "getChartData",
      "action": "Get chart data",
      "routing": {
        "request": {
          "url": "/Report/ChartData",
          "body": "={{ JSON.parse($parameter.chartDataRequest) }}",
          "method": "POST"
        }
      },
      "description": "Get chart data for reports"
    }
  ]

npm_readme:
  # n8n-nodes-flarelight

  This is an n8n community node that lets you use [Flarelight](https://www.flarelight.io) APIs in your n8n workflows.

  Flarelight is a modern no-code Business Intelligence (BI) platform designed for micro-businesses, professionals, and small teams that enables users to import, prepare, analyze, automate, and report on data in a streamlined, easy-to-use workflow. The platform combines simplicity, automation, and AI-assisted insights, giving smaller organizations access to capabilities traditionally reserved for enterprise BI tools.

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

  1. Go to **Settings > Community Nodes**.
  2. Select **Install**.
  3. Enter `n8n-nodes-flarelight` in **Enter npm package name**.
  4. Agree to the [risks](https://docs.n8n.io/integrations/community-nodes/risks/) of using community nodes: select **I understand the risks of installing unverified code from a public source**.
  5. Select **Install**.

  After installing the node, you can use it like any other node. n8n displays the node in search results in the **Nodes** panel.

  ## Operations

  The node mirrors the primary resource groups exposed by the Flarelight API so you can:

  - Run automations to orchestrate Flarelight workflows.
  - Manage imports, including creating new imports and retrieving their data.
  - Handle preparation pipelines to transform datasets before downstream use.
  - Generate and retrieve reports, including chart data extraction.

  For the full list of endpoints and payloads, refer to the [Flarelight API specification](https://integration.eu1.flarelight.cloud/swagger/index.html).

  ## Credentials

  Create a Flarelight credential in n8n using the values supplied by your Flarelight workspace:

  - `Subscription ID` (sent as `X-Subscription-Id`)
  - `Integration Key` (sent as `X-Api-Key`)
  - Optional custom API base URL (defaults to `https://integration.eu1.flarelight.cloud`)

  Store credentials in n8n and reference them from every Flarelight node instance.

  ## Compatibility

  Tested against n8n version **1.120.4**.

  ## Usage

  1. Install the community node and configure the Flarelight credential once per n8n instance.
  2. Add the **Flarelight** node to a workflow and pick a resource (`Automation`, `Import`, `Preparation`, or `Report`).
  3. Choose an operation, supply required IDs or payloads, and optionally enable pagination or JSON body inputs where available.
  4. Chain the Flarelight node with other n8n nodes to automate end-to-end BI and reporting workflows.

  Review `n8nNodeDocPortal.md` in this repository for deeper, operation-by-operation guidance.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Flarelight website](https://www.flarelight.io)
  - [Flarelight API documentation](https://docs.flarelight.cloud/docs/integration-api/)

  ## Version history

  | Version | Date       | Notes                    |
  |---------|------------|--------------------------|
  | 1.0.3   | 2025-11-27 | POST Requests fix |
  | 1.0.2   | 2025-11-25 | Fixed gulp file copy which corrupted the icon  |
  | 1.0.1   | 2025-11-25 | Clean up template files  |
  | 1.0.0   | 2025-11-25 | Initial community release |

ai_documentation_summary:
  {"purpose":"This n8n community node enables workflow automation by interacting with the Flarelight Business Intelligence (BI) platform API to manage data imports, preparation pipelines, automations, and reporting.","capabilities":["Run Flarelight automations","Create and retrieve data imports","Manage data preparation pipelines","Generate and retrieve reports","Extract chart data from reports","Support pagination for API responses"],"authentication":"API Key required (Integration Key sent as X-Api-Key header) and Subscription ID (sent as X-Subscription-Id header)","commonUseCases":["Automating data import and transformation workflows","Generating automated BI reports for micro-businesses","Orchestrating data analysis pipelines within n8n","Extracting visual data from Flarelight charts"],"limitations":["Community node (unverified code from public source)","Requires valid Flarelight workspace credentials","Tested only against n8n version 1.120.4"],"relatedNodes":["n8n HTTP Request node","n8n Code node","n8n Function node"]}


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

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

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

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

  # n8n-nodes-aimfox

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

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

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

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

  ## Installation

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

  ## Operations

  This node supports the following operations:

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

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

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

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

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

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

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

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

  ## Triggers

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

  ## Credentials

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

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

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

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

  ## Compatibility

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

  ## Usage

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

  ## Resources

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of LinkedIn outreach, lead generation, and social selling activities through the Aimfox platform.","capabilities":["Manage account limits and list accounts","Manage blacklist of companies and profiles","Create, pause, resume, and manage campaigns","Start, list, and manage conversations with leads","Add custom variables to targets and leads","Manage labels and notes for leads","Create and manage templates","Trigger on LinkedIn events like connection requests, Inmails, and profile views"],"authentication":"API key required (Bearer token)","commonUseCases":["Automated LinkedIn lead generation","Social selling campaigns","LinkedIn outreach automation","Lead management and labeling","Conversation tracking and messaging"],"limitations":["Requires a paid Aimfox account","Requires manual setup of API credentials in n8n"],"relatedNodes":["n8n-nodes-aimfox.aimfox","n8n-nodes-aimfox.aimfox.account","n8n-nodes-aimfox.aimfox.campaign","n8n-nodes-aimfox.aimfox.lead","n8n-nodes-aimfox.aimfox.conversation"]}


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

updated_at: 2026-03-25 21:19:40
author_name: sendpulse.com
author_github_url: https://github.com/sendpulse/n8n-nodes-sendpulse.git
npm_package_name: @sendpulse/n8n-nodes-sendpulse
npm_version: 0.0.3
community_fetched_at: 2026-03-25T21:19:40.675Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "flow",
      "options": [
        {
          "name": "Flow",
          "value": "flow"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many automation flows",
          "routing": {
            "request": {
              "qs": {
                "limit": "={{ $parameter.additionalFields.limit }}",
                "offset": "={{ $parameter.additionalFields.offset }}"
              },
              "url": "=/autoresponders/list",
              "method": "GET"
            }
          },
          "description": "Get a list of automation flows"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a automation flow",
          "routing": {
            "request": {
              "url": "=/autoresponders/{{ $parameter.flowId }}",
              "method": "GET"
            }
          },
          "description": "Get a automation flow by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "flow"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many automation flows",
      "routing": {
        "request": {
          "qs": {
            "limit": "={{ $parameter.additionalFields.limit }}",
            "offset": "={{ $parameter.additionalFields.offset }}"
          },
          "url": "=/autoresponders/list",
          "method": "GET"
        }
      },
      "description": "Get a list of automation flows"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a automation flow",
      "routing": {
        "request": {
          "url": "=/autoresponders/{{ $parameter.flowId }}",
          "method": "GET"
        }
      },
      "description": "Get a automation flow by ID"
    }
  ]

npm_readme:
  # 🚀 n8n-nodes-sendpulse

  ![SendPulse Logo](icons/sendpulse.svg)

  Official [SendPulse](https://sendpulse.com) integration for [n8n](https://n8n.io).

  SendPulse is an all-in-one multichannel marketing and communication platform.
  It combines email campaigns, SMS, web push, and chatbots with CRM, automation flows, and transactional messaging.
  Using the n8n integration, teams can sync customer data, trigger personalized journeys from any app, and centralize product and growth experiments in one flexible workflow.

  This repo contains SendPulse Automation360, SendPulse Chatbots, SendPulse CRM, SendPulse Email, SendPulse FileManager,
  SendPulse Pop-ups, SendPulse SMS, SendPulse SMTP, SendPulse Verifier and SendPulse Web Push community nodes for n8n.

  These nodes currently only supports the most popular SendPulse APIs.
  If there's an API missing that you would like to use, please let us know.
  In the meantime, you can also use the generic [HTTP Request](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) node to construct your requests.

  ## 📚 Table of Contents

  * [Installation](#installation)
  * [Credentials](#credentials)
  * [Usage](#usage)
  * [Operations](#operations)
  * [Workflow Examples](#workflow-examples)
  * [Compatibility](#compatibility)
  * [Resources](#resources)
  * [License](#license)

  ## 📦 Installation

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

  ## 🔐 Credentials

  ### Client ID & Client Secret

  1. Log in to your **[SendPulse account](https://sendpulse.com)**
  2. Navigate to **Account settings > API**
  3. Copy your **Client ID**
  4. Copy your **Client Secret**

  ### Access Token

  The authorization process requires an access token for signing each further API request.

  The necessary parameters to obtain an access token can be found in the private account settings page found on the following URL in the [API tab](https://login.sendpulse.com/settings/#api).

  To get an access token you have to send a POST request to:

  ```
  https://api.sendpulse.com/oauth/access_token
  ```

  Request parameters:

  | Parameter     | Type   | Description                             |
  |---------------|--------|-----------------------------------------|
  | grant_type    | string | Has to be equal to `client_credentials` |
  | client_id     | string | Your ID                                 |
  | client_secret | string | Your Secret                             |

  ## 🧩 Usage

  Add any SendPulse node to a workflow:

  ![Add SendPulse to Workflow](images/node.png)

  Configure a basic query and hit "Execute step" to execute the query:

  ![Test a Google Search through SerpApi](images/mailing-list-operation.png)

  ## 🛠️ Operations

  All operations are documented in the [SendPulse REST API Documentation](https://sendpulse.com/integrations/api).

  ### 🔄 SendPulse Automation360 Node

  | Resource | Operation                                                        |
  |----------|------------------------------------------------------------------|
  | Flow     | [Get Many](https://sendpulse.com/integrations/api/a360#get-flows) |
  | Flow     | [Get](https://sendpulse.com/integrations/api/a360#get-info-flow)  |

  ### 🤖 SendPulse Chatbots Node

  | Resource | Operation                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  |----------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | Bot      | [Get Many](https://sendpulse.com/integrations/api/chatbot#/bots/get_bots)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
  | Dialog   | [Get Many](https://sendpulse.com/integrations/api/chatbot#/dialogs/get_dialogs)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | Contact  | Get ([Telegram](https://sendpulse.com/integrations/api/chatbot/telegram#/contacts/get_contacts_get), [Facebook Messenger](https://sendpulse.com/integrations/api/chatbot/facebook#/contacts/get_contacts_get), [WhatsApp](https://sendpulse.com/integrations/api/chatbot/whatsapp#/contacts/get_contacts_get), [LiveChat](https://sendpulse.com/integrations/api/chatbot/live-chat#/contacts/get_contacts_get), [Instagram](https://sendpulse.com/integrations/api/chatbot/instagram#/contacts/get_contacts_get), [Viber](https://sendpulse.com/integrations/api/chatbot/viber#/contacts/get_contacts_get), [TikTok](https://sendpulse.com/integrations/api/chatbot/tiktok#/contacts/get_contacts_get))                        |
  | Contact  | Send Message ([Telegram](https://sendpulse.com/integrations/api/chatbot/telegram#/contacts/post_contacts_send), [Facebook Messenger](https://sendpulse.com/integrations/api/chatbot/facebook#/contacts/post_contacts_send), [WhatsApp](https://sendpulse.com/integrations/api/chatbot/whatsapp#/contacts/post_contacts_send), [LiveChat](https://sendpulse.com/integrations/api/chatbot/live-chat#/contacts/post_contacts_send), [Instagram](https://sendpulse.com/integrations/api/chatbot/instagram#/contacts/post_contacts_send), [Viber](https://sendpulse.com/integrations/api/chatbot/viber#/contacts/post_contacts_send), [TikTok](https://sendpulse.com/integrations/api/chatbot/tiktok#/contacts/post_contacts_send)) |
  | Flow     | Run ([Telegram](https://sendpulse.com/integrations/api/chatbot/telegram#/flows/post_flows_run), [Facebook Messenger](https://sendpulse.com/integrations/api/chatbot/facebook#/flows/post_flows_run), [WhatsApp](https://sendpulse.com/integrations/api/chatbot/whatsapp#/flows/post_flows_run), [LiveChat](https://sendpulse.com/integrations/api/chatbot/live-chat#/flows/post_flows_run), [Instagram](https://sendpulse.com/integrations/api/chatbot/instagram#/flows/post_flows_run), [Viber](https://sendpulse.com/integrations/api/chatbot/viber#/flows/post_flows_run), [TikTok](https://sendpulse.com/integrations/api/chatbot/tiktok#/flows/post_flows_run))                                                           |

  ### 📇 SendPulse CRM Node

  | Resource | Operation                                                                                                           |
  |----------|---------------------------------------------------------------------------------------------------------------------|
  | Contact  | [Get Many](https://sendpulse.com/integrations/api/crm#/Contacts/post_contacts_get_list)                              |
  | Contact  | [Get](https://sendpulse.com/integrations/api/crm#/Contacts/get_contacts__contactId_)                                 |
  | Contact  | [Get by External ID](https://sendpulse.com/integrations/api/crm#/Contacts/get_contacts_external__externalContactId_) |
  | Contact  | [Create](https://sendpulse.com/integrations/api/crm#/Contacts/post_contacts_create)                                  |
  | Deal     | [Get Many](https://sendpulse.com/integrations/api/crm#/Deals/post_deals_get_list)                                    |
  | Deal     | [Get](https://sendpulse.com/integrations/api/crm#/Deals/get_deals__dealId_)                                          |
  | Deal     | [Create](https://sendpulse.com/integrations/api/crm#/Deals/post_deals)                                               |
  | Pipeline | [Get Many](https://sendpulse.com/integrations/api/crm#/Pipelines/get_pipelines)                                      |
  | Pipeline | [Get](https://sendpulse.com/integrations/api/crm#/Pipelines/get_pipelines__pipelineId_)                              |
  | Pipeline | [Create](https://sendpulse.com/integrations/api/crm#/Pipelines/post_pipelines)                                       |

  ### ✉️ SendPulse Email Node

  | Resource     | Operation                                                                                                                                                                   |
  |--------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
  | Mailing List | [Get Many](https://sendpulse.com/integrations/api/bulk-email#lists-list)                                                                                                     |
  | Mailing List | [Get](https://sendpulse.com/integrations/api/bulk-email#list-info)                                                                                                           |
  | Mailing List | [Create](https://sendpulse.com/integrations/api/bulk-email#create-list)                                                                                                      |
  | Email        | Add to List ([single-opt-in](https://sendpulse.com/integrations/api/bulk-email#add-email), [double-opt-in)](https://sendpulse.com/integrations/api/bulk-email#double-opt-in)) |
  | Campaign | [Get Many](https://sendpulse.com/integrations/api/bulk-email#campaigns-list)                                                                                                     |
  | Campaign | [Get](https://sendpulse.com/integrations/api/bulk-email#campaign-info)                                                                                                           |
  | Campaign | [Create](https://sendpulse.com/integrations/api/bulk-email#create-campaign)                                                                                                      |

  ### 📁 SendPulse FileManager Node

  | Resource | Operation                                                                    |
  |----------|------------------------------------------------------------------------------|
  | File     | [Upload](https://sendpulse.com/integrations/api/file-manager#/File/post_file) |


  ### 🪄 SendPulse Pop-ups Node

  | Resource | Operation                                                                                              |
  |----------|--------------------------------------------------------------------------------------------------------|
  | Project  | [Get Many](https://sendpulse.com/integrations/api/pop-up#/Project/get_public_api_widgets_list)          |
  | Pop-Up   | [Get Many](https://sendpulse.com/integrations/api/pop-up#/Popup/get_public_api_popups_list__projectId_) |

  ### 📱 SendPulse SMS Node

  | Resource     | Operation                                                                                 |
  |--------------|-------------------------------------------------------------------------------------------|
  | Phone Number | [Add to Mailing List](https://sendpulse.com/integrations/api/bulk-sms#add-telephone)       |
  | Campaign     | [Create](https://sendpulse.com/integrations/api/bulk-sms#create-campaign-for-mailing-list) |

  ### 📨 SendPulse SMTP Node

  | Resource | Operation                                                                   |
  | -------- |-----------------------------------------------------------------------------|
  | Email    | [Get Many](https://sendpulse.com/integrations/api/smtp#get-emails-list-smtp) |
  | Email    | [Get](https://sendpulse.com/integrations/api/smtp#email-info-smtp)           |
  | Email    | [Send](https://sendpulse.com/integrations/api/smtp#send-email-smtp)          |

  ### ✔️ SendPulse Verifier Node

  | Resource     | Operation                                                                                 |
  | ------------ |-------------------------------------------------------------------------------------------|
  | Mailing List | [Verify](https://sendpulse.com/integrations/api/verifier#verify-mailing-list)              |
  | Mailing List | [Get Verified Lists](https://sendpulse.com/integrations/api/verifier#get-verified-lists)   |
  | Mailing List | [Get Verification Results](https://sendpulse.com/integrations/api/verifier#get-results-ml) |

  ### 🔔 SendPulse Web Push Node

  | Resource | Operation                                                                    |
  | -------- |------------------------------------------------------------------------------|
  | Website  | [Get Many](https://sendpulse.com/integrations/api/web-push#get-websites-list) |
  | Website  | [Get](https://sendpulse.com/integrations/api/web-push#site_info)              |
  | Campaign | [Create](https://sendpulse.com/integrations/api/web-push#create-push)         |

  ## 🧪 Workflow Examples

  #### Workflow 1: Create an email campaign

  ![Workflow 1](images/workflow1.png)

  **Steps:**
  1. Get mailing lists
  2. Combine results into one variable
  3. Set sender's name, sender's email, subject, base64 encoded message content and mailing list ID
  4. Send a campaign

  <details>
  <summary>JSON</summary>

  ```json
  {
    "name": "Creating an email campaign",
    "nodes": [
      {
        "parameters": {},
        "type": "n8n-nodes-base.manualTrigger",
        "typeVersion": 1,
        "position": [
          0,
          0
        ],
        "id": "162576dc-89ec-4f80-902c-1a048995caa3",
        "name": "When clicking ‘Execute workflow’"
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "resource": "campaign",
          "operation": "create",
          "senderName": "={{ $json.senderName }}",
          "senderEmail": "={{ $json.senderEmail }}",
          "subject": "={{ $json.subject }}",
          "htmlBody": "={{ $json.htmlBodyBase64 }}",
          "listIds": "={{ $json.mailingListId }}",
          "name": "=Black Friday",
          "additionalFields": {},
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseEmail",
        "typeVersion": 1,
        "position": [
          832,
          0
        ],
        "id": "f0486554-11b2-4ef4-ac58-1e4c287f189b",
        "name": "Create email campaign"
      },
      {
        "parameters": {
          "assignments": {
            "assignments": [
              {
                "id": "3f41524f-412d-4a70-8871-a23c615786d6",
                "name": "senderName",
                "value": "<sender_name>",
                "type": "string"
              },
              {
                "id": "c86c494a-73cd-4ea2-b6eb-4d9190fea113",
                "name": "senderEmail",
                "value": "<sender_email>",
                "type": "string"
              },
              {
                "id": "f0b4bbee-1556-43b5-9da4-f3c1833ffb84",
                "name": "subject",
                "value": "<subject>",
                "type": "string"
              },
              {
                "id": "e0f6b188-867e-4e95-b638-b007151cf3da",
                "name": "htmlBodyBase64",
                "value": "<html_body_base_64>",
                "type": "string"
              },
              {
                "id": "82042391-f675-46be-af47-0bde90057de5",
                "name": "=mailingListId",
                "value": "=<mailing_list_id>",
                "type": "number"
              }
            ]
          },
          "options": {}
        },
        "type": "n8n-nodes-base.set",
        "typeVersion": 3.4,
        "position": [
          624,
          0
        ],
        "id": "1dffd9a3-fb32-40e1-aebd-f7346aa985f2",
        "name": "Workflow Configuration"
      },
      {
        "parameters": {
          "additionalFields": {},
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseEmail",
        "typeVersion": 1,
        "position": [
          208,
          0
        ],
        "id": "0e1b317f-acaf-4852-bf7d-535aebbcaab3",
        "name": "Get many mailing lists"
      },
      {
        "parameters": {
          "aggregate": "aggregateAllItemData",
          "destinationFieldName": "mailingLists",
          "options": {}
        },
        "id": "7bd43960-7cae-420d-9146-130310dc0efb",
        "name": "Combine Items",
        "type": "n8n-nodes-base.aggregate",
        "typeVersion": 1,
        "position": [
          416,
          0
        ]
      }
    ],
    "pinData": {},
    "connections": {
      "When clicking ‘Execute workflow’": {
        "main": [
          [
            {
              "node": "Get many mailing lists",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Create email campaign": {
        "main": [
          []
        ]
      },
      "Workflow Configuration": {
        "main": [
          [
            {
              "node": "Create email campaign",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Get many mailing lists": {
        "main": [
          [
            {
              "node": "Combine Items",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Combine Items": {
        "main": [
          [
            {
              "node": "Workflow Configuration",
              "type": "main",
              "index": 0
            }
          ]
        ]
      }
    },
    "active": false,
    "settings": {
      "executionOrder": "v1"
    },
    "versionId": "59ed90df-5927-4019-bfd2-5ce67858d0ee",
    "meta": {
      "templateCredsSetupCompleted": true,
      "instanceId": "791011c5d912fa3910b1b3f0a58e52e888701c971bd92f7e7fc8373a23481dcb"
    },
    "id": "JB4pgZqZbQmUT76u",
    "tags": []
  }
  ```
  </details> 

  ---

  #### Workflow 2: Verify a mailing list and get verification results

  ![Workflow 2](images/workflow2.png)

  **Steps:**
  1. Start with mailing list ID input
  2. Verify mailing list
  3. Wait 5 seconds
  4. Get mailing list verification results

  <details>
  <summary>JSON</summary>

  ```json
  {
    "name": "Verify a mailing list and get verification results",
    "nodes": [
      {
        "parameters": {},
        "type": "n8n-nodes-base.manualTrigger",
        "typeVersion": 1,
        "position": [
          -80,
          144
        ],
        "id": "e6f335fe-9185-4e2a-b15b-6aaeab5151d7",
        "name": "When clicking ‘Execute workflow’"
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "operation": "verify",
          "mailingListId": "={{ $json.mailingListId }}",
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseVerifier",
        "typeVersion": 1,
        "position": [
          336,
          144
        ],
        "id": "d646a9b4-d672-4098-b243-8a0a802e0b19",
        "name": "Verify a mailing list"
      },
      {
        "parameters": {},
        "type": "n8n-nodes-base.wait",
        "typeVersion": 1.1,
        "position": [
          960,
          128
        ],
        "id": "f08cd010-c410-4140-aa7d-996e95afac04",
        "name": "Wait",
        "webhookId": "d3afa9c8-b36f-45e3-8ef5-b956a98b79c5"
      },
      {
        "parameters": {
          "conditions": {
            "options": {
              "caseSensitive": true,
              "leftValue": "",
              "typeValidation": "strict",
              "version": 3
            },
            "conditions": [
              {
                "id": "a3932ac8-334e-4d13-88d1-bb7921cb5852",
                "leftValue": "={{ $json.status }}",
                "rightValue": 0,
                "operator": {
                  "type": "number",
                  "operation": "equals"
                }
              }
            ],
            "combinator": "and"
          },
          "options": {}
        },
        "type": "n8n-nodes-base.if",
        "typeVersion": 2.3,
        "position": [
          752,
          144
        ],
        "id": "49a7edbc-ffd7-4126-b3e4-8078a2a0886c",
        "name": "If"
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "operation": "getVerificationResults",
          "mailingListId": "={{ $('Workflow Configuration').item.json.mailingListId }}",
          "additionalFields": {},
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseVerifier",
        "typeVersion": 1,
        "position": [
          544,
          144
        ],
        "id": "1565c302-b889-4b1e-aebb-1541da25d966",
        "name": "Get mailing list verification results",
        "credentials": {
          "sendPulseApi": {
            "id": "SguuezBTI7kLeYfQ",
            "name": "SendPulse account"
          }
        }
      },
      {
        "parameters": {
          "assignments": {
            "assignments": [
              {
                "id": "3f41524f-412d-4a70-8871-a23c615786d6",
                "name": "mailingListId",
                "value": 498261,
                "type": "number"
              }
            ]
          },
          "options": {}
        },
        "type": "n8n-nodes-base.set",
        "typeVersion": 3.4,
        "position": [
          128,
          144
        ],
        "id": "c7aa188a-7c99-44c0-b666-fb5c9c4e4c92",
        "name": "Workflow Configuration"
      }
    ],
    "pinData": {},
    "connections": {
      "When clicking ‘Execute workflow’": {
        "main": [
          [
            {
              "node": "Workflow Configuration",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Wait": {
        "main": [
          [
            {
              "node": "Get mailing list verification results",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Verify a mailing list": {
        "main": [
          [
            {
              "node": "Get mailing list verification results",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Get mailing list verification results": {
        "main": [
          [
            {
              "node": "If",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "If": {
        "main": [
          [
            {
              "node": "Wait",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Workflow Configuration": {
        "main": [
          [
            {
              "node": "Verify a mailing list",
              "type": "main",
              "index": 0
            }
          ]
        ]
      }
    },
    "active": false,
    "settings": {
      "executionOrder": "v1"
    },
    "versionId": "5f24f95a-2d59-4650-a899-c68663a47d85",
    "meta": {
      "templateCredsSetupCompleted": true,
      "instanceId": "791011c5d912fa3910b1b3f0a58e52e888701c971bd92f7e7fc8373a23481dcb"
    },
    "id": "S04LSCXtbAoNxzY3",
    "tags": []
  }
  ```
  </details> 

  ---

  #### Workflow 3: Create a deal

  ![Workflow 3](images/workflow3.png)

  **Steps:**
  1. Get pipelines
  2. Get contacts
  3. Set pipeline ID, step ID, deal name, contact ID, currency and price
  4. Create a deal

  <details>
  <summary>JSON</summary>

  ```json
  {
    "name": "Create a deal",
    "nodes": [
      {
        "parameters": {},
        "type": "n8n-nodes-base.manualTrigger",
        "typeVersion": 1,
        "position": [
          0,
          0
        ],
        "id": "20331738-50ec-47c4-892f-015a0eccc636",
        "name": "When clicking ‘Execute workflow’"
      },
      {
        "parameters": {
          "assignments": {
            "assignments": [
              {
                "id": "444749f2-d83c-4a93-bfed-ba587dc2d16a",
                "name": "pipelineId",
                "value": "={{ $('Get many pipelines').item.json.data[0].id }}",
                "type": "number"
              },
              {
                "id": "c8e19849-6952-4440-bcfe-587b4910d5f1",
                "name": "stepId",
                "value": "={{ $('Get many pipelines').item.json.data[0].steps[0].id }}",
                "type": "number"
              },
              {
                "id": "3f41524f-412d-4a70-8871-a23c615786d6",
                "name": "dealName",
                "value": "Purchase of Electronic Equipment",
                "type": "string"
              },
              {
                "id": "9612e468-854a-4fa6-8e63-9ccddc0a247d",
                "name": "contactId",
                "value": "={{ $json.data.list[0].id }}",
                "type": "number"
              },
              {
                "id": "8d89b9f5-517a-4a97-8f22-ec683387a26e",
                "name": "currency",
                "value": "EUR",
                "type": "string"
              },
              {
                "id": "3cdbfd58-33b3-4ca2-9689-5215ba6aff7f",
                "name": "price",
                "value": 5000,
                "type": "number"
              }
            ]
          },
          "options": {}
        },
        "type": "n8n-nodes-base.set",
        "typeVersion": 3.4,
        "position": [
          624,
          0
        ],
        "id": "21c95abb-3aa6-4dac-ae9f-0a05c3c62cf5",
        "name": "Workflow Configuration"
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "resource": "deal",
          "operation": "create",
          "pipelineId": "={{ $json.pipelineId }}",
          "stepId": "={{ $json.stepId }}",
          "name": "={{ $json.dealName }}",
          "additionalFields": {
            "contactIds": [
              "={{ $json.contactId }}"
            ],
            "currency": "={{ $json.currency }}",
            "price": "={{ $json.price }}"
          },
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseCrm",
        "typeVersion": 1,
        "position": [
          832,
          0
        ],
        "id": "68c9ba9b-515e-4294-b202-cdeada51551f",
        "name": "Create a deal",
        "credentials": {
          "sendPulseApi": {
            "id": "vgJTBLhnSy833qmE",
            "name": "SendPulse account"
          }
        }
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "additionalFields": {},
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseCrm",
        "typeVersion": 1,
        "position": [
          416,
          0
        ],
        "id": "c8f0757b-e21e-43f0-b025-10db61dc6841",
        "name": "Get many contacts",
        "credentials": {
          "sendPulseApi": {
            "id": "vgJTBLhnSy833qmE",
            "name": "SendPulse account"
          }
        }
      },
      {
        "parameters": {
          "authentication": "accessToken",
          "resource": "pipeline",
          "requestOptions": {}
        },
        "type": "CUSTOM.sendPulseCrm",
        "typeVersion": 1,
        "position": [
          208,
          0
        ],
        "id": "6ef77dd7-c0bb-47c1-9653-77f19b6a3950",
        "name": "Get many pipelines"
      }
    ],
    "pinData": {},
    "connections": {
      "When clicking ‘Execute workflow’": {
        "main": [
          [
            {
              "node": "Get many pipelines",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Workflow Configuration": {
        "main": [
          [
            {
              "node": "Create a deal",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Create a deal": {
        "main": [
          []
        ]
      },
      "Get many contacts": {
        "main": [
          [
            {
              "node": "Workflow Configuration",
              "type": "main",
              "index": 0
            }
          ]
        ]
      },
      "Get many pipelines": {
        "main": [
          [
            {
              "node": "Get many contacts",
              "type": "main",
              "index": 0
            }
          ]
        ]
      }
    },
    "active": false,
    "settings": {
      "executionOrder": "v1"
    },
    "versionId": "789d96b0-448e-4496-a469-f96951fca290",
    "meta": {
      "templateCredsSetupCompleted": true,
      "instanceId": "791011c5d912fa3910b1b3f0a58e52e888701c971bd92f7e7fc8373a23481dcb"
    },
    "id": "IQryYdrRhRkFQQf7",
    "tags": []
  }
  ```
  </details> 

  ## 🧬 Compatibility

  Tested with n8n version 1.123.4.

  ## 📖 Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [SendPulse Website](https://sendpulse.com)
  * [SendPulse REST API Documentation](https://sendpulse.com/integrations/api)
  * [SendPulse Knowledge Base](https://sendpulse.com/knowledge-base)
  * [SendPulse Community](https://community.sendpulse.com)
  * [SendPulse Blog](https://sendpulse.com/blog)

  ## 📄 License

  [MIT](LICENSE.md)

  Copyright © 2025 SendPulse

ai_documentation_summary:
  {"purpose":"The SendPulse Automation360 node enables interaction with the SendPulse API to manage marketing automation flows, including retrieving flow lists and individual flow details.","capabilities":["Retrieve multiple automation flows","Retrieve a single automation flow by ID","Integrate SendPulse CRM, Email, SMS, and Chatbot features via n8n workflows"],"authentication":"OAuth2 (Client ID and Client Secret required to obtain an access token)","commonUseCases":["Automating customer journey triggers from external apps","Syncing customer data between n8n and SendPulse CRM","Centralizing marketing experiments and growth tracking"],"limitations":["Only supports the most popular SendPulse APIs; some API endpoints may be missing","Missing API endpoints can be bypassed using the generic HTTP Request node"],"relatedNodes":["n8n-nodes-base.httprequest","SendPulse Email","SendPulse CRM","SendPulse SMS","SendPulse Chatbots"]}


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

updated_at: 2026-03-25 21:19:40
author_name: andreas-ullrich-elunic
author_github_url: https://github.com/starhunter-gmbh/n8n-nodes-graphql.git
npm_package_name: @starhunter/n8n-nodes-graphql
npm_version: 0.2.2
community_fetched_at: 2026-03-25T21:19:40.676Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "person",
      "options": [
        {
          "name": "Candidate",
          "value": "candidate"
        },
        {
          "name": "Email",
          "value": "email"
        },
        {
          "name": "Employee",
          "value": "employee"
        },
        {
          "name": "Person",
          "value": "person"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Project Candidate",
          "value": "projectCandidate"
        },
        {
          "name": "Task",
          "value": "task"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getBirthdays",
      "options": [
        {
          "name": "Get Birthdays",
          "value": "getBirthdays",
          "action": "Get persons with birthdays on a date",
          "description": "Get all persons with birthdays on a specific date"
        },
        {
          "name": "Get by ID",
          "value": "getById",
          "action": "Get a person by ID",
          "description": "Retrieve a single person by their ID"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search persons",
          "description": "Search for persons by name"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "person"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search candidates",
          "description": "Search for candidates by ID, name, or birth date"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "candidate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Get Current User",
          "value": "getCurrent",
          "action": "Get current authenticated user",
          "description": "Get the employee record for the authenticated user"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search employees",
          "description": "Search for employees by ID or name"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "employee"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "log",
      "options": [
        {
          "name": "Log Email",
          "value": "log",
          "action": "Log an email activity",
          "description": "Log an email activity in Starhunter"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "email"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "add",
      "options": [
        {
          "name": "Add to Project",
          "value": "add",
          "action": "Add candidate to project",
          "description": "Add a candidate to a project with optional status"
        },
        {
          "name": "Get By Status Change Date",
          "value": "getByStatusChangeDate",
          "action": "Get candidates by status change date",
          "description": "Get project candidates whose status changed X days ago"
        },
        {
          "name": "Update Status",
          "value": "updateStatus",
          "action": "Update presentation status",
          "description": "Update the status of a presentation with optional comment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "projectCandidate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task",
          "description": "Create a new task in Starhunter"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search projects",
          "description": "Search for projects by status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Birthdays",
      "value": "getBirthdays",
      "action": "Get persons with birthdays on a date",
      "description": "Get all persons with birthdays on a specific date"
    },
    {
      "name": "Get by ID",
      "value": "getById",
      "action": "Get a person by ID",
      "description": "Retrieve a single person by their ID"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search persons",
      "description": "Search for persons by name"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search candidates",
      "description": "Search for candidates by ID, name, or birth date"
    },
    {
      "name": "Get Current User",
      "value": "getCurrent",
      "action": "Get current authenticated user",
      "description": "Get the employee record for the authenticated user"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search employees",
      "description": "Search for employees by ID or name"
    },
    {
      "name": "Log Email",
      "value": "log",
      "action": "Log an email activity",
      "description": "Log an email activity in Starhunter"
    },
    {
      "name": "Add to Project",
      "value": "add",
      "action": "Add candidate to project",
      "description": "Add a candidate to a project with optional status"
    },
    {
      "name": "Get By Status Change Date",
      "value": "getByStatusChangeDate",
      "action": "Get candidates by status change date",
      "description": "Get project candidates whose status changed X days ago"
    },
    {
      "name": "Update Status",
      "value": "updateStatus",
      "action": "Update presentation status",
      "description": "Update the status of a presentation with optional comment"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "description": "Create a new task in Starhunter"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search projects",
      "description": "Search for projects by status"
    }
  ]

npm_readme:
  # @starhunter/n8n-nodes-graphql

  This is an n8n community node that integrates with [Starhunter](https://starhunter.com) in your n8n workflows.

  Starhunter is a customer relationship management (CRM) system designed for recruiting and talent management. This node allows you to automate interactions with persons, candidates, employees, emails, project candidates, and tasks in Starhunter.

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

  ## Installation

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

  ## Operations

  ### Person

  - **Get Birthdays**: Retrieve persons whose birthday falls on a specific date (today or a custom date in MM-DD format)
  - **Get by ID**: Retrieve a single person by their ID
  - **Search**: Search for persons by name (partial match supported)

  ### Candidate

  - **Search**: Search for candidates by ID, name, or birth date

  ### Employee

  - **Get Current**: Get the employee record for the currently authenticated user
  - **Search**: Search for employees by ID or name

  ### Email

  - **Log**: Log an email activity in Starhunter (records sender, recipient, subject, and body)

  ### Project Candidate

  - **Get by Status Change Date**: Retrieve project candidates whose status changed a specified number of days ago

  ### Task

  - **Create**: Create a new task with optional deadline, assignee, and target entity

  ## Credentials

  To use this node, you need to authenticate with your Starhunter instance using an API access token.

  ### Prerequisites

  1. Access to a Starhunter instance
  2. A valid API access token from your Starhunter account settings

  ### Setting up credentials in n8n

  1. In n8n, go to **Credentials** and click **Add Credential**
  2. Search for **Starhunter API**
  3. Enter the following:
     - **Base URL**: The base URL of your Starhunter instance (e.g., `https://your-company.starhunter.software`).
     - **Access Token**: Your Starhunter API access token
  4. Click **Save** to test the connection

  For API documentation, refer to your instance's built-in docs at `https://<your-instance>.starhunter.software/Api/docs`.

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **n8n Nodes API version**: 1
  - **AI Tool compatible**: Yes (can be used as a tool in n8n AI workflows)

  Tested with n8n version 1.x.

  ## Usage

  ### Example: Birthday notifications

  Create a workflow that runs daily to fetch persons with birthdays today and send notification emails or Slack messages to your team.

  1. Add a **Schedule Trigger** node set to run daily
  2. Add the **Starhunter** node with:
     - Resource: Person
     - Operation: Get Birthdays
     - Use Today: enabled
  3. Connect to an **Email** or **Slack** node to send notifications

  ### Example: Log emails to CRM

  Automatically log emails sent through your workflow back to Starhunter for tracking purposes.

  1. After sending an email in your workflow, add the **Starhunter** node
  2. Configure with:
     - Resource: Email
     - Operation: Log
     - Map the from, to, subject, and body fields from your email node

  ### Example: Track candidate status changes

  Monitor candidates who changed status a specific number of days ago for follow-up actions.

  1. Add a **Schedule Trigger** node
  2. Add the **Starhunter** node with:
     - Resource: Project Candidate
     - Operation: Get by Status Change Date
     - Status: Your target status (e.g., "Ident")
     - Days Ago: Number of days to look back

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Starhunter](https://starhunter.software)

  ## Version history

  ### 0.1.1

  - Initial public release
  - Added publishConfig for npm public access

  ### 0.1.0

  - Initial release with support for:
    - Person operations (Get Birthdays, Get by ID, Search)
    - Candidate operations (Search)
    - Employee operations (Get Current, Search)
    - Email operations (Log)
    - Project Candidate operations (Get by Status Change Date)
    - Task operations (Create)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of interactions within the Starhunter CRM system, covering recruiting and talent management tasks.","capabilities":["Retrieve persons by ID, search by name, or get birthdays for a specific date","Search for candidates by ID, name, or birth date","Retrieve current authenticated employee record","Search for employees by ID or name","Log email activities (sender, recipient, subject, body) into Starhunter","Retrieve project candidates based on status change date","Create new tasks with deadline, assignee, and target entity"],"authentication":"API key required (Starhunter API access token)","commonUseCases":["Automated birthday notifications for employees","Tracking candidate status changes for follow-up actions","Logging workflow-generated emails into the CRM","Retrieving current user employee profile"],"limitations":["Requires access to a Starhunter instance","Requires a valid API access token from Starhunter account settings"],"relatedNodes":["n8n Schedule Trigger","n8n Email","n8n Slack"]}


node_type: n8n-nodes-pagbank-connect.pagBank
package_name: n8n-nodes-pagbank-connect
display_name: PagBank
description: Integration with PagBank for payment processing
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-03-25 21:19:40
author_name: r-martins
author_github_url: https://github.com/r-martins/PagBank-n8n.git
npm_package_name: n8n-nodes-pagbank-connect
npm_version: 2.0.2
community_fetched_at: 2026-03-25T21:19:40.677Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "createPaymentLink",
      "options": [
        {
          "name": "Create Payment Link",
          "value": "createPaymentLink",
          "action": "Create payment link",
          "description": "Create a payment link"
        },
        {
          "name": "Create PIX Order",
          "value": "createPixOrder",
          "action": "Create PIX order",
          "description": "Create an order with PIX payment"
        },
        {
          "name": "Get Order Status",
          "value": "getOrderStatus",
          "action": "Get order status",
          "description": "Retrieve the status of an order"
        },
        {
          "name": "Create Credit Card Charge",
          "value": "createCreditCardCharge",
          "action": "Create credit card charge",
          "description": "Create a direct credit card charge"
        },
        {
          "name": "Get Connect Key",
          "value": "validateConnectKey",
          "action": "Get Connect Key",
          "description": "Retrieve Connect Key information"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Payment Link",
      "value": "createPaymentLink",
      "action": "Create payment link",
      "description": "Create a payment link"
    },
    {
      "name": "Create PIX Order",
      "value": "createPixOrder",
      "action": "Create PIX order",
      "description": "Create an order with PIX payment"
    },
    {
      "name": "Get Order Status",
      "value": "getOrderStatus",
      "action": "Get order status",
      "description": "Retrieve the status of an order"
    },
    {
      "name": "Create Credit Card Charge",
      "value": "createCreditCardCharge",
      "action": "Create credit card charge",
      "description": "Create a direct credit card charge"
    },
    {
      "name": "Get Connect Key",
      "value": "validateConnectKey",
      "action": "Get Connect Key",
      "description": "Retrieve Connect Key information"
    }
  ]

npm_readme:
  # n8n-nodes-pagbank-connect

  n8n integration with PagBank Connect for Brazilian payment processing.


  ![NPM Downloads](https://img.shields.io/npm/d18m/n8n-nodes-pagbank-connect?label=downloads%20last%2018%20months)
  ![NPM Version](https://img.shields.io/npm/v/n8n-nodes-pagbank-connect)
  ![NPM License](https://img.shields.io/npm/l/n8n-nodes-pagbank-connect)
  ![NPM Last Update](https://img.shields.io/npm/last-update/n8n-nodes-pagbank-connect)

  ## Features

  - ✅ **PIX** - Instant payments with QR Code
  - ✅ **Credit/Debit Card** - Secure card processing
  - ✅ **Payment Links** - Custom checkout
  - ✅ **Recurring Subscriptions** - Recurring payments (coming soon)
  - ✅ **Webhooks** - Real-time notifications
  - ✅ **Sandbox Environment** - Safe testing
  - ✅ **Official Partner** - [PagBank Integrations](https://pbintegracoes.com/?utm_source=n8n) is an Official PagBank Partner since 2014.
  - ✅ **Reduced fees** - You pay less fees on PagBank when using our integrations

  ## Installation

  ```bash
  npm install n8n-nodes-pagbank-connect
  ```

  ## Configuration

  ### 1. Get Credentials

  Visit [PagBank Connect](https://pbintegracoes.com/connect/autorizar/?utm_source=n8n) to get your Connect Key for free

  If you need a Test Connect Key, [click here](https://pbintegracoes.com/connect/sandbox/?utm_source=n8n).

  ### 2. Configure in n8n

  1. Add your Connect key in PagBank Connect credentials
  2. Click Save and check if the connection was successful.

  ## Available Nodes

  ### PagBank (Main)
  - **Create Payment Link** - Generates checkout links for customers to pay on PagBank
  - **Create PIX Order** - Creates PIX payments
  - **Create Credit Card Charge** - Processes a payment with the provided credit card data
  - **Check order status** - Queries the status of an ORDER with PagBank (must have been generated with this connect key)
  - **Validate Connect Key** - Validates the Connect Key configured in your credentials

  ### PagBank Connect Trigger
  - **Payment Trigger** - Receives notifications. You can filter notifications by payment status, payment methods or denial reason.

  ## Data Format

  ### Monetary Values
  All values are in **cents**:
  - R$ 10.00 = 1000
  - R$ 1.50 = 150

  ### CPF/CNPJ
  - CPF: 11 digits (numbers only)
  - CNPJ: 14 digits (numbers only)

  Required for most operations, except payment link creation.

  ## Environments

  ### Sandbox (Test)
  - The environment will be for testing whenever your Connect Key starts with *CONSANDBOX*. Get yours [here](https://pbintegracoes.com/connect/sandbox/?utm_source=n8n).
  - Automatic approval for values < R$ 100
  - 5 minute delay for values between R$ 100-200
  - Ideal for development and testing
  - See [Test Cards](https://ajuda.pbintegracoes.com/hc/pt-br/articles/22375426666253-Cartões-de-Crédito-para-Testes-PagBank)

  ### Production
  - Real payment processing
  - Requires PagBank approval
  - Use only after complete testing

  ## Webhooks

  ### Configuration
  1. Configure the webhook URL in n8n
  2. Add the generated URL in the *Notification URL* field when creating payments and payment links in other actions
  3. Configure filters by status and payment method
  4. Make sure the URL can be accessed from outside without any blocking.

  ### Common Errors
  - **40002 - Buyer email same as seller
  - **40002 - Invalid CPF/CNPJ
  - **40002 - Invalid phone
  - **UNAUTHORIZED - Invalid Connect Key

  ### Validations
  - CPF/CNPJ are automatically validated
  - Phones are formatted

  ## Support

  - **Official Site**: [pbintegracoes.com/n8n](https://pbintegracoes.com/n8n/?utm_source=n8n&utm_medium=github-readme)
  - **Documentation**: [PagBank Integrations](https://ajuda.pbintegracoes.com/hc/pt-br/categories/40055834503053-n8n)
  - **Issues and Support**: [Open a Ticket](https://ajuda.pbintegracoes.com/hc/pt-br/requests/new)

  ## License

  MIT License - see LICENSE file for details.

  ## Contributing

  1. Fork the [project on github](https://github.com/r-martins/PagBank-n8n)
  2. Create a branch for your feature/bugfix
  3. Commit your changes
  4. Push to your local branch
  5. Open a Pull Request to the `develop` branch


  ## Roadmap
  - More installment options
  - Recurring sales

  Subject to change based on community requests.

ai_documentation_summary:
  {"purpose":"This n8n node enables integration with PagBank Connect for processing Brazilian payments, including PIX, credit/debit cards, and payment links.","capabilities":["Create PIX orders with QR Code","Create payment links for custom checkout","Process credit/debit card charges","Check order status","Validate Connect Key","Receive payment webhooks with filtering","Support sandbox and production environments"],"authentication":"API Key required (PagBank Connect Key)","commonUseCases":["Accepting instant PIX payments from Brazilian customers","Processing recurring subscriptions (future feature)","Creating custom checkout payment links","Testing payment flows in sandbox environment","Receiving real-time payment notifications via webhooks"],"limitations":["Recurring subscriptions are marked as 'coming soon'","Monetary values must be entered in cents (not real currency)","CPF/CNPJ validation is required for most operations","Sandbox environment has automatic approval limits and delays","Production requires PagBank approval before use"],"relatedNodes":["Webhook node","Payment node","HTTP Request node"]}


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

updated_at: 2026-03-25 21:19:40
author_name: pinecone-ops
author_github_url: https://github.com/pinecone-io/n8n-nodes-pinecone-assistant.git
npm_package_name: @pinecone-database/n8n-nodes-pinecone-assistant
npm_version: 0.1.10
community_fetched_at: 2026-03-25T21:19:40.677Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-pinecone-assistant

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

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

  ## Installation

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

  ## Operations

  ### Assistants

  #### List Assistants

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

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

  ##### Output

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

  ### Files

  #### List Files

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

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

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

  ##### Output

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

  #### Upload File

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

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

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

  ##### Output

  Returns the uploaded file information.

  #### Update File

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

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

  ##### Output

  Returns the updated file information.

  #### Delete File

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

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

  ##### Output

  Returns a confirmation object with `deleted: true`.

  ### Context Snippets

  #### Get Context Snippets

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

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

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

  ##### Output

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

  ## Credentials

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

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

  ## Compatibility

  This node was tested locally against n8n 2.9.4.

  ## Usage

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

  ## Version history

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

  ## Node development

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

  1. Install dependencies

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

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

  ```bash
  $ pnpm run build
  ```

  Running this will clean the `dist` folder.

  3. Test the node

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

  ```bash
  $ pnpm run dev
  ```

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

  4. Run tests

  Run the unit test suite.

  ```bash
  $ pnpm test
  ```

  5. Versioning the node

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

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

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

  6. Release the node and publish to npm

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

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

  To release a new version:

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

  ## Contributing

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

  ## License

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

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


