# nodes

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

updated_at: 2026-04-16 09:43:35
author_name: stefanvdlugt.dongit
author_github_url: https://github.com/dongit-org/n8n-nodes-reporter.git
npm_package_name: @dongit/n8n-nodes-reporter
npm_version: 2026.4.13
community_fetched_at: 2026-04-16T09:43:35.939Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "activity",
      "options": [
        {
          "name": "Activity",
          "value": "activity"
        },
        {
          "name": "Assessment",
          "value": "assessment"
        },
        {
          "name": "Assessment Comment",
          "value": "assessmentComment"
        },
        {
          "name": "Assessment Phase",
          "value": "assessmentPhase"
        },
        {
          "name": "Assessment Section",
          "value": "assessmentSection"
        },
        {
          "name": "Assessment Section Comment",
          "value": "assessmentSectionComment"
        },
        {
          "name": "Assessment Task Set",
          "value": "assessmentTaskSet"
        },
        {
          "name": "Assessment Template",
          "value": "assessmentTemplate"
        },
        {
          "name": "Assessment User",
          "value": "assessmentUser"
        },
        {
          "name": "Client",
          "value": "client"
        },
        {
          "name": "Custom Field",
          "value": "customField"
        },
        {
          "name": "Document",
          "value": "document"
        },
        {
          "name": "Finding",
          "value": "finding"
        },
        {
          "name": "Finding Event",
          "value": "findingEvent"
        },
        {
          "name": "Finding Layout",
          "value": "findingLayout"
        },
        {
          "name": "Finding Template",
          "value": "findingTemplate"
        },
        {
          "name": "Language",
          "value": "language"
        },
        {
          "name": "Output File",
          "value": "outputFile"
        },
        {
          "name": "Reaction",
          "value": "reaction"
        },
        {
          "name": "Role",
          "value": "role"
        },
        {
          "name": "Target",
          "value": "target"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Task Set",
          "value": "taskSet"
        },
        {
          "name": "Team",
          "value": "team"
        },
        {
          "name": "Team User",
          "value": "teamUser"
        },
        {
          "name": "Test Case",
          "value": "testCase"
        },
        {
          "name": "Theme",
          "value": "theme"
        },
        {
          "name": "Tool Finding",
          "value": "toolFinding"
        },
        {
          "name": "Tool Target",
          "value": "toolTarget"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listActivities",
      "options": [
        {
          "name": "List activities",
          "value": "listActivities",
          "action": "List activities",
          "description": "Retrieve a list of all accessible activities. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "activity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAssessments",
      "options": [
        {
          "name": "List assessments",
          "value": "listAssessments",
          "action": "List assessments",
          "description": "Retrieve a list of all accessible assessments. Object information."
        },
        {
          "name": "Create an assessment",
          "value": "createAnAssessment",
          "action": "Create an assessment",
          "description": "Create a new assessment. Object information."
        },
        {
          "name": "Retrieve an assessment",
          "value": "retrieveAnAssessment",
          "action": "Retrieve an assessment",
          "description": "Retrieve all details of the given assessment. Object information."
        },
        {
          "name": "Update an assessment",
          "value": "updateAnAssessment",
          "action": "Update an assessment",
          "description": "Update the posted assessment. Object information."
        },
        {
          "name": "Retrieve the full PDF report",
          "value": "retrieveTheFullPDFReport",
          "action": "Retrieve the full PDF report",
          "description": "This route supports both GET and POST requests. The POST request supports passing a password that will be used to encrypt the resulting PDF report. If an admin has enabled the \"Password-protect PDF..."
        },
        {
          "name": "Retrieve the management PDF report",
          "value": "retrieveTheManagementPDFReport",
          "action": "Retrieve the management PDF report",
          "description": "This route supports both GET and POST requests. The POST request supports passing a password that will be used to encrypt the resulting PDF report. If an admin has enabled the \"Password-protect PDF..."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assessment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createAnAssessmentComment",
      "options": [
        {
          "name": "Create an assessment comment",
          "value": "createAnAssessmentComment",
          "action": "Create an assessment comment",
          "description": "Create a new assessment comment. Object information."
        },
        {
          "name": "Update an assessment comment",
          "value": "updateAnAssessmentComment",
          "action": "Update an assessment comment",
          "description": "Update an existing assessment comment. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assessmentComment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "updateAnAssessmentPhase",
      "options": [
        {
          "name": "Update an assessment phase",
          "value": "updateAnAssessmentPhase",
          "action": "Update an assessment phase",
          "description": "Update an existing assessment phase. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assessmentPhase"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "retrieveAnAssessmentSection",
      "options": [
        {
          "name": "Retrieve an assessment section",
          "value": "retrieveAnAssessmentSection",
          "action": "Retrieve an assessment section",
          "description": "Retrieve all details of the given assessment section. Object information."
        },
        {
          "name": "Update an assessment section",
          "value": "updateAnAssessmentSection",
          "action": "Update an assessment section",
          "description": "Update an existing assessment section. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assessmentSection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createAnAssessmentSectionComment",
      "options": [
        {
          "name": "Create an assessment section comment",
          "value": "createAnAssessmentSectionComment",
          "action": "Create an assessment section comment",
          "description": "Create a new assessment section comment. Object information."
        },
        {
          "name": "Update an assessment section comment",
          "value": "updateAnAssessmentSectionComment",
          "action": "Update an assessment section comment",
          "description": "Update an existing assessment section comment. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assessmentSectionComment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "addATaskSetToAnAssessment",
      "options": [
        {
          "name": "Add a task set to an assessment",
          "value": "addATaskSetToAnAssessment",
          "action": "Add a task set to an assessment",
          "description": "Assign an existing task set's tasks to an assessment."
        },
        {
          "name": "Remove a task set from an assessment",
          "value": "removeATaskSetFromAnAssessment",
          "action": "Remove a task set from an assessment",
          "description": "Remove a task set's tasks from an assessment. This does **not** delete the task set. It just removes its tasks from the assessment."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assessmentTaskSet"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listAssessmentTemplates",
      "options": [
        {
          "name": "List assessment templates",
          "value": "listAssessmentTemplates",
          "action": "List assessment templates",
          "description": "Retrieve a list of all accessible assessment templates. Object information."
        },
        {
          "name": "Retrieve an assessment template",
          "value": "retrieveAnAssessmentTemplate",
          "action": "Retrieve an assessment template",
          "description": "Retrieve all details of the given assessment template. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assessmentTemplate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createAnAssessmentUser",
      "options": [
        {
          "name": "Create an assessment user",
          "value": "createAnAssessmentUser",
          "action": "Create an assessment user",
          "description": "Assign an existing user to an assessment. Object information."
        },
        {
          "name": "Update an assessment user",
          "value": "updateAnAssessmentUser",
          "action": "Update an assessment user",
          "description": "Update assessment-specific values for a user assigned to the assessment. Object information. To update the user's data, such as name and email address, see the User endpoints."
        },
        {
          "name": "Remove an assessment user",
          "value": "removeAnAssessmentUser",
          "action": "Remove an assessment user",
          "description": "Remove a user from an assessment. Object information. A user can not be removed this way if they are assigned to the assessment through a team. This does **not** delete the user, it just revokes th..."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assessmentUser"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listClients",
      "options": [
        {
          "name": "List clients",
          "value": "listClients",
          "action": "List clients",
          "description": "Retrieve a list of all accessible clients. Object information. To also retrieve the logos of the clients, specify the \"documents\" relation in the request. See Including Related Data."
        },
        {
          "name": "Create a client",
          "value": "createAClient",
          "action": "Create a client",
          "description": "Create a new client. Object information. To add a logo to a client, attach a document representing the logo to it in a separate request. See Documents."
        },
        {
          "name": "Retrieve a client",
          "value": "retrieveAClient",
          "action": "Retrieve a client",
          "description": "Retrieve all details of the given client. Object information. To also retrieve the logo of the client, specify the \"documents\" relation in the request. See Including Related Data."
        },
        {
          "name": "Update a client",
          "value": "updateAClient",
          "action": "Update a client",
          "description": "Update an existing client. Object information. To add or replace a logo for a client, create a document for it in a separate request. This will overwrite the existing avatar. See Documents."
        },
        {
          "name": "Update client managers",
          "value": "updateClientManagers",
          "action": "Update client managers",
          "description": "Update the list of client managers for a client. Client managers can manage this list but cannot remove themselves."
        },
        {
          "name": "Remove account manager",
          "value": "removeAccountManager",
          "action": "Remove account manager",
          "description": "Remove an account manager from the client. Optionally, specify assessments to unassign the manager from."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "client"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listCustomFields",
      "options": [
        {
          "name": "List custom fields",
          "value": "listCustomFields",
          "action": "List custom fields",
          "description": "Retrieve a list of all accessible custom fields Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "customField"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "retrieveADocument",
      "options": [
        {
          "name": "Retrieve a document",
          "value": "retrieveADocument",
          "action": "Retrieve a document",
          "description": "Retrieve the stored file contents of the given document. Object information."
        },
        {
          "name": "Upload a document",
          "value": "uploadADocument",
          "action": "Upload a document",
          "description": "Upload a new (draft) document. Object information. Use `Content-Type: multipart/form-data` for this request."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "document"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listFindings",
      "options": [
        {
          "name": "List findings",
          "value": "listFindings",
          "action": "List findings",
          "description": "Retrieve a list of all accessible findings. Object information."
        },
        {
          "name": "Create a finding",
          "value": "createAFinding",
          "action": "Create a finding",
          "description": "Create a new finding. Object information."
        },
        {
          "name": "Retrieve a finding",
          "value": "retrieveAFinding",
          "action": "Retrieve a finding",
          "description": "Retrieve all details of the given finding. Object information."
        },
        {
          "name": "Update a finding",
          "value": "updateAFinding",
          "action": "Update a finding",
          "description": "Update an existing finding. Object information."
        },
        {
          "name": "Create a finding from a template",
          "value": "createAFindingFromATemplate",
          "action": "Create a finding from a template",
          "description": "Create a new finding from a finding template. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "finding"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listFindingEvents",
      "options": [
        {
          "name": "List finding events",
          "value": "listFindingEvents",
          "action": "List finding events",
          "description": "Retrieve a list of all accessible finding events. Object information."
        },
        {
          "name": "Create a finding comment",
          "value": "createAFindingComment",
          "action": "Create a finding comment",
          "description": "Create a new finding comment. Object information. Note that comments added before the publication of the finding are displayed as child comments of the 'created event' of the finding."
        },
        {
          "name": "Update a finding comment",
          "value": "updateAFindingComment",
          "action": "Update a finding comment",
          "description": "Update an existing finding comment. Object information."
        },
        {
          "name": "Create a finding retest",
          "value": "createAFindingRetest",
          "action": "Create a finding retest",
          "description": "Perform a retest. Object information. You can only create a retest if the finding has a retest inquiry that doesn't already have a retest."
        },
        {
          "name": "Update a finding retest",
          "value": "updateAFindingRetest",
          "action": "Update a finding retest",
          "description": "Update an existing finding retest. Object information."
        },
        {
          "name": "Create a finding retest inquiry",
          "value": "createAFindingRetestInquiry",
          "action": "Create a finding retest inquiry",
          "description": "Request a retest. Object information. Creating a new retest inquiry for a finding is not allowed if the status of the finding is set to 'Retest Pending.' The finding status is set to 'Retest Pendin..."
        },
        {
          "name": "Update a retest inquiry",
          "value": "updateARetestInquiry",
          "action": "Update a retest inquiry",
          "description": "Update an existing finding retest inquiry. Object information."
        },
        {
          "name": "Create a finding retest cancelled event",
          "value": "createAFindingRetestCancelledEvent",
          "action": "Create a finding retest cancelled event",
          "description": "Cancel a retest request. Object information. You can only cancel a retest if the finding has a retest inquiry that doesn't already have a retest."
        },
        {
          "name": "Update a retest cancelled event",
          "value": "updateARetestCancelledEvent",
          "action": "Update a retest cancelled event",
          "description": "Update an existing finding retest cancelled event. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "findingEvent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listFindingLayouts",
      "options": [
        {
          "name": "List finding layouts",
          "value": "listFindingLayouts",
          "action": "List finding layouts",
          "description": "Retrieve a list of all finding layouts. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "findingLayout"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchFindingTemplates",
      "options": [
        {
          "name": "Search finding templates",
          "value": "searchFindingTemplates",
          "action": "Search finding templates",
          "description": "Search for finding templates. It is not possible to include relations or filter the search. Object information. If a search term is submitted and neither \"prefer_language\" nor \"language_id\" are, th..."
        },
        {
          "name": "List finding templates",
          "value": "listFindingTemplates",
          "action": "List finding templates",
          "description": "Retrieve a list of all accessible finding templates. Object information."
        },
        {
          "name": "Create a finding template",
          "value": "createAFindingTemplate",
          "action": "Create a finding template",
          "description": "Create a new finding template. Object information."
        },
        {
          "name": "Retrieve a finding template",
          "value": "retrieveAFindingTemplate",
          "action": "Retrieve a finding template",
          "description": "Retrieve all details of the given finding. Object information."
        },
        {
          "name": "Update a finding template",
          "value": "updateAFindingTemplate",
          "action": "Update a finding template",
          "description": "Update an existing finding template. Object information. Only custom finding templates (`source`: 0) can be updated."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "findingTemplate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listLanguages",
      "options": [
        {
          "name": "List languages",
          "value": "listLanguages",
          "action": "List languages",
          "description": "Retrieve a list of all languages. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "language"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadAnOutputFileToParse",
      "options": [
        {
          "name": "Upload an output file to parse",
          "value": "uploadAnOutputFileToParse",
          "action": "Upload an output file to parse",
          "description": "Create a new output file. Object information. Once created, the file will be parsed in the background."
        },
        {
          "name": "List output files",
          "value": "listOutputFiles",
          "action": "List output files",
          "description": "Retrieve a list of all output files. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "outputFile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createAReaction",
      "options": [
        {
          "name": "Create a reaction",
          "value": "createAReaction",
          "action": "Create a reaction",
          "description": "Adds a reaction to the provided model, if that reaction does not exist for the current user. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "reaction"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listGlobalRoles",
      "options": [
        {
          "name": "List global roles",
          "value": "listGlobalRoles",
          "action": "List global roles",
          "description": "Retrieve a list of global roles. Object information."
        },
        {
          "name": "List assessment roles",
          "value": "listAssessmentRoles",
          "action": "List assessment roles",
          "description": "Retrieve a list of assessment roles. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "role"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listTargets",
      "options": [
        {
          "name": "List targets",
          "value": "listTargets",
          "action": "List targets",
          "description": "Retrieve a list of all accessible targets. Object information."
        },
        {
          "name": "Create a target",
          "value": "createATarget",
          "action": "Create a target",
          "description": "Create a new target. Object information."
        },
        {
          "name": "Retrieve a target",
          "value": "retrieveATarget",
          "action": "Retrieve a target",
          "description": "Retrieve all details of the given target. Object information."
        },
        {
          "name": "Update a target",
          "value": "updateATarget",
          "action": "Update a target",
          "description": "Update an existing target. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "target"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listTasks",
      "options": [
        {
          "name": "List tasks",
          "value": "listTasks",
          "action": "List tasks",
          "description": "Retrieve a list of all tasks. Object information."
        },
        {
          "name": "Retrieve a task",
          "value": "retrieveATask",
          "action": "Retrieve a task",
          "description": "Retrieve all details of the given task. Object information."
        },
        {
          "name": "Update a task",
          "value": "updateATask",
          "action": "Update a task",
          "description": "Update an existing task. Object information."
        },
        {
          "name": "Create a task",
          "value": "createATask",
          "action": "Create a task",
          "description": "Create a new task. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listTaskSets",
      "options": [
        {
          "name": "List task sets",
          "value": "listTaskSets",
          "action": "List task sets",
          "description": "Retrieve a list of all task sets. Object information."
        },
        {
          "name": "Create a task set",
          "value": "createATaskSet",
          "action": "Create a task set",
          "description": "Create a new task set. Object information."
        },
        {
          "name": "Retrieve a task set",
          "value": "retrieveATaskSet",
          "action": "Retrieve a task set",
          "description": "Retrieve all details of the given task set. Object information."
        },
        {
          "name": "Update a task set",
          "value": "updateATaskSet",
          "action": "Update a task set",
          "description": "Update an existing task set. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "taskSet"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createATeam",
      "options": [
        {
          "name": "Create a team",
          "value": "createATeam",
          "action": "Create a team",
          "description": "Create a new team. Object information."
        },
        {
          "name": "Update a team",
          "value": "updateATeam",
          "action": "Update a team",
          "description": "Update an existing team. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "team"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "addAUserToATeam",
      "options": [
        {
          "name": "Add a user to a team",
          "value": "addAUserToATeam",
          "action": "Add a user to a team",
          "description": "Assign an existing user to a team. Object information."
        },
        {
          "name": "Update a team user",
          "value": "updateATeamUser",
          "action": "Update a team user",
          "description": "Update team-specific values for a user assigned to the team. Object information. To update the user's data, such as name and email address, see the User endpoints."
        },
        {
          "name": "Remove a user from a team",
          "value": "removeAUserFromATeam",
          "action": "Remove a user from a team",
          "description": "Remove a user from a team. Object information. This does **not** delete the user, it just removes them from the team."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "teamUser"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listTestCases",
      "options": [
        {
          "name": "List test cases",
          "value": "listTestCases",
          "action": "List test cases",
          "description": "Retrieve a list of all accessible test cases. Object information."
        },
        {
          "name": "Retrieve a test case",
          "value": "retrieveATestCase",
          "action": "Retrieve a test case",
          "description": "Retrieve all details of the given test case. Object information."
        },
        {
          "name": "Update a test case",
          "value": "updateATestCase",
          "action": "Update a test case",
          "description": "Update an existing test case. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "testCase"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listThemes",
      "options": [
        {
          "name": "List themes",
          "value": "listThemes",
          "action": "List themes",
          "description": "Retrieve a list of all themes. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "theme"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listToolFindings",
      "options": [
        {
          "name": "List tool findings",
          "value": "listToolFindings",
          "action": "List tool findings",
          "description": "Retrieve a list of all tool findings. Object information."
        },
        {
          "name": "Retrieve a tool finding",
          "value": "retrieveAToolFinding",
          "action": "Retrieve a tool finding",
          "description": "Retrieve all details of the given tool finding. Object information."
        },
        {
          "name": "Update a tool finding",
          "value": "updateAToolFinding",
          "action": "Update a tool finding",
          "description": "Update an existing tool finding. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "toolFinding"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listToolTargets",
      "options": [
        {
          "name": "List tool targets",
          "value": "listToolTargets",
          "action": "List tool targets",
          "description": "Retrieve a list of all tool targets. Object information."
        },
        {
          "name": "Update a tool target",
          "value": "updateAToolTarget",
          "action": "Update a tool target",
          "description": "Update the given tool target. Object information."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "toolTarget"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "retrieveTokenUser",
      "options": [
        {
          "name": "Retrieve token user",
          "value": "retrieveTokenUser",
          "action": "Retrieve token user",
          "description": "Retrieve all details of the user who created the API token. No token permissions are required for this request. Object information. To also retrieve the avatars of the users, specify the \"documents..."
        },
        {
          "name": "List users",
          "value": "listUsers",
          "action": "List users",
          "description": "Retrieve a list of all accessible users. Object information. To also retrieve the avatars of the users, specify the \"documents\" relation in the request. See Including Related Data."
        },
        {
          "name": "Create a user",
          "value": "createAUser",
          "action": "Create a user",
          "description": "Create a new user. Object information. To add an avatar to a user, create a document for it in a separate request. See Documents."
        },
        {
          "name": "Retrieve a user",
          "value": "retrieveAUser",
          "action": "Retrieve a user",
          "description": "Retrieve all details of the given user. Object information. To also retrieve the avatars of the users, specify the \"documents\" relation in the request. See Including Related Data."
        },
        {
          "name": "Update a user",
          "value": "updateAUser",
          "action": "Update a user",
          "description": "Update an existing user. Object information. To add or replace an avatar for a user, create a document for it in a separate request. This will overwrite the existing avatar. See Documents."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "List activities",
      "value": "listActivities",
      "action": "List activities",
      "description": "Retrieve a list of all accessible activities. Object information.",
      "resource": "activity"
    },
    {
      "name": "List assessments",
      "value": "listAssessments",
      "action": "List assessments",
      "description": "Retrieve a list of all accessible assessments. Object information.",
      "resource": "assessment"
    },
    {
      "name": "Create an assessment",
      "value": "createAnAssessment",
      "action": "Create an assessment",
      "description": "Create a new assessment. Object information.",
      "resource": "assessment"
    },
    {
      "name": "Retrieve an assessment",
      "value": "retrieveAnAssessment",
      "action": "Retrieve an assessment",
      "description": "Retrieve all details of the given assessment. Object information.",
      "resource": "assessment"
    },
    {
      "name": "Update an assessment",
      "value": "updateAnAssessment",
      "action": "Update an assessment",
      "description": "Update the posted assessment. Object information.",
      "resource": "assessment"
    },
    {
      "name": "Retrieve the full PDF report",
      "value": "retrieveTheFullPDFReport",
      "action": "Retrieve the full PDF report",
      "description": "This route supports both GET and POST requests. The POST request supports passing a password that will be used to encrypt the resulting PDF report. If an admin has enabled the \"Password-protect PDF...",
      "resource": "assessment"
    },
    {
      "name": "Retrieve the management PDF report",
      "value": "retrieveTheManagementPDFReport",
      "action": "Retrieve the management PDF report",
      "description": "This route supports both GET and POST requests. The POST request supports passing a password that will be used to encrypt the resulting PDF report. If an admin has enabled the \"Password-protect PDF...",
      "resource": "assessment"
    },
    {
      "name": "Create an assessment comment",
      "value": "createAnAssessmentComment",
      "action": "Create an assessment comment",
      "description": "Create a new assessment comment. Object information.",
      "resource": "assessmentComment"
    },
    {
      "name": "Update an assessment comment",
      "value": "updateAnAssessmentComment",
      "action": "Update an assessment comment",
      "description": "Update an existing assessment comment. Object information.",
      "resource": "assessmentComment"
    },
    {
      "name": "Update an assessment phase",
      "value": "updateAnAssessmentPhase",
      "action": "Update an assessment phase",
      "description": "Update an existing assessment phase. Object information.",
      "resource": "assessmentPhase"
    },
    {
      "name": "Retrieve an assessment section",
      "value": "retrieveAnAssessmentSection",
      "action": "Retrieve an assessment section",
      "description": "Retrieve all details of the given assessment section. Object information.",
      "resource": "assessmentSection"
    },
    {
      "name": "Update an assessment section",
      "value": "updateAnAssessmentSection",
      "action": "Update an assessment section",
      "description": "Update an existing assessment section. Object information.",
      "resource": "assessmentSection"
    },
    {
      "name": "Create an assessment section comment",
      "value": "createAnAssessmentSectionComment",
      "action": "Create an assessment section comment",
      "description": "Create a new assessment section comment. Object information.",
      "resource": "assessmentSectionComment"
    },
    {
      "name": "Update an assessment section comment",
      "value": "updateAnAssessmentSectionComment",
      "action": "Update an assessment section comment",
      "description": "Update an existing assessment section comment. Object information.",
      "resource": "assessmentSectionComment"
    },
    {
      "name": "Add a task set to an assessment",
      "value": "addATaskSetToAnAssessment",
      "action": "Add a task set to an assessment",
      "description": "Assign an existing task set's tasks to an assessment.",
      "resource": "assessmentTaskSet"
    },
    {
      "name": "Remove a task set from an assessment",
      "value": "removeATaskSetFromAnAssessment",
      "action": "Remove a task set from an assessment",
      "description": "Remove a task set's tasks from an assessment. This does **not** delete the task set. It just removes its tasks from the assessment.",
      "resource": "assessmentTaskSet"
    },
    {
      "name": "List assessment templates",
      "value": "listAssessmentTemplates",
      "action": "List assessment templates",
      "description": "Retrieve a list of all accessible assessment templates. Object information.",
      "resource": "assessmentTemplate"
    },
    {
      "name": "Retrieve an assessment template",
      "value": "retrieveAnAssessmentTemplate",
      "action": "Retrieve an assessment template",
      "description": "Retrieve all details of the given assessment template. Object information.",
      "resource": "assessmentTemplate"
    },
    {
      "name": "Create an assessment user",
      "value": "createAnAssessmentUser",
      "action": "Create an assessment user",
      "description": "Assign an existing user to an assessment. Object information.",
      "resource": "assessmentUser"
    },
    {
      "name": "Update an assessment user",
      "value": "updateAnAssessmentUser",
      "action": "Update an assessment user",
      "description": "Update assessment-specific values for a user assigned to the assessment. Object information. To update the user's data, such as name and email address, see the User endpoints.",
      "resource": "assessmentUser"
    },
    {
      "name": "Remove an assessment user",
      "value": "removeAnAssessmentUser",
      "action": "Remove an assessment user",
      "description": "Remove a user from an assessment. Object information. A user can not be removed this way if they are assigned to the assessment through a team. This does **not** delete the user, it just revokes th...",
      "resource": "assessmentUser"
    },
    {
      "name": "List clients",
      "value": "listClients",
      "action": "List clients",
      "description": "Retrieve a list of all accessible clients. Object information. To also retrieve the logos of the clients, specify the \"documents\" relation in the request. See Including Related Data.",
      "resource": "client"
    },
    {
      "name": "Create a client",
      "value": "createAClient",
      "action": "Create a client",
      "description": "Create a new client. Object information. To add a logo to a client, attach a document representing the logo to it in a separate request. See Documents.",
      "resource": "client"
    },
    {
      "name": "Retrieve a client",
      "value": "retrieveAClient",
      "action": "Retrieve a client",
      "description": "Retrieve all details of the given client. Object information. To also retrieve the logo of the client, specify the \"documents\" relation in the request. See Including Related Data.",
      "resource": "client"
    },
    {
      "name": "Update a client",
      "value": "updateAClient",
      "action": "Update a client",
      "description": "Update an existing client. Object information. To add or replace a logo for a client, create a document for it in a separate request. This will overwrite the existing avatar. See Documents.",
      "resource": "client"
    },
    {
      "name": "Update client managers",
      "value": "updateClientManagers",
      "action": "Update client managers",
      "description": "Update the list of client managers for a client. Client managers can manage this list but cannot remove themselves.",
      "resource": "client"
    },
    {
      "name": "Remove account manager",
      "value": "removeAccountManager",
      "action": "Remove account manager",
      "description": "Remove an account manager from the client. Optionally, specify assessments to unassign the manager from.",
      "resource": "client"
    },
    {
      "name": "List custom fields",
      "value": "listCustomFields",
      "action": "List custom fields",
      "description": "Retrieve a list of all accessible custom fields Object information.",
      "resource": "customField"
    },
    {
      "name": "Retrieve a document",
      "value": "retrieveADocument",
      "action": "Retrieve a document",
      "description": "Retrieve the stored file contents of the given document. Object information.",
      "resource": "document"
    },
    {
      "name": "Upload a document",
      "value": "uploadADocument",
      "action": "Upload a document",
      "description": "Upload a new (draft) document. Object information. Use `Content-Type: multipart/form-data` for this request.",
      "resource": "document"
    },
    {
      "name": "List findings",
      "value": "listFindings",
      "action": "List findings",
      "description": "Retrieve a list of all accessible findings. Object information.",
      "resource": "finding"
    },
    {
      "name": "Create a finding",
      "value": "createAFinding",
      "action": "Create a finding",
      "description": "Create a new finding. Object information.",
      "resource": "finding"
    },
    {
      "name": "Retrieve a finding",
      "value": "retrieveAFinding",
      "action": "Retrieve a finding",
      "description": "Retrieve all details of the given finding. Object information.",
      "resource": "finding"
    },
    {
      "name": "Update a finding",
      "value": "updateAFinding",
      "action": "Update a finding",
      "description": "Update an existing finding. Object information.",
      "resource": "finding"
    },
    {
      "name": "Create a finding from a template",
      "value": "createAFindingFromATemplate",
      "action": "Create a finding from a template",
      "description": "Create a new finding from a finding template. Object information.",
      "resource": "finding"
    },
    {
      "name": "List finding events",
      "value": "listFindingEvents",
      "action": "List finding events",
      "description": "Retrieve a list of all accessible finding events. Object information.",
      "resource": "findingEvent"
    },
    {
      "name": "Create a finding comment",
      "value": "createAFindingComment",
      "action": "Create a finding comment",
      "description": "Create a new finding comment. Object information. Note that comments added before the publication of the finding are displayed as child comments of the 'created event' of the finding.",
      "resource": "findingEvent"
    },
    {
      "name": "Update a finding comment",
      "value": "updateAFindingComment",
      "action": "Update a finding comment",
      "description": "Update an existing finding comment. Object information.",
      "resource": "findingEvent"
    },
    {
      "name": "Create a finding retest",
      "value": "createAFindingRetest",
      "action": "Create a finding retest",
      "description": "Perform a retest. Object information. You can only create a retest if the finding has a retest inquiry that doesn't already have a retest.",
      "resource": "findingEvent"
    },
    {
      "name": "Update a finding retest",
      "value": "updateAFindingRetest",
      "action": "Update a finding retest",
      "description": "Update an existing finding retest. Object information.",
      "resource": "findingEvent"
    },
    {
      "name": "Create a finding retest inquiry",
      "value": "createAFindingRetestInquiry",
      "action": "Create a finding retest inquiry",
      "description": "Request a retest. Object information. Creating a new retest inquiry for a finding is not allowed if the status of the finding is set to 'Retest Pending.' The finding status is set to 'Retest Pendin...",
      "resource": "findingEvent"
    },
    {
      "name": "Update a retest inquiry",
      "value": "updateARetestInquiry",
      "action": "Update a retest inquiry",
      "description": "Update an existing finding retest inquiry. Object information.",
      "resource": "findingEvent"
    },
    {
      "name": "Create a finding retest cancelled event",
      "value": "createAFindingRetestCancelledEvent",
      "action": "Create a finding retest cancelled event",
      "description": "Cancel a retest request. Object information. You can only cancel a retest if the finding has a retest inquiry that doesn't already have a retest.",
      "resource": "findingEvent"
    },
    {
      "name": "Update a retest cancelled event",
      "value": "updateARetestCancelledEvent",
      "action": "Update a retest cancelled event",
      "description": "Update an existing finding retest cancelled event. Object information.",
      "resource": "findingEvent"
    },
    {
      "name": "List finding layouts",
      "value": "listFindingLayouts",
      "action": "List finding layouts",
      "description": "Retrieve a list of all finding layouts. Object information.",
      "resource": "findingLayout"
    },
    {
      "name": "Search finding templates",
      "value": "searchFindingTemplates",
      "action": "Search finding templates",
      "description": "Search for finding templates. It is not possible to include relations or filter the search. Object information. If a search term is submitted and neither \"prefer_language\" nor \"language_id\" are, th...",
      "resource": "findingTemplate"
    },
    {
      "name": "List finding templates",
      "value": "listFindingTemplates",
      "action": "List finding templates",
      "description": "Retrieve a list of all accessible finding templates. Object information.",
      "resource": "findingTemplate"
    },
    {
      "name": "Create a finding template",
      "value": "createAFindingTemplate",
      "action": "Create a finding template",
      "description": "Create a new finding template. Object information.",
      "resource": "findingTemplate"
    },
    {
      "name": "Retrieve a finding template",
      "value": "retrieveAFindingTemplate",
      "action": "Retrieve a finding template",
      "description": "Retrieve all details of the given finding. Object information.",
      "resource": "findingTemplate"
    },
    {
      "name": "Update a finding template",
      "value": "updateAFindingTemplate",
      "action": "Update a finding template",
      "description": "Update an existing finding template. Object information. Only custom finding templates (`source`: 0) can be updated.",
      "resource": "findingTemplate"
    },
    {
      "name": "List languages",
      "value": "listLanguages",
      "action": "List languages",
      "description": "Retrieve a list of all languages. Object information.",
      "resource": "language"
    },
    {
      "name": "Upload an output file to parse",
      "value": "uploadAnOutputFileToParse",
      "action": "Upload an output file to parse",
      "description": "Create a new output file. Object information. Once created, the file will be parsed in the background.",
      "resource": "outputFile"
    },
    {
      "name": "List output files",
      "value": "listOutputFiles",
      "action": "List output files",
      "description": "Retrieve a list of all output files. Object information.",
      "resource": "outputFile"
    },
    {
      "name": "Create a reaction",
      "value": "createAReaction",
      "action": "Create a reaction",
      "description": "Adds a reaction to the provided model, if that reaction does not exist for the current user. Object information.",
      "resource": "reaction"
    },
    {
      "name": "List global roles",
      "value": "listGlobalRoles",
      "action": "List global roles",
      "description": "Retrieve a list of global roles. Object information.",
      "resource": "role"
    },
    {
      "name": "List assessment roles",
      "value": "listAssessmentRoles",
      "action": "List assessment roles",
      "description": "Retrieve a list of assessment roles. Object information.",
      "resource": "role"
    },
    {
      "name": "List targets",
      "value": "listTargets",
      "action": "List targets",
      "description": "Retrieve a list of all accessible targets. Object information.",
      "resource": "target"
    },
    {
      "name": "Create a target",
      "value": "createATarget",
      "action": "Create a target",
      "description": "Create a new target. Object information.",
      "resource": "target"
    },
    {
      "name": "Retrieve a target",
      "value": "retrieveATarget",
      "action": "Retrieve a target",
      "description": "Retrieve all details of the given target. Object information.",
      "resource": "target"
    },
    {
      "name": "Update a target",
      "value": "updateATarget",
      "action": "Update a target",
      "description": "Update an existing target. Object information.",
      "resource": "target"
    },
    {
      "name": "List tasks",
      "value": "listTasks",
      "action": "List tasks",
      "description": "Retrieve a list of all tasks. Object information.",
      "resource": "task"
    },
    {
      "name": "Retrieve a task",
      "value": "retrieveATask",
      "action": "Retrieve a task",
      "description": "Retrieve all details of the given task. Object information.",
      "resource": "task"
    },
    {
      "name": "Update a task",
      "value": "updateATask",
      "action": "Update a task",
      "description": "Update an existing task. Object information.",
      "resource": "task"
    },
    {
      "name": "Create a task",
      "value": "createATask",
      "action": "Create a task",
      "description": "Create a new task. Object information.",
      "resource": "task"
    },
    {
      "name": "List task sets",
      "value": "listTaskSets",
      "action": "List task sets",
      "description": "Retrieve a list of all task sets. Object information.",
      "resource": "taskSet"
    },
    {
      "name": "Create a task set",
      "value": "createATaskSet",
      "action": "Create a task set",
      "description": "Create a new task set. Object information.",
      "resource": "taskSet"
    },
    {
      "name": "Retrieve a task set",
      "value": "retrieveATaskSet",
      "action": "Retrieve a task set",
      "description": "Retrieve all details of the given task set. Object information.",
      "resource": "taskSet"
    },
    {
      "name": "Update a task set",
      "value": "updateATaskSet",
      "action": "Update a task set",
      "description": "Update an existing task set. Object information.",
      "resource": "taskSet"
    },
    {
      "name": "Create a team",
      "value": "createATeam",
      "action": "Create a team",
      "description": "Create a new team. Object information.",
      "resource": "team"
    },
    {
      "name": "Update a team",
      "value": "updateATeam",
      "action": "Update a team",
      "description": "Update an existing team. Object information.",
      "resource": "team"
    },
    {
      "name": "Add a user to a team",
      "value": "addAUserToATeam",
      "action": "Add a user to a team",
      "description": "Assign an existing user to a team. Object information.",
      "resource": "teamUser"
    },
    {
      "name": "Update a team user",
      "value": "updateATeamUser",
      "action": "Update a team user",
      "description": "Update team-specific values for a user assigned to the team. Object information. To update the user's data, such as name and email address, see the User endpoints.",
      "resource": "teamUser"
    },
    {
      "name": "Remove a user from a team",
      "value": "removeAUserFromATeam",
      "action": "Remove a user from a team",
      "description": "Remove a user from a team. Object information. This does **not** delete the user, it just removes them from the team.",
      "resource": "teamUser"
    },
    {
      "name": "List test cases",
      "value": "listTestCases",
      "action": "List test cases",
      "description": "Retrieve a list of all accessible test cases. Object information.",
      "resource": "testCase"
    },
    {
      "name": "Retrieve a test case",
      "value": "retrieveATestCase",
      "action": "Retrieve a test case",
      "description": "Retrieve all details of the given test case. Object information.",
      "resource": "testCase"
    },
    {
      "name": "Update a test case",
      "value": "updateATestCase",
      "action": "Update a test case",
      "description": "Update an existing test case. Object information.",
      "resource": "testCase"
    },
    {
      "name": "List themes",
      "value": "listThemes",
      "action": "List themes",
      "description": "Retrieve a list of all themes. Object information.",
      "resource": "theme"
    },
    {
      "name": "List tool findings",
      "value": "listToolFindings",
      "action": "List tool findings",
      "description": "Retrieve a list of all tool findings. Object information.",
      "resource": "toolFinding"
    },
    {
      "name": "Retrieve a tool finding",
      "value": "retrieveAToolFinding",
      "action": "Retrieve a tool finding",
      "description": "Retrieve all details of the given tool finding. Object information.",
      "resource": "toolFinding"
    },
    {
      "name": "Update a tool finding",
      "value": "updateAToolFinding",
      "action": "Update a tool finding",
      "description": "Update an existing tool finding. Object information.",
      "resource": "toolFinding"
    },
    {
      "name": "List tool targets",
      "value": "listToolTargets",
      "action": "List tool targets",
      "description": "Retrieve a list of all tool targets. Object information.",
      "resource": "toolTarget"
    },
    {
      "name": "Update a tool target",
      "value": "updateAToolTarget",
      "action": "Update a tool target",
      "description": "Update the given tool target. Object information.",
      "resource": "toolTarget"
    },
    {
      "name": "Retrieve token user",
      "value": "retrieveTokenUser",
      "action": "Retrieve token user",
      "description": "Retrieve all details of the user who created the API token. No token permissions are required for this request. Object information. To also retrieve the avatars of the users, specify the \"documents...",
      "resource": "user"
    },
    {
      "name": "List users",
      "value": "listUsers",
      "action": "List users",
      "description": "Retrieve a list of all accessible users. Object information. To also retrieve the avatars of the users, specify the \"documents\" relation in the request. See Including Related Data.",
      "resource": "user"
    },
    {
      "name": "Create a user",
      "value": "createAUser",
      "action": "Create a user",
      "description": "Create a new user. Object information. To add an avatar to a user, create a document for it in a separate request. See Documents.",
      "resource": "user"
    },
    {
      "name": "Retrieve a user",
      "value": "retrieveAUser",
      "action": "Retrieve a user",
      "description": "Retrieve all details of the given user. Object information. To also retrieve the avatars of the users, specify the \"documents\" relation in the request. See Including Related Data.",
      "resource": "user"
    },
    {
      "name": "Update a user",
      "value": "updateAUser",
      "action": "Update a user",
      "description": "Update an existing user. Object information. To add or replace an avatar for a user, create a document for it in a separate request. This will overwrite the existing avatar. See Documents.",
      "resource": "user"
    }
  ]

npm_readme:
  # @dongit/n8n-nodes-reporter

  This is an n8n community node that lets you use [Security Reporter](https://securityreporter.app/) in your n8n workflows.

  Security Reporter is a comprehensive security assessment and vulnerability management platform. This integration allows you to automate security workflows, manage findings, assessments, clients, and more.

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

  ## Installation

  The Reporter integration is available as a community node package.
  If the reporter integration is not already installed,
  you can install it directly from the n8n interface or via npm.
  You can find more information [here](https://docs.n8n.io/integrations/community-nodes/installation/]

  ### Community Nodes (Recommended)

  For production use, install via n8n's Community Nodes:

  1. Go to **Settings > Community Nodes** in your n8n instance
  2. Select **Install**
  3. Enter `@dongit/n8n-nodes-reporter` in **Enter npm package name**
  4. Agree to the risks and click **Install**

  After installation, the Reporter nodes will be available in your workflow editor.

  ### Manual Installation

  For development or self-hosted instances:

  ```bash
  # Navigate to your n8n installation directory
  cd ~/.n8n

  # Install the package
  npm install @dongit/n8n-nodes-reporter
  ```

  ### Docker

  If you're using n8n with Docker, you can mount the package:

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

  Then install the package inside the container or mount it as a custom node.

  ## Credentials

  This node requires Security Reporter API credentials. To set up:

  1. In your Security Reporter instance, go to **Settings > API Tokens**
  2. Click **Create New Token**
  3. Copy the generated token
  4. In n8n, create new **Reporter API** credentials:
     - **Base URL**: Your Reporter instance URL (e.g., `https://reporter.yourcompany.com`)
     - **API Token**: The token you generated

  ## Operations

  ### Resources

  The Reporter node supports the following resources:

  - **Assessments** - Manage security assessments
  - **Findings** - Create and manage security findings
  - **Clients** - Manage client organizations
  - **Projects** - Manage projects within clients
  - **Users** - Manage user accounts
  - **Documents** - Upload and manage documents
  - **Tasks** - Manage assessment tasks
  - **Finding Templates** - Work with finding templates
  - **Assessment Templates** - Work with assessment templates
  - And many more...

  ### Triggers

  #### Webhook Trigger (Reporter Trigger)

  Trigger workflows when events occur in Reporter:

  - Assessment Created/Updated/Deleted
  - Finding Created/Updated/Deleted
  - Client Created/Updated/Deleted
  - Project Created/Updated/Deleted
  - And more...

  #### Polling Trigger (Reporter Polling Trigger)

  Poll Reporter for new items at regular intervals:

  - New Assessments
  - New Findings
  - New Clients
  - New Projects
  - And more...

  ## Example Workflows

  ### Create a Finding

  1. Add a **Reporter** node
  2. Select **Finding** resource
  3. Choose **Create** operation
  4. Fill in required fields:
     - Title
     - Description
     - Severity
     - Assessment ID

  ### Trigger on New Assessment

  1. Add a **Reporter Polling Trigger** node
  2. Select **Assessment** resource
  3. Set polling interval (e.g., every 5 minutes)
  4. Connect to downstream nodes to process new assessments

  ### Sync Findings to External System

  1. Add a **Reporter Polling Trigger** for new findings
  2. Add transformation nodes to format data
  3. Add nodes to send data to your external system (Jira, Slack, etc.)

  ## Compatibility

  - Tested with n8n version 1.0.0 and above
  - Requires Security Reporter API v1

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Security Reporter Documentation](https://docs.securityreporter.app/)
  - [Security Reporter API Documentation](https://docs.securityreporter.app/api/)

  ## Version History

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

  ## License

  [MIT](LICENSE.md)

  ## Support

  For issues and questions:

  - **n8n node issues**: [GitHub Issues](https://github.com/dongit-org/reporter/issues)
  - **Security Reporter issues**: [Security Reporter Support](https://securityreporter.app/support)
  - **n8n general help**: [n8n Community Forum](https://community.n8n.io/)


node_type: @bedrijfsdatanl/n8n-nodes-bedrijfsdata.bedrijfsdata
package_name: @bedrijfsdatanl/n8n-nodes-bedrijfsdata
display_name: Bedrijfsdata
description: Get data from the Bedrijfsdata API.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: ocjanssen
author_github_url: https://github.com/ocjanssen/n8n-nodes-bedrijfsdata.git
npm_package_name: @bedrijfsdatanl/n8n-nodes-bedrijfsdata
npm_version: 0.1.9
community_fetched_at: 2026-04-16T09:43:35.940Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "companies",
      "options": [
        {
          "name": "Company",
          "value": "companies"
        },
        {
          "name": "Company (Related)",
          "value": "companies_related"
        },
        {
          "name": "Data (Advanced)",
          "value": "advanced_data"
        },
        {
          "name": "Enrich",
          "value": "enrich"
        },
        {
          "name": "Live Web RAG",
          "value": "rag"
        },
        {
          "name": "LLM Template",
          "value": "llm"
        },
        {
          "name": "Other Data",
          "value": "data_misc"
        },
        {
          "name": "Validation & Cleansing",
          "value": "validation"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_many",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get company",
          "routing": {
            "request": {
              "qs": {
                "front": 30,
                "country": "nl"
              },
              "url": "/companies",
              "method": "GET"
            }
          },
          "description": "Retrieve a company profile by Bedrijfsdata.nl ID"
        },
        {
          "name": "Get Many",
          "value": "get_many",
          "action": "Get companies",
          "routing": {
            "request": {
              "qs": {
                "front": 30,
                "and_or": "AND"
              },
              "url": "/companies",
              "method": "GET"
            }
          },
          "description": "Retrieve company profiles with advanced filtering options"
        },
        {
          "name": "Get Parameter Suggestions",
          "value": "get_suggest",
          "action": "Get parameter suggestions",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/suggest",
              "method": "GET"
            }
          },
          "description": "Retrieve valid filter values for text, apps, city & domain fields in \"Get Companies\" (/companies)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "companies"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Enrich Company Data",
          "value": "get",
          "action": "Enrich company data",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/enrich",
              "method": "GET"
            }
          },
          "description": "Enrich your own company data"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "enrich"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Execute LLM Template",
          "value": "get",
          "action": "Execute llm template",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/llm",
              "method": "GET"
            }
          },
          "description": "Generate custom content by executing your LLM template"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "llm"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_url",
      "options": [
        {
          "name": "Get RAG Domain",
          "value": "get_domain",
          "action": "Get RAG domain",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/rag_domain",
              "method": "GET"
            }
          },
          "description": "Get content from a publicly accessible website"
        },
        {
          "name": "Get RAG URL",
          "value": "get_url",
          "action": "Get RAG URL",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/rag_url",
              "method": "GET"
            }
          },
          "description": "Get content from a publicly accessible URL"
        },
        {
          "name": "Get RAG Search",
          "value": "get_search",
          "action": "Get RAG search",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/rag_search",
              "method": "GET"
            }
          },
          "description": "Get search snippets from popular search engines by query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "rag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_family",
      "options": [
        {
          "name": "Get Corporate Family",
          "value": "get_family",
          "action": "Get corporate family",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/corporate_family",
              "method": "GET"
            }
          },
          "description": "Get companies from same corporate family as a specific company"
        },
        {
          "name": "Get Shared Address",
          "value": "get_same_address",
          "action": "Get shared address",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/shared_address",
              "method": "GET"
            }
          },
          "description": "Get companies that are registered on the same address as a specific company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "companies_related"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_people",
      "options": [
        {
          "name": "Get Many Employees",
          "value": "get_people",
          "action": "Get many employees",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/people",
              "method": "GET"
            }
          },
          "description": "Get employees of a specific company"
        },
        {
          "name": "Get Many News",
          "value": "get_news",
          "action": "Get many news",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/news",
              "method": "GET"
            }
          },
          "description": "Get news about a specific company"
        },
        {
          "name": "Get Many Vacancies",
          "value": "get_vacancies",
          "action": "Get many vacancies",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/vacancies",
              "method": "GET"
            }
          },
          "description": "Get vacancies of a specific company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "advanced_data"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_url",
      "options": [
        {
          "name": "Geocoding",
          "value": "get_geocoding",
          "action": "Geocoding",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/geocoding",
              "method": "GET"
            }
          },
          "description": "Validate and format unstructured geographic data"
        },
        {
          "name": "Validate BIC Number",
          "value": "get_bic",
          "action": "Validate bic number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/bic",
              "method": "GET"
            }
          },
          "description": "Validate BIC numbers"
        },
        {
          "name": "Validate City",
          "value": "get_city",
          "action": "Validate city",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/city",
              "method": "GET"
            }
          },
          "description": "Validate (global) cities"
        },
        {
          "name": "Validate Dutch VAT Number",
          "value": "get_vat",
          "action": "Validate dutch vat number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/vat",
              "method": "GET"
            }
          },
          "description": "Validate Dutch VAT numbers (btw-nummers)"
        },
        {
          "name": "Validate Email Address",
          "value": "get_email",
          "action": "Validate email address",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/email",
              "method": "GET"
            }
          },
          "description": "Validate email addresses (basic validation only)"
        },
        {
          "name": "Validate IBAN Number",
          "value": "get_iban",
          "action": "Validate iban number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/iban",
              "method": "GET"
            }
          },
          "description": "Validate IBAN numbers"
        },
        {
          "name": "Validate KvK Number",
          "value": "get_kvk",
          "action": "Validate kv k number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/kvk",
              "method": "GET"
            }
          },
          "description": "Validate KvK numbers"
        },
        {
          "name": "Validate LEI Number",
          "value": "get_lei",
          "action": "Validate lei number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/lei",
              "method": "GET"
            }
          },
          "description": "Validate LEI numbers"
        },
        {
          "name": "Validate Phone Number",
          "value": "get_phone",
          "action": "Validate phone number",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/phone",
              "method": "GET"
            }
          },
          "description": "Validate (global) phone numbers"
        },
        {
          "name": "Validate Postcode",
          "value": "get_postcode",
          "action": "Validate postcode",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/postcode",
              "method": "GET"
            }
          },
          "description": "Validate (global) postcodes"
        },
        {
          "name": "Validate URL",
          "value": "get_url",
          "action": "Validate URL",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/url",
              "method": "GET"
            }
          },
          "description": "Validate URL's"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "validation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get_siterank",
      "options": [
        {
          "name": "Get BAG Data",
          "value": "get_bag",
          "action": "Get bag data",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/bag",
              "method": "GET"
            }
          },
          "description": "Get Dutch BAG data by address"
        },
        {
          "name": "Get DNS Scan",
          "value": "get_dns",
          "action": "Get DNS scan",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/dns",
              "method": "GET"
            }
          },
          "description": "Retrieve data straight from a domain's DNS"
        },
        {
          "name": "Get EU Tenders",
          "value": "get_tender",
          "action": "Get eu tenders",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/tender",
              "method": "GET"
            }
          },
          "description": "Query the European Tender database"
        },
        {
          "name": "Get Exchange Rate",
          "value": "get_currency",
          "action": "Get exchange rate",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/currency",
              "method": "GET"
            }
          },
          "description": "Get exchange rates for 300+ currencies (incl. crypto)."
        },
        {
          "name": "Get Password Leaks",
          "value": "get_password",
          "action": "Get password leaks",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/password",
              "method": "GET"
            }
          },
          "description": "Find out how many times a password was leaked before"
        },
        {
          "name": "Get Property Information",
          "value": "get_property",
          "action": "Get property information",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/property",
              "method": "GET"
            }
          },
          "description": "Get property information by address or company ID"
        },
        {
          "name": "Get Web Rankings",
          "value": "get_webrank",
          "action": "Get web rankings",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/webrank",
              "method": "GET"
            }
          },
          "description": "Get global rankings like Majestic, CRUX, CloudFlare and DomCop"
        },
        {
          "name": "Get Website Performance",
          "value": "get_siterank",
          "action": "Get website performance",
          "routing": {
            "request": {
              "qs": {
                "front": 30
              },
              "url": "/siterank",
              "method": "GET"
            }
          },
          "description": "Get data on a company's website performance and popularity ranking"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "data_misc"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get company",
      "routing": {
        "request": {
          "qs": {
            "front": 30,
            "country": "nl"
          },
          "url": "/companies",
          "method": "GET"
        }
      },
      "description": "Retrieve a company profile by Bedrijfsdata.nl ID",
      "resource": "companies"
    },
    {
      "name": "Get Many",
      "value": "get_many",
      "action": "Get companies",
      "routing": {
        "request": {
          "qs": {
            "front": 30,
            "and_or": "AND"
          },
          "url": "/companies",
          "method": "GET"
        }
      },
      "description": "Retrieve company profiles with advanced filtering options",
      "resource": "companies"
    },
    {
      "name": "Get Parameter Suggestions",
      "value": "get_suggest",
      "action": "Get parameter suggestions",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/suggest",
          "method": "GET"
        }
      },
      "description": "Retrieve valid filter values for text, apps, city & domain fields in \"Get Companies\" (/companies)",
      "resource": "companies"
    },
    {
      "name": "Enrich Company Data",
      "value": "get",
      "action": "Enrich company data",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/enrich",
          "method": "GET"
        }
      },
      "description": "Enrich your own company data",
      "resource": "enrich"
    },
    {
      "name": "Execute LLM Template",
      "value": "get",
      "action": "Execute llm template",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/llm",
          "method": "GET"
        }
      },
      "description": "Generate custom content by executing your LLM template",
      "resource": "llm"
    },
    {
      "name": "Get RAG Domain",
      "value": "get_domain",
      "action": "Get RAG domain",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/rag_domain",
          "method": "GET"
        }
      },
      "description": "Get content from a publicly accessible website",
      "resource": "rag"
    },
    {
      "name": "Get RAG URL",
      "value": "get_url",
      "action": "Get RAG URL",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/rag_url",
          "method": "GET"
        }
      },
      "description": "Get content from a publicly accessible URL",
      "resource": "rag"
    },
    {
      "name": "Get RAG Search",
      "value": "get_search",
      "action": "Get RAG search",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/rag_search",
          "method": "GET"
        }
      },
      "description": "Get search snippets from popular search engines by query",
      "resource": "rag"
    },
    {
      "name": "Get Corporate Family",
      "value": "get_family",
      "action": "Get corporate family",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/corporate_family",
          "method": "GET"
        }
      },
      "description": "Get companies from same corporate family as a specific company",
      "resource": "companies_related"
    },
    {
      "name": "Get Shared Address",
      "value": "get_same_address",
      "action": "Get shared address",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/shared_address",
          "method": "GET"
        }
      },
      "description": "Get companies that are registered on the same address as a specific company",
      "resource": "companies_related"
    },
    {
      "name": "Get Many Employees",
      "value": "get_people",
      "action": "Get many employees",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/people",
          "method": "GET"
        }
      },
      "description": "Get employees of a specific company",
      "resource": "advanced_data"
    },
    {
      "name": "Get Many News",
      "value": "get_news",
      "action": "Get many news",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/news",
          "method": "GET"
        }
      },
      "description": "Get news about a specific company",
      "resource": "advanced_data"
    },
    {
      "name": "Get Many Vacancies",
      "value": "get_vacancies",
      "action": "Get many vacancies",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/vacancies",
          "method": "GET"
        }
      },
      "description": "Get vacancies of a specific company",
      "resource": "advanced_data"
    },
    {
      "name": "Geocoding",
      "value": "get_geocoding",
      "action": "Geocoding",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/geocoding",
          "method": "GET"
        }
      },
      "description": "Validate and format unstructured geographic data",
      "resource": "validation"
    },
    {
      "name": "Validate BIC Number",
      "value": "get_bic",
      "action": "Validate bic number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/bic",
          "method": "GET"
        }
      },
      "description": "Validate BIC numbers",
      "resource": "validation"
    },
    {
      "name": "Validate City",
      "value": "get_city",
      "action": "Validate city",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/city",
          "method": "GET"
        }
      },
      "description": "Validate (global) cities",
      "resource": "validation"
    },
    {
      "name": "Validate Dutch VAT Number",
      "value": "get_vat",
      "action": "Validate dutch vat number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/vat",
          "method": "GET"
        }
      },
      "description": "Validate Dutch VAT numbers (btw-nummers)",
      "resource": "validation"
    },
    {
      "name": "Validate Email Address",
      "value": "get_email",
      "action": "Validate email address",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/email",
          "method": "GET"
        }
      },
      "description": "Validate email addresses (basic validation only)",
      "resource": "validation"
    },
    {
      "name": "Validate IBAN Number",
      "value": "get_iban",
      "action": "Validate iban number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/iban",
          "method": "GET"
        }
      },
      "description": "Validate IBAN numbers",
      "resource": "validation"
    },
    {
      "name": "Validate KvK Number",
      "value": "get_kvk",
      "action": "Validate kv k number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/kvk",
          "method": "GET"
        }
      },
      "description": "Validate KvK numbers",
      "resource": "validation"
    },
    {
      "name": "Validate LEI Number",
      "value": "get_lei",
      "action": "Validate lei number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/lei",
          "method": "GET"
        }
      },
      "description": "Validate LEI numbers",
      "resource": "validation"
    },
    {
      "name": "Validate Phone Number",
      "value": "get_phone",
      "action": "Validate phone number",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/phone",
          "method": "GET"
        }
      },
      "description": "Validate (global) phone numbers",
      "resource": "validation"
    },
    {
      "name": "Validate Postcode",
      "value": "get_postcode",
      "action": "Validate postcode",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/postcode",
          "method": "GET"
        }
      },
      "description": "Validate (global) postcodes",
      "resource": "validation"
    },
    {
      "name": "Validate URL",
      "value": "get_url",
      "action": "Validate URL",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/url",
          "method": "GET"
        }
      },
      "description": "Validate URL's",
      "resource": "validation"
    },
    {
      "name": "Get BAG Data",
      "value": "get_bag",
      "action": "Get bag data",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/bag",
          "method": "GET"
        }
      },
      "description": "Get Dutch BAG data by address",
      "resource": "data_misc"
    },
    {
      "name": "Get DNS Scan",
      "value": "get_dns",
      "action": "Get DNS scan",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/dns",
          "method": "GET"
        }
      },
      "description": "Retrieve data straight from a domain's DNS",
      "resource": "data_misc"
    },
    {
      "name": "Get EU Tenders",
      "value": "get_tender",
      "action": "Get eu tenders",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/tender",
          "method": "GET"
        }
      },
      "description": "Query the European Tender database",
      "resource": "data_misc"
    },
    {
      "name": "Get Exchange Rate",
      "value": "get_currency",
      "action": "Get exchange rate",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/currency",
          "method": "GET"
        }
      },
      "description": "Get exchange rates for 300+ currencies (incl. crypto).",
      "resource": "data_misc"
    },
    {
      "name": "Get Password Leaks",
      "value": "get_password",
      "action": "Get password leaks",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/password",
          "method": "GET"
        }
      },
      "description": "Find out how many times a password was leaked before",
      "resource": "data_misc"
    },
    {
      "name": "Get Property Information",
      "value": "get_property",
      "action": "Get property information",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/property",
          "method": "GET"
        }
      },
      "description": "Get property information by address or company ID",
      "resource": "data_misc"
    },
    {
      "name": "Get Web Rankings",
      "value": "get_webrank",
      "action": "Get web rankings",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/webrank",
          "method": "GET"
        }
      },
      "description": "Get global rankings like Majestic, CRUX, CloudFlare and DomCop",
      "resource": "data_misc"
    },
    {
      "name": "Get Website Performance",
      "value": "get_siterank",
      "action": "Get website performance",
      "routing": {
        "request": {
          "qs": {
            "front": 30
          },
          "url": "/siterank",
          "method": "GET"
        }
      },
      "description": "Get data on a company's website performance and popularity ranking",
      "resource": "data_misc"
    }
  ]

npm_readme:
  # n8n-nodes-bedrijfsdata

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

  An n8n community node for integrating with the [Bedrijfsdata.nl API](https://docs.bedrijfsdata.nl/). This node allows you to search and retrieve comprehensive Dutch company information directly within your n8n workflows.

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

  ### Community Nodes (Recommended)

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

  ### Docker (Quick Start)

  Run n8n with the Bedrijfsdata node pre-installed:

  ```bash
  ./run.sh
  ```

  Then access n8n at http://localhost:5678

  To update the node after making changes:
  ```bash
  npm run build && docker-compose restart
  ```

  ### Manual Installation

  To get started:

  ```bash
  npm install n8n-nodes-bedrijfsdata
  ```

  ## Credentials

  You need a Bedrijfsdata.nl API key to use this node:

  1. Sign up at [Bedrijfsdata.nl](https://bedrijfsdata.nl/)
  2. Get your API key from your account dashboard
  3. In n8n, create new credentials of type "Bedrijfsdata API"
  4. Enter your API key

  ## Supported Operations

  ### Companies Resource

  #### Get Company
  Retrieve a company profile by Bedrijfsdata.nl ID.

  #### Get Companies
  Search and retrieve Dutch company information with extensive filtering options:

  **Basic Search Parameters:**
  - **Country**: Netherlands (required)
  - **Text**: Keyword search across company names, industries, activities, and website content

  **Company Identification:**
  - **Company ID**: Bedrijfsdata.nl unique identifier
  - **Company Name**: Official company name
  - **All Names**: Search across all known names including trade names
  - **Chamber of Commerce Number**: KvK number
  - **VAT Number**: BTW number
  - **Domain**: Company website domain

  **Location-based Search:**
  - **City**: Dutch city (case-sensitive, official name)
  - **Province**: Dutch province (case-sensitive, official name)
  - **Postcode**: Dutch postal code
  - **Address ID**: Format: NL{postcode}-{house number} (e.g., "NL1234AB-150")
  - **Location**: Search by city/municipality with distance
  - **Geo Coordinates**: Search by latitude,longitude with distance
  - **Distance**: Radius in kilometers (use with location or geo coordinates)

  **Company Characteristics:**
  - **Office Type**: Hoofdvestiging (main office) or Nevenvestiging (branch office)
  - **Organization Type**: Legal entity types (BV, NV, Stichting, etc.)
  - **Employees**: Number of employees (range format: 5:10, 5:, :10)
  - **Revenue**: Annual revenue (range format: 500000:1000000, 500000:, :1000000)
  - **Founded**: Year of establishment (range format: 2010:2020, 2010:, :2020)
  - **SBI Code**: Industry classification codes (comma-separated)

  **Digital Presence:**
  - **Apps**: Technologies/apps used by the company
  - **Monthly Visits**: Website traffic estimates (range format)
  - **Social Exists**: Available social media channels (Facebook, Instagram, LinkedIn, etc.)
  - **Social Interactions**: Social media engagement metrics (range format)
  - **PageRank**: DomCop PageRank (0-10, range format)
  - **Crux Rank**: Crux ranking (1-50m, range format)
  - **Tranco Rank**: Tranco ranking (1-3m, range format)

  **Relationship Analysis:**
  - **Linked By**: Domains that link to the company website
  - **Link Domain**: Domains the company links to
  - **Mentioned By**: Domains that mention the company
  - **Relation**: Combination of linked_by, mentioned_by, and linkdomain

  **Data Availability:**
  - **Data Exists**: Filter by available data types (address, email, phone, etc.)
  - **Rating**: Average review rating (0-5, range format)
  - **Reviews**: Number of reviews (range format)

  **Output Control:**
  - **Rows**: Number of companies to return

  ### Enrich Resource

  #### Enrich Company Data
  Enrich your own company data with additional information from Bedrijfsdata.

  ### LLM Template Resource

  #### Execute LLM Template
  Generate custom content by executing your LLM template with company data.

  ### Web RAG Resource

  #### Get RAG domain
  Extract and analyze content from a publicly accessible website.

  #### Get RAG URL
  Extract and analyze content from a publicly accessible URL.

  #### Get RAG Search
  Get search snippets from popular search engines by query.

  ### Related Companies Resource

  #### Get Corporate Family
  Find companies that belong to the same corporate family as a specific company.

  #### Get Shared Address
  Discover companies that are registered at the same address as a specific company.

  ### Advanced Company Data Resource

  #### Get Many Employees
  Retrieve employee information for a specific company.

  #### Get Many News
  Collect news articles related to a specific company.

  #### Get Many Vacancies
  Find job openings posted by a specific company.

  ### Validation & Cleansing Resource

  #### Validate Email Address
  Perform basic validation on email addresses.

  #### Validate BIC Number
  Verify the validity of BIC (Bank Identifier Code) numbers.

  #### Validate City
  Validate global city names.

  #### Geocoding
  Convert addresses to geographic coordinates and vice versa.

  #### Validate IBAN Number
  Check the validity of IBAN (International Bank Account Number) formats.

  #### Validate KvK Number
  Verify Dutch Chamber of Commerce (KvK) registration numbers.

  #### Validate LEI Number
  Validate Legal Entity Identifier (LEI) numbers.

  #### Validate Phone Number
  Check and format global phone numbers.

  #### Validate Postcode
  Verify postal code formats from different countries.

  #### Validate URL
  Check URL validity and structure.

  #### Validate Dutch VAT Number
  Verify Dutch VAT numbers (BTW-nummers).

  ### Other Data Resource

  #### Get BAG Data
  Retrieve Dutch BAG (Basisregistratie Adressen en Gebouwen) data by address.

  #### Get Exchange Rate
  Access exchange rates for over 300 currencies, including cryptocurrencies.

  #### Get DNS Scan
  Extract data directly from a domain's DNS records.

  #### Get Password Leaks
  Check how many times a password has been exposed in data breaches.

  #### Get Property Information
  Obtain property details by address or company ID.

  #### Get Website Performance
  Analyze a company's website performance and popularity rankings.

  #### Get EU Tenders
  Search the European Tender database.

  #### Get Web Rankings
  Access global rankings like Majestic, CRUX, CloudFlare, and DomCop.

  ## Usage Examples

  ### Basic Company Search
  Search for companies by keyword:
  ```json
  {
    "resource": "companies",
    "operation": "get",
    "country": "nl",
    "additionalFields": {
      "text": "software development",
      "rows": 10
    }
  }
  ```

  ### Find Companies by Location
  Search for companies in Amsterdam:
  ```json
  {
    "resource": "companies",
    "operation": "get",
    "country": "nl",
    "additionalFields": {
      "city": "Amsterdam",
      "orgtype": ["Besloten Vennootschap"],
      "employees": "10:100"
    }
  }
  ```

  ### Technology Company Analysis
  Find companies using specific technologies:
  ```json
  {
    "resource": "companies",
    "operation": "get",
    "country": "nl",
    "additionalFields": {
      "apps": "Salesforce,HubSpot",
      "social_exists": ["linkedin", "twitter"],
      "monthly_visits": "1000:"
    }
  }
  ```

  ### Geographic Radius Search
  Find companies within 25km of coordinates:
  ```json
  {
    "resource": "companies",
    "operation": "get",
    "country": "nl",
    "additionalFields": {
      "geo": "52.3676,4.9041",
      "distance": 25,
      "revenue": "1000000:"
    }
  }
  ```

  ## Range Format

  Many fields support range queries with the following format:
  - **Range**: `min:max` (e.g., `100:500`)
  - **Minimum only**: `min:` (e.g., `100:`)
  - **Maximum only**: `:max` (e.g., `:500`)

  ## API Documentation

  For detailed API documentation, visit [docs.bedrijfsdata.nl](https://docs.bedrijfsdata.nl/).

  ## Compatibility

  - **n8n version**: 0.187.0 or later
  - **Node.js version**: 20.15 or later

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Bedrijfsdata.nl API Documentation](https://docs.bedrijfsdata.nl/)

  ## Development

  ### Prerequisites

  - Node.js 20.15 or later
  - npm or pnpm

  ### Setup

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

  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Lint the code
  npm run lint

  # Auto-fix linting issues
  npm run lintfix
  ```

  ### Testing

  To test the node locally:

  1. Build the node: `npm run build`
  2. Link it to your global n8n installation: `npm link`
  3. In your n8n directory: `npm link n8n-nodes-bedrijfsdata`
  4. Start n8n: `n8n start`

  OR

  ```bash
  ./run.sh
  ```

  ## Contributing

  Contributions are welcome! Please feel free to submit a Pull Request.

  ## License

  [MIT](LICENSE.md)

  ## Support

  If you encounter any issues or have questions:

  1. Check the [Bedrijfsdata.nl API documentation](https://docs.bedrijfsdata.nl/)
  2. Review the [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  3. Open an issue in this repository

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the Bedrijfsdata.nl API to search, retrieve, and enrich Dutch company data within workflow automation.","capabilities":["Search and retrieve company profiles by ID, name, or multiple attributes","Filter companies by location (city, province, postcode, geo-coordinates)","Filter companies by characteristics (employees, revenue, founded year, industry)","Enrich existing company data with additional Bedrijfsdata information","Find related companies (corporate family, shared address)","Retrieve employee lists, news articles, and job vacancies for companies","Validate email addresses, BIC numbers, IBANs, KvK numbers, LEI numbers, phone numbers, postcodes, and VAT numbers","Perform geocoding and address validation","Execute LLM templates with company data","Extract and analyze content from websites and URLs (Web RAG)"],"authentication":"API key required (Bedrijfsdata.nl API key)","commonUseCases":["Market research and competitor analysis in the Netherlands","Lead generation by searching companies by location or industry","Enriching CRM data with Dutch business profiles","Validating business contact information (emails, phone numbers, addresses)","Finding corporate family relationships or shared business addresses"],"limitations":["Requires a valid Bedrijfsdata.nl API key and account","Search parameters are specific to Dutch companies and locations","Some advanced features (LLM templates, Web RAG) may depend on external services or additional configuration","Geocoding and location searches require official Dutch city/province names"],"relatedNodes":["HTTP Request","Code","Function"]}


node_type: @dongit/n8n-nodes-reporter.reporterPollingTrigger
package_name: @dongit/n8n-nodes-reporter
display_name: Reporter Polling Trigger
description: Polls Security Reporter API for new or updated items
category: Community
development_style: declarative
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: stefanvdlugt.dongit
author_github_url: https://github.com/dongit-org/n8n-nodes-reporter.git
npm_package_name: @dongit/n8n-nodes-reporter
npm_version: 2026.4.13
community_fetched_at: 2026-04-16T09:43:35.941Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "activity_created",
      "options": [
        {
          "name": "New Activity",
          "value": "activity_created",
          "description": "Triggers when a new activity is created"
        },
        {
          "name": "Updated Activity",
          "value": "activity_updated",
          "description": "Triggers when an existing activity is updated"
        },
        {
          "name": "New Assessment",
          "value": "assessment_created",
          "description": "Triggers when a new assessment is created"
        },
        {
          "name": "Updated Assessment",
          "value": "assessment_updated",
          "description": "Triggers when an existing assessment is updated"
        },
        {
          "name": "New Assessment Template",
          "value": "assessmentTemplate_created",
          "description": "Triggers when a new assessment template is created"
        },
        {
          "name": "Updated Assessment Template",
          "value": "assessmentTemplate_updated",
          "description": "Triggers when an existing assessment template is updated"
        },
        {
          "name": "New Client",
          "value": "client_created",
          "description": "Triggers when a new client is created"
        },
        {
          "name": "Updated Client",
          "value": "client_updated",
          "description": "Triggers when an existing client is updated"
        },
        {
          "name": "New Custom Field",
          "value": "customField_created",
          "description": "Triggers when a new custom field is created"
        },
        {
          "name": "Updated Custom Field",
          "value": "customField_updated",
          "description": "Triggers when an existing custom field is updated"
        },
        {
          "name": "New Finding",
          "value": "finding_created",
          "description": "Triggers when a new finding is created"
        },
        {
          "name": "Updated Finding",
          "value": "finding_updated",
          "description": "Triggers when an existing finding is updated"
        },
        {
          "name": "New Finding Layout",
          "value": "findingLayout_created",
          "description": "Triggers when a new finding layout is created"
        },
        {
          "name": "Updated Finding Layout",
          "value": "findingLayout_updated",
          "description": "Triggers when an existing finding layout is updated"
        },
        {
          "name": "New Finding Event",
          "value": "findingEvent_created",
          "description": "Triggers when a new finding event is created"
        },
        {
          "name": "Updated Finding Event",
          "value": "findingEvent_updated",
          "description": "Triggers when an existing finding event is updated"
        },
        {
          "name": "New Finding Template",
          "value": "findingTemplate_created",
          "description": "Triggers when a new finding template is created"
        },
        {
          "name": "Updated Finding Template",
          "value": "findingTemplate_updated",
          "description": "Triggers when an existing finding template is updated"
        },
        {
          "name": "New Language",
          "value": "language_created",
          "description": "Triggers when a new language is created"
        },
        {
          "name": "Updated Language",
          "value": "language_updated",
          "description": "Triggers when an existing language is updated"
        },
        {
          "name": "New Output File",
          "value": "outputFile_created",
          "description": "Triggers when a new output file is created"
        },
        {
          "name": "Updated Output File",
          "value": "outputFile_updated",
          "description": "Triggers when an existing output file is updated"
        },
        {
          "name": "New Tool Finding",
          "value": "toolFinding_created",
          "description": "Triggers when a new tool finding is created"
        },
        {
          "name": "Updated Tool Finding",
          "value": "toolFinding_updated",
          "description": "Triggers when an existing tool finding is updated"
        },
        {
          "name": "New Tool Target",
          "value": "toolTarget_created",
          "description": "Triggers when a new tool target is created"
        },
        {
          "name": "Updated Tool Target",
          "value": "toolTarget_updated",
          "description": "Triggers when an existing tool target is updated"
        },
        {
          "name": "New Role",
          "value": "role_created",
          "description": "Triggers when a new role is created"
        },
        {
          "name": "Updated Role",
          "value": "role_updated",
          "description": "Triggers when an existing role is updated"
        },
        {
          "name": "New Target",
          "value": "target_created",
          "description": "Triggers when a new target is created"
        },
        {
          "name": "Updated Target",
          "value": "target_updated",
          "description": "Triggers when an existing target is updated"
        },
        {
          "name": "New Task",
          "value": "task_created",
          "description": "Triggers when a new task is created"
        },
        {
          "name": "Updated Task",
          "value": "task_updated",
          "description": "Triggers when an existing task is updated"
        },
        {
          "name": "New Task Set",
          "value": "taskSet_created",
          "description": "Triggers when a new task set is created"
        },
        {
          "name": "Updated Task Set",
          "value": "taskSet_updated",
          "description": "Triggers when an existing task set is updated"
        },
        {
          "name": "New Test Case",
          "value": "testCase_created",
          "description": "Triggers when a new test case is created"
        },
        {
          "name": "Updated Test Case",
          "value": "testCase_updated",
          "description": "Triggers when an existing test case is updated"
        },
        {
          "name": "New Theme",
          "value": "theme_created",
          "description": "Triggers when a new theme is created"
        },
        {
          "name": "Updated Theme",
          "value": "theme_updated",
          "description": "Triggers when an existing theme is updated"
        },
        {
          "name": "New User",
          "value": "user_created",
          "description": "Triggers when a new user is created"
        },
        {
          "name": "Updated User",
          "value": "user_updated",
          "description": "Triggers when an existing user is updated"
        }
      ],
      "required": true,
      "description": "The resource and event to poll for",
      "displayName": "Resource"
    }
  ]

npm_readme:
  # @dongit/n8n-nodes-reporter

  This is an n8n community node that lets you use [Security Reporter](https://securityreporter.app/) in your n8n workflows.

  Security Reporter is a comprehensive security assessment and vulnerability management platform. This integration allows you to automate security workflows, manage findings, assessments, clients, and more.

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

  ## Installation

  The Reporter integration is available as a community node package.
  If the reporter integration is not already installed,
  you can install it directly from the n8n interface or via npm.
  You can find more information [here](https://docs.n8n.io/integrations/community-nodes/installation/]

  ### Community Nodes (Recommended)

  For production use, install via n8n's Community Nodes:

  1. Go to **Settings > Community Nodes** in your n8n instance
  2. Select **Install**
  3. Enter `@dongit/n8n-nodes-reporter` in **Enter npm package name**
  4. Agree to the risks and click **Install**

  After installation, the Reporter nodes will be available in your workflow editor.

  ### Manual Installation

  For development or self-hosted instances:

  ```bash
  # Navigate to your n8n installation directory
  cd ~/.n8n

  # Install the package
  npm install @dongit/n8n-nodes-reporter
  ```

  ### Docker

  If you're using n8n with Docker, you can mount the package:

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

  Then install the package inside the container or mount it as a custom node.

  ## Credentials

  This node requires Security Reporter API credentials. To set up:

  1. In your Security Reporter instance, go to **Settings > API Tokens**
  2. Click **Create New Token**
  3. Copy the generated token
  4. In n8n, create new **Reporter API** credentials:
     - **Base URL**: Your Reporter instance URL (e.g., `https://reporter.yourcompany.com`)
     - **API Token**: The token you generated

  ## Operations

  ### Resources

  The Reporter node supports the following resources:

  - **Assessments** - Manage security assessments
  - **Findings** - Create and manage security findings
  - **Clients** - Manage client organizations
  - **Projects** - Manage projects within clients
  - **Users** - Manage user accounts
  - **Documents** - Upload and manage documents
  - **Tasks** - Manage assessment tasks
  - **Finding Templates** - Work with finding templates
  - **Assessment Templates** - Work with assessment templates
  - And many more...

  ### Triggers

  #### Webhook Trigger (Reporter Trigger)

  Trigger workflows when events occur in Reporter:

  - Assessment Created/Updated/Deleted
  - Finding Created/Updated/Deleted
  - Client Created/Updated/Deleted
  - Project Created/Updated/Deleted
  - And more...

  #### Polling Trigger (Reporter Polling Trigger)

  Poll Reporter for new items at regular intervals:

  - New Assessments
  - New Findings
  - New Clients
  - New Projects
  - And more...

  ## Example Workflows

  ### Create a Finding

  1. Add a **Reporter** node
  2. Select **Finding** resource
  3. Choose **Create** operation
  4. Fill in required fields:
     - Title
     - Description
     - Severity
     - Assessment ID

  ### Trigger on New Assessment

  1. Add a **Reporter Polling Trigger** node
  2. Select **Assessment** resource
  3. Set polling interval (e.g., every 5 minutes)
  4. Connect to downstream nodes to process new assessments

  ### Sync Findings to External System

  1. Add a **Reporter Polling Trigger** for new findings
  2. Add transformation nodes to format data
  3. Add nodes to send data to your external system (Jira, Slack, etc.)

  ## Compatibility

  - Tested with n8n version 1.0.0 and above
  - Requires Security Reporter API v1

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Security Reporter Documentation](https://docs.securityreporter.app/)
  - [Security Reporter API Documentation](https://docs.securityreporter.app/api/)

  ## Version History

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

  ## License

  [MIT](LICENSE.md)

  ## Support

  For issues and questions:

  - **n8n node issues**: [GitHub Issues](https://github.com/dongit-org/reporter/issues)
  - **Security Reporter issues**: [Security Reporter Support](https://securityreporter.app/support)
  - **n8n general help**: [n8n Community Forum](https://community.n8n.io/)


node_type: n8n-nodes-oneform.oneformTrigger
package_name: n8n-nodes-oneform
display_name: Oneform Trigger
description: Triggers the workflow when a oneform form is submitted
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: damaso.jm
author_github_url: https://github.com/oneformhq/
npm_package_name: n8n-nodes-oneform
npm_version: 1.0.2
community_fetched_at: 2026-04-16T09:43:35.942Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n trigger for oneform submissions

  This is an n8n community node that lets you trigger n8n workflows when your **oneform** form receives a new submission.

  ## Installation

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

  ## Usage

  1. Generate an API key at: [https://app.oneform.one/settings/api_keys](https://app.oneform.one/settings/api_keys)
  2. Add the **oneform Trigger** to your workflow.
  3. Create a credential for the **oneform Trigger** using your API key.
  4. Choose the form you want to use to trigger workflows when a submission is received.


  ## Developers

  For instructions on testing this node on a local n8n instance for development purposes, see https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/

ai_documentation_summary:
  {"purpose":"Triggers an n8n workflow automatically when a new submission is received from a Oneform form.","capabilities":["Monitors Oneform forms for new submissions","Activates workflows upon form submission events","Configurable form selection for triggering"],"authentication":"API key required","commonUseCases":["Automate responses to form submissions","Integrate form data into other workflows or services","Send notifications or emails based on form input"],"limitations":[],"relatedNodes":["n8n-nodes-oneform.oneformWebhook","n8n-nodes-oneform.oneformForm","n8n-nodes-oneform.oneformSubmit"]}


node_type: n8n-nodes-sinergiacrm.sinergiaCrm
package_name: n8n-nodes-sinergiacrm
display_name: SinergiaCRM
description: Perform operations on any module in SinergiaCRM (SuiteCRM API).
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: tecnologia-solidaria
author_github_url: https://github.com/Tecnologia-Solidaria/
npm_package_name: n8n-nodes-sinergiacrm
npm_version: 2.0.0
community_fetched_at: 2026-04-16T09:43:35.943Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get All",
          "value": "getAll",
          "action": "Get all records"
        },
        {
          "name": "Get One",
          "value": "getOne",
          "action": "Get a single record"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new record"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a record"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a record"
        },
        {
          "name": "Get Relationships",
          "value": "getRelationships",
          "action": "Get related records"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get All",
      "value": "getAll",
      "action": "Get all records"
    },
    {
      "name": "Get One",
      "value": "getOne",
      "action": "Get a single record"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new record"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a record"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a record"
    },
    {
      "name": "Get Relationships",
      "value": "getRelationships",
      "action": "Get related records"
    }
  ]

npm_readme:
  # n8n-nodes-sinergiacrm

  A generic n8n node to operate with any SinergiaCRM (SuiteCRM 7.x+) module via the official JSON API.

  Supports CRUD operations, dynamic module and field discovery (including custom fields), advanced filtering, pagination, and relationship retrieval.

  ---

  ## Features

  - **Full CRUD** – Create, read, update, and delete any SuiteCRM module
  - **Dynamic discovery** – Auto-lists modules and fields, including custom fields
  - **Advanced filtering** – Filter records using operators, custom fields, pagination
  - **Relationship handling** – Retrieve related records from any entity
  - **OAuth2 authentication** – Native SuiteCRM client credentials flow
  - **Robust error handling** – Clear errors and maintainable structure

  ---

  ## Installation

  ```bash
  pnpm add n8n-nodes-sinergiacrm
  ```

  Or with npm:

  ```bash
  npm install n8n-nodes-sinergiacrm
  ```

  Add to your instance following [n8n's custom node guide](https://docs.n8n.io/integrations/creating-nodes/code/create-node/).

  ---

  ## Usage

  ### 1. Credentials

  - Create credentials in n8n of type **SinergiaCRM API**
  - Fill in your SuiteCRM domain, Client ID, and Client Secret  
    *(see SuiteCRM → Admin → OAuth2 Clients)*

  ### 2. Node Configuration

  - **Module:** Auto-discovered list from your API
  - **Operation:** Choose from Get All, Get One, Create, Update, Delete, Get Relationships
  - **Parameters:** Filters, IDs, pagination, or JSON payloads depending on operation

  ### 3. Example – Create a Contact

  Input data:
  ```json
  {
    "first_name": "John",
    "last_name": "Doe",
    "email1": "john.doe@example.com"
  }
  ```

  ---

  ## Supported Operations

  | Operation         | Description                                   |
  |------------------|-----------------------------------------------|
  | Get All          | Fetch records with optional filters & paging  |
  | Get One          | Retrieve a single record by ID                |
  | Create           | Add a new record (JSON fields)                |
  | Update           | Modify a record (PATCH with JSON)             |
  | Delete           | Remove a record by ID                         |
  | Get Relationships| Fetch related records of a module by ID       |

  ---

  ## Requirements

  - SuiteCRM 7.x+ with API and OAuth2 enabled
  - All modules and fields are fetched dynamically
  - For 1:N relations, set the "parent" ID on the child (SuiteCRM logic)
  - Tested against SuiteCRM v7+ JSON API

  ---

  ## Troubleshooting

  - `access_token` missing → Check credentials or OAuth2 setup
  - `405 Method Not Allowed` → PATCH may not be enabled in your SuiteCRM
  - Any API error is returned as node output for transparency

  ---

  ## Contributing

  Contributions welcome!  
  Feel free to open issues or PRs.

  ---

  ## License

  MIT

  ---

  **Maintainer:** Javier Quilez Cabello / [tecnologiasolidaria.org](https://tecnologiasolidaria.org)  
  **Support:** [SuiteCRM Forums](https://community.suitecrm.com/)  
  **Source:** [GitHub](https://github.com/tecnologiasolidaria/n8n-nodes-sinergiacrm)  
  **Docs:** [SuiteCRM JSON API](https://docs.suitecrm.com/developer/api/developer-setup-guide/json-api/)

ai_documentation_summary:
  {"purpose":"A generic n8n node that performs CRUD operations and data retrieval on any module in SinergiaCRM (SuiteCRM 7.x+) using the official JSON API.","capabilities":["Create new records","Read all records with filtering","Read single record by ID","Update existing records","Delete records","Retrieve related records","Dynamic module and field discovery","Advanced filtering with operators","Pagination support","OAuth2 client credentials authentication"],"authentication":"OAuth2 (Client Credentials Flow)","commonUseCases":["Automating data entry into SuiteCRM","Syncing customer data between systems","Retrieving contact lists with custom filters","Updating records based on external triggers","Fetching related records for relationship management"],"limitations":["Requires SuiteCRM 7.x+ with API and OAuth2 enabled","PATCH method may not be enabled in all SuiteCRM configurations","1:N relations require setting the 'parent' ID on the child record according to SuiteCRM logic","Custom node installation required via n8n's custom node guide"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.oauth2","n8n-nodes-base.credentialManager"]}


node_type: @fal-ai/n8n-nodes-fal.falAi
package_name: @fal-ai/n8n-nodes-fal
display_name: fal.ai
description: Generate AI content using fal.ai models and workflows
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: fal_ai
author_github_url: https://github.com/fal-ai-community/n8n-nodes-fal.git
npm_package_name: @fal-ai/n8n-nodes-fal
npm_version: 1.0.1
community_fetched_at: 2026-04-16T09:43:35.947Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "model",
      "options": [
        {
          "name": "Model",
          "value": "model"
        },
        {
          "name": "Workflow",
          "value": "workflow"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate Media",
          "value": "generate",
          "action": "Generate media using AI model",
          "description": "Generate images, videos, audio or other media"
        },
        {
          "name": "Get Model Info",
          "value": "getParameters",
          "action": "Get model parameters and info",
          "description": "Get available parameters and info for a model"
        },
        {
          "name": "Get Analytics",
          "value": "getAnalytics",
          "action": "Get model analytics",
          "description": "Get performance analytics (latency, success rates)"
        },
        {
          "name": "Get Pricing",
          "value": "getPricing",
          "action": "Get model pricing",
          "description": "Get pricing information for models"
        },
        {
          "name": "Get Usage",
          "value": "getUsage",
          "action": "Get usage statistics",
          "description": "Get usage statistics (requires Admin API Key)"
        },
        {
          "name": "List Requests",
          "value": "listRequests",
          "action": "List requests by endpoint",
          "description": "List requests for a specific endpoint/model"
        },
        {
          "name": "Delete Request Payloads",
          "value": "deletePayloads",
          "action": "Delete request payloads",
          "description": "Delete request payloads (requires Admin API Key)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "model"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "runWorkflow",
      "options": [
        {
          "name": "Run Workflow",
          "value": "runWorkflow",
          "action": "Run a workflow",
          "description": "Execute a fal.ai workflow"
        },
        {
          "name": "List Workflows",
          "value": "listWorkflows",
          "action": "List workflows",
          "description": "List all your fal.ai workflows"
        },
        {
          "name": "Get Workflow Details",
          "value": "getWorkflow",
          "action": "Get workflow details",
          "description": "Get details and schema of a specific workflow"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workflow"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Media",
      "value": "generate",
      "action": "Generate media using AI model",
      "description": "Generate images, videos, audio or other media",
      "resource": "model"
    },
    {
      "name": "Get Model Info",
      "value": "getParameters",
      "action": "Get model parameters and info",
      "description": "Get available parameters and info for a model",
      "resource": "model"
    },
    {
      "name": "Get Analytics",
      "value": "getAnalytics",
      "action": "Get model analytics",
      "description": "Get performance analytics (latency, success rates)",
      "resource": "model"
    },
    {
      "name": "Get Pricing",
      "value": "getPricing",
      "action": "Get model pricing",
      "description": "Get pricing information for models",
      "resource": "model"
    },
    {
      "name": "Get Usage",
      "value": "getUsage",
      "action": "Get usage statistics",
      "description": "Get usage statistics (requires Admin API Key)",
      "resource": "model"
    },
    {
      "name": "List Requests",
      "value": "listRequests",
      "action": "List requests by endpoint",
      "description": "List requests for a specific endpoint/model",
      "resource": "model"
    },
    {
      "name": "Delete Request Payloads",
      "value": "deletePayloads",
      "action": "Delete request payloads",
      "description": "Delete request payloads (requires Admin API Key)",
      "resource": "model"
    },
    {
      "name": "Run Workflow",
      "value": "runWorkflow",
      "action": "Run a workflow",
      "description": "Execute a fal.ai workflow",
      "resource": "workflow"
    },
    {
      "name": "List Workflows",
      "value": "listWorkflows",
      "action": "List workflows",
      "description": "List all your fal.ai workflows",
      "resource": "workflow"
    },
    {
      "name": "Get Workflow Details",
      "value": "getWorkflow",
      "action": "Get workflow details",
      "description": "Get details and schema of a specific workflow",
      "resource": "workflow"
    }
  ]

npm_readme:
  # @fal-ai/n8n-nodes-fal

  n8n community node for [fal.ai](https://fal.ai) - access hundreds of AI models for image generation, video generation, text-to-speech, and more.

  ## Installation

  ### In n8n Desktop/Cloud

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

  ### Manual Installation

  ```bash
  cd ~/.n8n/nodes
  npm install @fal-ai/n8n-nodes-fal
  ```

  ## Configuration

  1. Get your API key from [fal.ai Dashboard](https://fal.ai/dashboard/keys)
  2. In n8n, go to **Credentials** > **Add Credential** > **fal.ai API**
  3. Enter your API key

  > **Note:** Some operations (Get Usage, Delete Payloads) require an **Admin API Key**.

  ## Features

  ### Model Operations

  | Operation | Description |
  |-----------|-------------|
  | **Generate Media** | Generate images, videos, audio using any fal.ai model |
  | **Get Model Info** | Get available parameters and schema for a model |
  | **Get Analytics** | Get performance metrics (latency, success rates, error counts) |
  | **Get Pricing** | Get pricing information for models |
  | **Get Usage** | Get usage statistics (requires Admin API Key) |
  | **List Requests** | List requests for a specific endpoint/model |
  | **Delete Request Payloads** | Delete request payloads (requires Admin API Key) |

  ### Workflow Operations

  | Operation | Description |
  |-----------|-------------|
  | **Run Workflow** | Execute a fal.ai workflow with dynamic parameters |
  | **List Workflows** | List all your fal.ai workflows |
  | **Get Workflow Details** | Get details and schema of a specific workflow |

  ## Usage Examples

  ### Generate an Image with Flux

  1. Add **fal.ai** node to your workflow
  2. Select **Model** resource and **Generate Media** operation
  3. Search and select `fal-ai/flux/dev` model
  4. Add parameter: `prompt` = "A beautiful sunset over mountains"
  5. Execute the node

  ### Run a Custom Workflow

  1. Add **fal.ai** node to your workflow
  2. Select **Workflow** resource and **Run Workflow** operation
  3. Select your workflow from the dropdown
  4. Add workflow-specific parameters
  5. Execute the node

  ### Monitor Model Performance

  1. Add **fal.ai** node to your workflow
  2. Select **Model** resource and **Get Analytics** operation
  3. Select a model (e.g., `fal-ai/flux/dev`)
  4. Choose time range and metrics
  5. Execute to get performance data

  ## Supported Models

  This node supports all models available on fal.ai, including:

  - **Image Generation**: Flux, Stable Diffusion, SDXL, etc.
  - **Video Generation**: Kling, Runway, etc.
  - **Text-to-Speech**: Various TTS models
  - **Speech-to-Text**: Whisper and other STT models
  - **Image Editing**: Inpainting, upscaling, style transfer
  - **And many more...**

  Browse all models at [fal.ai/models](https://fal.ai/models)

  ## Async Execution

  For long-running generations (videos, complex images), the node uses fal.ai's queue system:

  - **Wait for Completion**: Enable to wait for the result (default)
  - **Poll Interval**: How often to check status (default: 5 seconds)
  - **Max Wait Time**: Maximum wait time (default: 10 minutes)

  Disable "Wait for Completion" to get the request ID immediately and check status later.

  ## Links

  - [fal.ai Documentation](https://fal.ai/docs)
  - [fal.ai Models](https://fal.ai/models)
  - [fal.ai Dashboard](https://fal.ai/dashboard)
  - [GitHub Repository](https://github.com/fal-ai-community/n8n-nodes-fal)

  ## License

  MIT

ai_documentation_summary:
  {"purpose":"A community n8n node that enables users to generate AI content (images, videos, audio) and manage workflows using fal.ai models.","capabilities":["Generate images using various AI models (Flux, Stable Diffusion, SDXL)","Generate videos using models like Kling and Runway","Text-to-speech generation","Speech-to-text processing","Image editing (inpainting, upscaling, style transfer)","Retrieve model information and schemas","Get analytics and performance metrics","Check pricing information","View usage statistics","List and delete request payloads"],"authentication":"API key required (fal.ai Dashboard keys)","commonUseCases":["Generate promotional images or artwork for marketing materials","Create video content for social media or presentations","Convert text to speech for audio content","Edit existing images (upscaling, inpainting)","Monitor AI model performance and usage costs"],"limitations":["Some operations (Get Usage, Delete Payloads) require an Admin API Key","Async execution may have a maximum wait time of 10 minutes","Long-running tasks require queue system handling with polling"],"relatedNodes":["n8n HTTP Request node","n8n Code node","n8n Credential node"]}


node_type: n8n-nodes-oxylabs-ai-studio.oxylabsAiStudio
package_name: n8n-nodes-oxylabs-ai-studio
display_name: Oxylabs AI Studio
description: Interact with Oxylabs AI Studio API
category: Community
development_style: declarative
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: oxybrain
author_github_url: https://github.com/oxylabs/n8n-nodes-oxylabs-ai-studio
npm_package_name: n8n-nodes-oxylabs-ai-studio
npm_version: 0.1.5
community_fetched_at: 2026-04-16T09:43:35.948Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "scraper",
      "options": [
        {
          "name": "Browser Agent",
          "value": "browserAgent"
        },
        {
          "name": "Crawler",
          "value": "crawler"
        },
        {
          "name": "Map",
          "value": "map"
        },
        {
          "name": "Scraper",
          "value": "scraper"
        },
        {
          "name": "Search",
          "value": "search"
        }
      ],
      "required": true,
      "description": "Choose the resource to use",
      "displayName": "Resource",
      "noDataExpression": true
    }
  ]

npm_readme:
  # n8n-nodes-oxylabs-ai-studio

  This is an n8n community node. It lets you use Oxylabs Ai Studio Apps in your n8n workflows.


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

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

  ## Installation

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

  ## Credentials

  Sign up and get API KEY from [here](https://aistudio.oxylabs.io/settings/api-key)

  ## Compatibility

  node was tested against version `1.100.1`.

  ## Resources

  The node includes four resources: Scraper, Crawler, Browser Agent, and Search. These correspond directly to the same applications available in Oxylabs AI Studio’s [web apps](https://aistudio.oxylabs.io/apps).

  The parameters are nearly identical to those offered by the official SDKs ([Javscript](https://www.npmjs.com/package/oxylabs-ai-studio) and [Python](https://pypi.org/project/oxylabs-ai-studio/)).

  An additional parameter not found in the web interface is `render_javascript`, which is especially useful for handling websites that rely on JavaScript for rendering content.


  ## Usage

  - Scraper is useful for extracting information from a specific URL without getting blocked.

  - Crawler is ideal for scanning an entire domain to collect URLs and their content in order to locate specific information.

  - Search helps retrieve the latest information related to a particular query.

  - Browser Agent controls a remote browser and can perform interactions, such as logging into an app and clicking buttons, making it valuable for scenarios that require user-like actions.



  ## Version history

  - 0.1.0: First version released

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with Oxylabs AI Studio API to perform web scraping, crawling, searching, and browser automation tasks within workflows.","capabilities":["Web scraping from specific URLs","Domain crawling to collect URLs and content","Search queries for retrieving latest information","Browser automation via remote browser control","JavaScript rendering support via render_javascript parameter"],"authentication":"API key required","commonUseCases":["Extracting data from websites without getting blocked","Scanning entire domains to locate specific information","Retrieving up-to-date search results","Automating user-like interactions such as logging in and clicking buttons"],"limitations":["Community node (not official n8n node)","Requires separate API key from Oxylabs AI Studio"],"relatedNodes":["n8n-nodes-web-request","n8n-nodes-http-request"]}


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

updated_at: 2026-04-16 09:43:35
author_name: pgrm
author_github_url: https://github.com/apaleo/n8n-nodes-apaleo.git
npm_package_name: @apaleo/n8n-nodes-apaleo-official
npm_version: 1.0.37
community_fetched_at: 2026-04-16T09:43:35.949Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "Availability",
      "options": [
        {
          "name": "Availability",
          "value": "Availability"
        },
        {
          "name": "ReservationAvailability",
          "value": "ReservationAvailability"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "availability-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Block",
      "options": [
        {
          "name": "Block",
          "value": "Block"
        },
        {
          "name": "BlockAction",
          "value": "BlockActions"
        },
        {
          "name": "Booking",
          "value": "Booking"
        },
        {
          "name": "Group",
          "value": "Group"
        },
        {
          "name": "Offer",
          "value": "Offer"
        },
        {
          "name": "Reservation",
          "value": "Reservation"
        },
        {
          "name": "ReservationAction",
          "value": "ReservationActions"
        },
        {
          "name": "Type",
          "value": "Types"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Folio",
      "options": [
        {
          "name": "Folio",
          "value": "Folio"
        },
        {
          "name": "FolioAction",
          "value": "FolioActions"
        },
        {
          "name": "FolioPayment",
          "value": "FolioPayments"
        },
        {
          "name": "Invoice",
          "value": "Invoice"
        },
        {
          "name": "InvoiceAction",
          "value": "InvoiceAction"
        },
        {
          "name": "SubLedger",
          "value": "SubLedger"
        },
        {
          "name": "Type",
          "value": "Types"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Property",
      "options": [
        {
          "name": "Property",
          "value": "Property"
        },
        {
          "name": "Unit",
          "value": "Unit"
        },
        {
          "name": "UnitAttribute",
          "value": "UnitAttribute"
        },
        {
          "name": "UnitGroup",
          "value": "UnitGroup"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "inventory-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "BookingLogs",
      "options": [
        {
          "name": "BookingLog",
          "value": "BookingLogs"
        },
        {
          "name": "FinanceLog",
          "value": "FinanceLogs"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "logs-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Maintenance",
      "options": [
        {
          "name": "Maintenance",
          "value": "Maintenance"
        },
        {
          "name": "Operation",
          "value": "Operations"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "operations-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "AgeCategory",
      "options": [
        {
          "name": "AgeCategory",
          "value": "AgeCategory"
        },
        {
          "name": "CancellationPolicy",
          "value": "CancellationPolicy"
        },
        {
          "name": "Company",
          "value": "Company"
        },
        {
          "name": "CorporateCode",
          "value": "CorporateCodes"
        },
        {
          "name": "NoShowPolicy",
          "value": "NoShowPolicy"
        },
        {
          "name": "PromoCode",
          "value": "PromoCodes"
        },
        {
          "name": "Rate",
          "value": "Rate"
        },
        {
          "name": "RatePlan",
          "value": "RatePlan"
        },
        {
          "name": "Service",
          "value": "Service"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "Reports",
      "options": [
        {
          "name": "Report",
          "value": "Reports"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "reports-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "CapturePolicies",
      "options": [
        {
          "name": "CapturePolicy",
          "value": "CapturePolicies"
        },
        {
          "name": "CityTax",
          "value": "CityTax"
        },
        {
          "name": "CustomSubAccount",
          "value": "CustomSubAccounts"
        },
        {
          "name": "FeatureSetting",
          "value": "FeatureSettings"
        },
        {
          "name": "InvoiceAddress",
          "value": "InvoiceAddress"
        },
        {
          "name": "Language",
          "value": "Languages"
        },
        {
          "name": "MarketSegment",
          "value": "MarketSegment"
        },
        {
          "name": "PropertySetting",
          "value": "PropertySettings"
        },
        {
          "name": "TimeSliceDefinition",
          "value": "TimeSliceDefinitions"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "HealthCheck",
      "options": [
        {
          "name": "HealthCheck",
          "value": "HealthCheck"
        },
        {
          "name": "Subscription",
          "value": "Subscriptions"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "group": [
            "webhook-v1"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "AvailabilityServicesGet",
      "options": [
        {
          "name": "Get Available Services",
          "value": "AvailabilityServicesGet",
          "action": "Get available services",
          "description": "Get a list of all available services in a property"
        },
        {
          "name": "Get Available Unit Groups",
          "value": "AvailabilityUnit-groupsGet",
          "action": "Get available unit groups",
          "description": "Get a list of all available unit groups in a property"
        },
        {
          "name": "Get Available Units",
          "value": "AvailabilityUnitsGet",
          "action": "Get available units",
          "description": "Get a list of all available units in a property"
        },
        {
          "name": "Update Unit Group Availability",
          "value": "AvailabilityUnit-groupsByIdPatch",
          "action": "Update unit group availability",
          "description": "Allows to modify the unit group availability"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "availability-v1"
          ],
          "resource": [
            "Availability"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "AvailabilityReservationsByIdUnitsGet",
      "options": [
        {
          "name": "Get Available Units For Reservation",
          "value": "AvailabilityReservationsByIdUnitsGet",
          "action": "Get available units for reservation",
          "description": "Get a list of all available units for a reservation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "availability-v1"
          ],
          "resource": [
            "ReservationAvailability"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingBlocks$countGet",
      "options": [
        {
          "name": "Count Blocks",
          "value": "BookingBlocks$countGet",
          "action": "Count blocks",
          "description": "Returns number of blocks"
        },
        {
          "name": "Create Block",
          "value": "BookingBlocksPost",
          "action": "Create block",
          "description": "Creates a block"
        },
        {
          "name": "Get Block",
          "value": "BookingBlocksByIdGet",
          "action": "Get block",
          "description": "Returns a specific block"
        },
        {
          "name": "List Blocks",
          "value": "BookingBlocksGet",
          "action": "List blocks",
          "description": "Returns a list of blocks"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Block"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingBlock-actionsByIdAmendPut",
      "options": [
        {
          "name": "Amend Block",
          "value": "BookingBlock-actionsByIdAmendPut",
          "action": "Amend block",
          "description": "Allow to modify a block"
        },
        {
          "name": "Cancel Block",
          "value": "BookingBlock-actionsByIdCancelPut",
          "action": "Cancel block",
          "description": "Cancel a block"
        },
        {
          "name": "Confirm Block",
          "value": "BookingBlock-actionsByIdConfirmPut",
          "action": "Confirm block",
          "description": "Confirm a block"
        },
        {
          "name": "Release Block",
          "value": "BookingBlock-actionsByIdReleasePut",
          "action": "Release block",
          "description": "Release a block"
        },
        {
          "name": "Wash Block",
          "value": "BookingBlock-actionsByIdWashPut",
          "action": "Wash block",
          "description": "Wash a block"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "BlockActions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingBookingsByIdReservationsPost",
      "options": [
        {
          "name": "Add Reservation To Booking",
          "value": "BookingBookingsByIdReservationsPost",
          "action": "Add reservation to booking",
          "description": "Add one or multiple reservations to an existing booking"
        },
        {
          "name": "Add Reservation To Booking Force",
          "value": "BookingBookingsByIdReservations$forcePost",
          "action": "Add reservation to booking force",
          "description": "Add one or multiple reservations to an existing booking regardless of availability or restrictions"
        },
        {
          "name": "Create Booking",
          "value": "BookingBookingsPost",
          "action": "Create booking",
          "description": "Creates a booking for one or more reservations"
        },
        {
          "name": "Create Booking Force",
          "value": "BookingBookings$forcePost",
          "action": "Create booking force",
          "description": "Creates a booking for one or more reservations regardless of availability or restrictions"
        },
        {
          "name": "Get Booking",
          "value": "BookingBookingsByIdGet",
          "action": "Get booking",
          "description": "Returns a specific booking"
        },
        {
          "name": "List Bookings",
          "value": "BookingBookingsGet",
          "action": "List bookings",
          "description": "Returns a list of all bookings, filtered by the specified parameters"
        },
        {
          "name": "Update Booking",
          "value": "BookingBookingsByIdPatch",
          "action": "Update booking",
          "description": "Allows to modify certain booking properties"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Booking"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingGroupsByIdReservationsPost",
      "options": [
        {
          "name": "Add Reservation To Group",
          "value": "BookingGroupsByIdReservationsPost",
          "action": "Add reservation to group",
          "description": "Add one or multiple reservations to an existing group booking using blocked inventory"
        },
        {
          "name": "Create Group",
          "value": "BookingGroupsPost",
          "action": "Create group",
          "description": "Creates a group booking"
        },
        {
          "name": "Get Group",
          "value": "BookingGroupsByIdGet",
          "action": "Get group",
          "description": "Returns a specific group booking"
        },
        {
          "name": "List Groups",
          "value": "BookingGroupsGet",
          "action": "List groups",
          "description": "Returns a list of all group bookings, filtered by the specified parameters"
        },
        {
          "name": "Update Group",
          "value": "BookingGroupsByIdPatch",
          "action": "Update group",
          "description": "Allows to modify certain group booking properties"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Group"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingOffer-indexGet",
      "options": [
        {
          "name": "List Offer Index",
          "value": "BookingOffer-indexGet",
          "action": "List offer index",
          "description": "Returns offers with rates and availabilities for the specified range"
        },
        {
          "name": "List Offers",
          "value": "BookingOffersGet",
          "action": "List offers",
          "description": "Returns offers for one specific stay"
        },
        {
          "name": "List Rate Plan Offers",
          "value": "BookingRate-plan-offersGet",
          "action": "List rate plan offers",
          "description": "Returns offers for a specific rate plan"
        },
        {
          "name": "List Service Offers",
          "value": "BookingService-offersGet",
          "action": "List service offers",
          "description": "Returns service offers for one specific stay"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Offer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingReservations$countGet",
      "options": [
        {
          "name": "Count Reservations",
          "value": "BookingReservations$countGet",
          "action": "Count reservations",
          "description": "Returns the number of reservations fulfilling the criteria specified in the parameters"
        },
        {
          "name": "Get Reservation",
          "value": "BookingReservationsByIdGet",
          "action": "Get reservation",
          "description": "Returns a specific reservation"
        },
        {
          "name": "Get Reservation Offers",
          "value": "BookingReservationsByIdOffersGet",
          "action": "Get reservation offers",
          "description": "Returns offers for one specific reservation"
        },
        {
          "name": "Get Reservation Service Offers",
          "value": "BookingReservationsByIdService-offersGet",
          "action": "Get reservation service offers",
          "description": "Returns service offers for one specific reservation"
        },
        {
          "name": "Get Reservation Services",
          "value": "BookingReservationsByIdServicesGet",
          "action": "Get reservation services",
          "description": "Returns the services booked for a specific reservation"
        },
        {
          "name": "List Reservations",
          "value": "BookingReservationsGet",
          "action": "List reservations",
          "description": "Returns a list of all reservations, filtered by the specified parameters"
        },
        {
          "name": "Remove Service From Reservation",
          "value": "BookingReservationsByIdServicesDelete",
          "action": "Remove service from reservation",
          "description": "Removes a service from a reservation"
        },
        {
          "name": "Update Reservation",
          "value": "BookingReservationsByIdPatch",
          "action": "Update reservation",
          "description": "Allows to modify certain reservation properties"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Reservation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingReservation-actionsByIdAdd-city-taxPut",
      "options": [
        {
          "name": "Add City Tax",
          "value": "BookingReservation-actionsByIdAdd-city-taxPut",
          "action": "Add city tax",
          "description": "Adds the city tax to a reservation"
        },
        {
          "name": "Amend Reservation",
          "value": "BookingReservation-actionsByIdAmendPut",
          "action": "Amend reservation",
          "description": "Allows you to amend the stay details of a reservation"
        },
        {
          "name": "Amend Reservation Force",
          "value": "BookingReservation-actionsByIdAmend$forcePut",
          "action": "Amend reservation force",
          "description": "Allows you to amend the stay details of a reservation regardless of availability or restrictions"
        },
        {
          "name": "Assign Specific Unit",
          "value": "BookingReservation-actionsByIdAssign-unitByUnitIdPut",
          "action": "Assign specific unit",
          "description": "Assign a specific unit to a reservation"
        },
        {
          "name": "Assign Unit",
          "value": "BookingReservation-actionsByIdAssign-unitPut",
          "action": "Assign unit",
          "description": "Assign a unit to a reservation"
        },
        {
          "name": "Book Service",
          "value": "BookingReservation-actionsByIdBook-servicePut",
          "action": "Book service",
          "description": "Book the service for a specific reservation"
        },
        {
          "name": "Book Service Force",
          "value": "BookingReservation-actionsByIdBook-service$forcePut",
          "action": "Book service force",
          "description": "Book the service for a specific reservation regardless of availability"
        },
        {
          "name": "Cancel Reservation",
          "value": "BookingReservation-actionsByIdCancelPut",
          "action": "Cancel reservation",
          "description": "Cancel a reservation"
        },
        {
          "name": "Check In",
          "value": "BookingReservation-actionsByIdCheckinPut",
          "action": "Check in",
          "description": "Check-in of a reservation"
        },
        {
          "name": "Check Out",
          "value": "BookingReservation-actionsByIdCheckoutPut",
          "action": "Check out",
          "description": "Check-out of a reservation"
        },
        {
          "name": "Mark No Show",
          "value": "BookingReservation-actionsByIdNoshowPut",
          "action": "Mark no show",
          "description": "Set a reservation to No-show"
        },
        {
          "name": "Remove City Tax",
          "value": "BookingReservation-actionsByIdRemove-city-taxPut",
          "action": "Remove city tax",
          "description": "Removes the city tax from a reservation"
        },
        {
          "name": "Revert Check In",
          "value": "BookingReservation-actionsByIdRevert-checkinPut",
          "action": "Revert check in",
          "description": "Reverses the check-in of a reservation"
        },
        {
          "name": "Unassign Units",
          "value": "BookingReservation-actionsByIdUnassign-unitsPut",
          "action": "Unassign units",
          "description": "Unassign units from a reservation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "ReservationActions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "BookingTypesByTypeAllowed-valuesGet",
      "options": [
        {
          "name": "List Allowed Values",
          "value": "BookingTypesByTypeAllowed-valuesGet",
          "action": "List allowed values",
          "description": "Returns a list of values that a field of the specified type can take in the specified country"
        },
        {
          "name": "List Sources",
          "value": "BookingTypesSourcesGet",
          "action": "List sources",
          "description": "Returns a list of supported sources"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "booking-v1"
          ],
          "resource": [
            "Types"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceFoliosByIdHead",
      "options": [
        {
          "name": "Check Folio Exists",
          "value": "FinanceFoliosByIdHead",
          "action": "Check folio exists",
          "description": "Check if the folio exists"
        },
        {
          "name": "Count Folios",
          "value": "FinanceFolios$countGet",
          "action": "Count folios",
          "description": "Returns number of folios"
        },
        {
          "name": "Create Folio",
          "value": "FinanceFoliosPost",
          "action": "Create folio",
          "description": "Create additional folios for a reservation, or new external folios"
        },
        {
          "name": "Get Folio",
          "value": "FinanceFoliosByIdGet",
          "action": "Get folio",
          "description": "Returns one folio"
        },
        {
          "name": "List Folios",
          "value": "FinanceFoliosGet",
          "action": "List folios",
          "description": "Returns a list of all folios"
        },
        {
          "name": "Update Folio",
          "value": "FinanceFoliosByIdPatch",
          "action": "Update folio",
          "description": "Allows to modify certain properties of a folio"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "Folio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceFolio-actionsBulk-movePut",
      "options": [
        {
          "name": "Bulk Move Charges",
          "value": "FinanceFolio-actionsBulk-movePut",
          "action": "Bulk move charges",
          "description": "Move multiple charges from one folio to another. Multiple source folios and multiple target folios can be specified."
        },
        {
          "name": "Close Folio",
          "value": "FinanceFolio-actionsByFolioIdClosePut",
          "action": "Close folio",
          "description": "Closes a folio"
        },
        {
          "name": "Correct Folio",
          "value": "FinanceFolio-actionsByFolioIdCorrectPost",
          "action": "Correct folio",
          "description": "Corrects a folio by moving some charges. This operation creates a new folio with the charges from the request. The payment, equal to the sum of charges, is also split to this new folio so that both folios will have 0 balance."
        },
        {
          "name": "Create Bulk Allowances",
          "value": "FinanceFolio-actionsByFolioIdBulk-allowancesPost",
          "action": "Create bulk allowances",
          "description": "Posts allowances for a folio"
        },
        {
          "name": "Create Charge Allowance",
          "value": "FinanceFolio-actionsByFolioIdChargesByChargeIdAllowancesPost",
          "action": "Create charge allowance",
          "description": "Posts an allowance for a charge"
        },
        {
          "name": "Create Folio Allowance",
          "value": "FinanceFolio-actionsByFolioIdAllowancesPost",
          "action": "Create folio allowance",
          "description": "Posts an allowance for a folio"
        },
        {
          "name": "Create Folio Cancellation Fee",
          "value": "FinanceFolio-actionsByFolioIdCancellation-feePost",
          "action": "Create folio cancellation fee",
          "description": "Adds and directly posts a cancellation fee to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added. If a routing instruction is defined for the cancellation fee service type, the fee will be moved to the destination folio."
        },
        {
          "name": "Create Folio Charge",
          "value": "FinanceFolio-actionsByFolioIdChargesPost",
          "action": "Create folio charge",
          "description": "Adds and directly posts a charge to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added."
        },
        {
          "name": "Create Folio No Show Fee",
          "value": "FinanceFolio-actionsByFolioIdNo-show-feePost",
          "action": "Create folio no show fee",
          "description": "Adds and directly posts a no-show fee to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added. If a routing instruction is defined for the no-show fee service type, the fee will be moved to the destination folio."
        },
        {
          "name": "Create Folio Transitory Charge",
          "value": "FinanceFolio-actionsByFolioIdTransitory-chargesPost",
          "action": "Create folio transitory charge",
          "description": "Adds and directly posts a transitory charge to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added."
        },
        {
          "name": "Move All Folio Charges",
          "value": "FinanceFolio-actionsByFolioIdMove-all-chargesPut",
          "action": "Move all folio charges",
          "description": "Move all charges and transitory charges from one folio to another"
        },
        {
          "name": "Move Folio Charges",
          "value": "FinanceFolio-actionsByFolioIdMove-chargesPut",
          "action": "Move folio charges",
          "description": "Move multiple charges, allowances and transitory charges from one folio to another"
        },
        {
          "name": "Move Folio Payments",
          "value": "FinanceFolio-actionsByFolioIdMove-paymentsPut",
          "action": "Move folio payments",
          "description": "Move multiple payments from one guest/booking folio to another"
        },
        {
          "name": "Post Folio Charges",
          "value": "FinanceFolio-actionsByFolioIdPost-chargesPut",
          "action": "Post folio charges",
          "description": "Posts all unposted charges for the whole length of stay"
        },
        {
          "name": "Reopen Folio",
          "value": "FinanceFolio-actionsByFolioIdReopenPut",
          "action": "Reopen folio",
          "description": "Reopens a folio"
        },
        {
          "name": "Split Folio Charge",
          "value": "FinanceFolio-actionsByFolioIdChargesByChargeIdSplitPost",
          "action": "Split folio charge",
          "description": "Splits a charge into two using the percent or amount provided Creates an allowance and two new charges"
        },
        {
          "name": "Split Folio Payment",
          "value": "FinanceFolio-actionsByFolioIdPaymentsByPaymentIdSplitPost",
          "action": "Split folio payment",
          "description": "Splits a payment into two using the percent or amount provided Creates a refund and two new payments"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "FolioActions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceFoliosByFolioIdPaymentsByPaymentIdCancelPut",
      "options": [
        {
          "name": "Cancel Payment",
          "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdCancelPut",
          "action": "Cancel payment",
          "description": "Cancels a pending payment link"
        },
        {
          "name": "Create Account Payment",
          "value": "FinanceFoliosByFolioIdPaymentsBy-payment-accountPost",
          "action": "Create account payment",
          "description": "Trigger a payment using the payment account stored on the reservation"
        },
        {
          "name": "Create Auth Payment",
          "value": "FinanceFoliosByFolioIdPaymentsBy-authorizationPost",
          "action": "Create auth payment",
          "description": "Captures a specific amount from a pre-authorization and posts it to the folio"
        },
        {
          "name": "Create Folio Payment",
          "value": "FinanceFoliosByFolioIdPaymentsPost",
          "action": "Create folio payment",
          "description": "Trigger a custom payment for the folio"
        },
        {
          "name": "Create Folio Refund",
          "value": "FinanceFoliosByFolioIdRefundsPost",
          "action": "Create folio refund",
          "description": "Trigger a refund for the folio"
        },
        {
          "name": "Create Payment Link",
          "value": "FinanceFoliosByFolioIdPaymentsBy-linkPost",
          "action": "Create payment link",
          "description": "Creates a link to a payment form where guests can pay"
        },
        {
          "name": "Create Payment Refund",
          "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdRefundsPost",
          "action": "Create payment refund",
          "description": "Trigger a refund for a specific payment"
        },
        {
          "name": "Create Terminal Payment",
          "value": "FinanceFoliosByFolioIdPaymentsBy-terminalPost",
          "action": "Create terminal payment",
          "description": "Trigger a payment on a card terminal for the folio"
        },
        {
          "name": "Get Folio Payment",
          "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdGet",
          "action": "Get folio payment",
          "description": "Get a payment by ID"
        },
        {
          "name": "Get Folio Refund",
          "value": "FinanceFoliosByFolioIdRefundsByRefundIdGet",
          "action": "Get folio refund",
          "description": "Get a refund by ID"
        },
        {
          "name": "List Folio Payments",
          "value": "FinanceFoliosByFolioIdPaymentsGet",
          "action": "List folio payments",
          "description": "Get a list of payments"
        },
        {
          "name": "List Folio Refunds",
          "value": "FinanceFoliosByFolioIdRefundsGet",
          "action": "List folio refunds",
          "description": "Get a list of refunds"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "FolioPayments"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceInvoicesPost",
      "options": [
        {
          "name": "Create Invoice",
          "value": "FinanceInvoicesPost",
          "action": "Create invoice",
          "description": "Creates an invoice for one specific folio"
        },
        {
          "name": "Get Invoice",
          "value": "FinanceInvoicesByIdGet",
          "action": "Get invoice",
          "description": "Gets invoice data"
        },
        {
          "name": "Get Invoice Pdf",
          "value": "FinanceInvoicesByIdPdfGet",
          "action": "Get invoice pdf",
          "description": "Gets an invoice PDF file"
        },
        {
          "name": "List Invoice Preview",
          "value": "FinanceInvoicesPreviewGet",
          "action": "List invoice preview",
          "description": "Gets an invoice preview for one specific folio"
        },
        {
          "name": "List Invoice Preview Pdf",
          "value": "FinanceInvoicesPreview-pdfGet",
          "action": "List invoice preview pdf",
          "description": "Gets a preview invoice PDF for one specific folio"
        },
        {
          "name": "List Invoices",
          "value": "FinanceInvoicesGet",
          "action": "List invoices",
          "description": "Gets the list of all invoices (the metadata only, not the files)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "Invoice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceInvoice-actionsByIdCancelPut",
      "options": [
        {
          "name": "Cancel Invoice",
          "value": "FinanceInvoice-actionsByIdCancelPut",
          "action": "Cancel invoice",
          "description": "Cancels an invoice"
        },
        {
          "name": "Pay Invoice",
          "value": "FinanceInvoice-actionsByIdPayPut",
          "action": "Pay invoice",
          "description": "Marks an invoice as paid"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "InvoiceAction"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceAccountsExportPost",
      "options": [
        {
          "name": "Export Accounts",
          "value": "FinanceAccountsExportPost",
          "action": "Export accounts",
          "description": "Returns transactions filtered by timestamp for a property for a given period"
        },
        {
          "name": "Export Accounts Daily",
          "value": "FinanceAccountsExport-dailyPost",
          "action": "Export accounts daily",
          "description": "Returns transactions filtered by date (business day) for a property for a given period"
        },
        {
          "name": "Export Accounts Gross",
          "value": "FinanceAccountsExport-gross-dailyPost",
          "action": "Export accounts gross",
          "description": "Returns gross transactions filtered by date (business day) for a property for a given period"
        },
        {
          "name": "Get Account Aggregate",
          "value": "FinanceAccountsAggregate-dailyPost",
          "action": "Get account aggregate",
          "description": "Aggregates transactions by date (business day) for all accounts and a given period"
        },
        {
          "name": "Get Account Aggregate Pairs",
          "value": "FinanceAccountsAggregate-pairs-dailyPost",
          "action": "Get account aggregate pairs",
          "description": "Aggregates transactions pairs by date (business day) for all accounts and a given period"
        },
        {
          "name": "Get Account By Number",
          "value": "FinanceAccountsByNumberGet",
          "action": "Get account by number",
          "description": "Returns one account"
        },
        {
          "name": "Get Accounts Aggregate",
          "value": "FinanceAccountsAggregatePost",
          "action": "Get accounts aggregate",
          "description": "Aggregates transactions by timestamp for all accounts and a given period"
        },
        {
          "name": "List Account Schema",
          "value": "FinanceAccountsSchemaGet",
          "action": "List account schema",
          "description": "Returns the chart of accounts of the subledger"
        },
        {
          "name": "List Child Accounts",
          "value": "FinanceAccountsChild-accountsGet",
          "action": "List child accounts",
          "description": "Returns a list of child accounts for a specified parent account"
        },
        {
          "name": "List External Accounts",
          "value": "FinanceExternal-accountsGet",
          "action": "List external accounts",
          "description": "Returns a list of external accounts"
        },
        {
          "name": "List Global Accounts",
          "value": "FinanceGlobal-accountsGet",
          "action": "List global accounts",
          "description": "Returns a list of global accounts"
        },
        {
          "name": "List Guest Accounts",
          "value": "FinanceGuest-accountsGet",
          "action": "List guest accounts",
          "description": "Returns a list of guest accounts"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "SubLedger"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "FinanceTypesCurrenciesGet",
      "options": [
        {
          "name": "List Currencies",
          "value": "FinanceTypesCurrenciesGet",
          "action": "List currencies",
          "description": "Returns a list of all currencies"
        },
        {
          "name": "List Payment Methods",
          "value": "FinanceTypesPayment-methodsGet",
          "action": "List payment methods",
          "description": "Returns a list of all supported payment methods"
        },
        {
          "name": "List Service Types",
          "value": "FinanceTypesService-typesGet",
          "action": "List service types",
          "description": "Returns a list of all supported service types"
        },
        {
          "name": "List Vat Types",
          "value": "FinanceTypesVatGet",
          "action": "List vat types",
          "description": "Returns a list of all VAT types"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "finance-v1"
          ],
          "resource": [
            "Types"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "InventoryPropertiesPost",
      "options": [
        {
          "name": "Create Property",
          "value": "InventoryPropertiesPost",
          "action": "Create property",
          "description": "Creates a property"
        },
        {
          "name": "Get Property",
          "value": "InventoryPropertiesByIdGet",
          "action": "Get property",
          "description": "Get a property"
        },
        {
          "name": "List Properties",
          "value": "InventoryPropertiesGet",
          "action": "List properties",
          "description": "Get a properties list"
        },
        {
          "name": "Update Property",
          "value": "InventoryPropertiesByIdPatch",
          "action": "Update property",
          "description": "Allows to modify property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "inventory-v1"
          ],
          "resource": [
            "Property"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "InventoryUnitsByIdHead",
      "options": [
        {
          "name": "Check Unit Exists",
          "value": "InventoryUnitsByIdHead",
          "action": "Check unit exists",
          "description": "Check if a unit exists"
        },
        {
          "name": "Count Units",
          "value": "InventoryUnits$countGet",
          "action": "Count units",
          "description": "Returns number of units"
        },
        {
          "name": "Create Multiple Units",
          "value": "InventoryUnitsBulkPost",
          "action": "Create multiple units"
        },
        {
          "name": "Create Unit",
          "value": "InventoryUnitsPost",
          "action": "Create unit",
          "description": "Create a unit"
        },
        {
          "name": "Delete Unit",
          "value": "InventoryUnitsByIdDelete",
          "action": "Delete unit",
          "description": "Delete a unit"
        },
        {
          "name": "Get Unit",
          "value": "InventoryUnitsByIdGet",
          "action": "Get unit",
          "description": "Get a unit"
        },
        {
          "name": "List Units",
          "value": "InventoryUnitsGet",
          "action": "List units",
          "description": "Get a units list"
        },
        {
          "name": "Update Multiple Units",
          "value": "InventoryUnitsPatch",
          "action": "Update multiple units",
          "description": "Allows to patch one or more units"
        },
        {
          "name": "Update Unit",
          "value": "InventoryUnitsByIdPatch",
          "action": "Update unit",
          "description": "Allows to patch unit"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "inventory-v1"
          ],
          "resource": [
            "Unit"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "InventoryUnit-attributesByIdHead",
      "options": [
        {
          "name": "Check Unit Attribute Exists",
          "value": "InventoryUnit-attributesByIdHead",
          "action": "Check unit attribute exists",
          "description": "Check if a unit attribute exists"
        },
        {
          "name": "Create Unit Attribute",
          "value": "InventoryUnit-attributesPost",
          "action": "Create unit attribute",
          "description": "Create a unit attribute"
        },
        {
          "name": "Get Unit Attribute",
          "value": "InventoryUnit-attributesByIdGet",
          "action": "Get unit attribute",
          "description": "Get unit attribute by id"
        },
        {
          "name": "List Unit Attributes",
          "value": "InventoryUnit-attributesGet",
          "action": "List unit attributes",
          "description": "Get unit attribute list"
        },
        {
          "name": "Update Unit Attribute",
          "value": "InventoryUnit-attributesByIdPatch",
          "action": "Update unit attribute",
          "description": "Allows to modify unit attribute"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "inventory-v1"
          ],
          "resource": [
            "UnitAttribute"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "InventoryUnit-groupsByIdHead",
      "options": [
        {
          "name": "Check Unit Group Exists",
          "value": "InventoryUnit-groupsByIdHead",
          "action": "Check unit group exists",
          "description": "Check if a unit group exists"
        },
        {
          "name": "Count Unit Groups",
          "value": "InventoryUnit-groups$countGet",
          "action": "Count unit groups",
          "description": "Returns number of unit groups"
        },
        {
          "name": "Create Unit Group",
          "value": "InventoryUnit-groupsPost",
          "action": "Create unit group",
          "description": "Create a unit group"
        },
        {
          "name": "Get Unit Group",
          "value": "InventoryUnit-groupsByIdGet",
          "action": "Get unit group",
          "description": "Get a unit group"
        },
        {
          "name": "List Unit Groups",
          "value": "InventoryUnit-groupsGet",
          "action": "List unit groups",
          "description": "Get all unit groups, or all unit groups for a property"
        },
        {
          "name": "Update Unit Group",
          "value": "InventoryUnit-groupsByIdPut",
          "action": "Update unit group",
          "description": "Replace a unit group"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "inventory-v1"
          ],
          "resource": [
            "UnitGroup"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "LogsBookingReservationGet",
      "options": [
        {
          "name": "List Reservation Logs",
          "value": "LogsBookingReservationGet",
          "action": "List reservation logs",
          "description": "Returns reservation change log entries sorted by the timestamp"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "logs-v1"
          ],
          "resource": [
            "BookingLogs"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "LogsFinanceFolioGet",
      "options": [
        {
          "name": "List Folio Logs",
          "value": "LogsFinanceFolioGet",
          "action": "List folio logs",
          "description": "Returns folio change log entries sorted by the timestamp"
        },
        {
          "name": "List Night Audit Logs",
          "value": "LogsFinanceNight-auditGet",
          "action": "List night audit logs",
          "description": "Returns the night audit logs"
        },
        {
          "name": "List Transaction Export Logs",
          "value": "LogsFinanceTransactions-exportGet",
          "action": "List transaction export logs",
          "description": "Returns the audit log for all accounting exports that have been done"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "logs-v1"
          ],
          "resource": [
            "FinanceLogs"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "OperationsMaintenancesByIdHead",
      "options": [
        {
          "name": "Check Maintenance Exists",
          "value": "OperationsMaintenancesByIdHead",
          "action": "Check maintenance exists",
          "description": "Check if a maintenance exists"
        },
        {
          "name": "Count Maintenances",
          "value": "OperationsMaintenances$countGet",
          "action": "Count maintenances",
          "description": "Returns number of maintenances"
        },
        {
          "name": "Create Maintenance",
          "value": "OperationsMaintenancesPost",
          "action": "Create maintenance",
          "description": "Create a new maintenance window"
        },
        {
          "name": "Create Multiple Maintenances",
          "value": "OperationsMaintenancesBulkPost",
          "action": "Create multiple maintenances"
        },
        {
          "name": "Delete Maintenance",
          "value": "OperationsMaintenancesByIdDelete",
          "action": "Delete maintenance",
          "description": "Delete a maintenance"
        },
        {
          "name": "Get Maintenance",
          "value": "OperationsMaintenancesByIdGet",
          "action": "Get maintenance",
          "description": "Get a specific maintenance"
        },
        {
          "name": "List Maintenances",
          "value": "OperationsMaintenancesGet",
          "action": "List maintenances",
          "description": "Get list of maintenances"
        },
        {
          "name": "Update Maintenance",
          "value": "OperationsMaintenancesByIdPatch",
          "action": "Update maintenance",
          "description": "Modify a maintenance"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "operations-v1"
          ],
          "resource": [
            "Maintenance"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "OperationsNight-auditPut",
      "options": [
        {
          "name": "Run Night Audit",
          "value": "OperationsNight-auditPut",
          "action": "Run night audit",
          "description": "Performs the night audit for one property"
        },
        {
          "name": "Update Units Condition",
          "value": "OperationsUnits-conditionPut",
          "action": "Update units condition",
          "description": "Change the condition of a unit"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "operations-v1"
          ],
          "resource": [
            "Operations"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsAge-categoriesPost",
      "options": [
        {
          "name": "Create Age Category",
          "value": "SettingsAge-categoriesPost",
          "action": "Create age category",
          "description": "Create an age category"
        },
        {
          "name": "Get Age Category",
          "value": "SettingsAge-categoriesByIdGet",
          "action": "Get age category",
          "description": "Get an age category"
        },
        {
          "name": "List Age Categories",
          "value": "SettingsAge-categoriesGet",
          "action": "List age categories",
          "description": "Get an age category list"
        },
        {
          "name": "Update Age Category",
          "value": "SettingsAge-categoriesByIdPatch",
          "action": "Update age category",
          "description": "Allows to modify properties of an age category"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "AgeCategory"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanCancellation-policiesPost",
      "options": [
        {
          "name": "Create Cancellation Policy",
          "value": "RateplanCancellation-policiesPost",
          "action": "Create cancellation policy",
          "description": "Create a cancellation policy"
        },
        {
          "name": "Get Cancellation Policy",
          "value": "RateplanCancellation-policiesByIdGet",
          "action": "Get cancellation policy",
          "description": "Get a specific cancellation policy"
        },
        {
          "name": "List Cancellation Policies",
          "value": "RateplanCancellation-policiesGet",
          "action": "List cancellation policies",
          "description": "Get all cancellation policies"
        },
        {
          "name": "Update Cancellation Policy",
          "value": "RateplanCancellation-policiesByIdPatch",
          "action": "Update cancellation policy",
          "description": "Allows to modify properties of a cancellation policy"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "CancellationPolicy"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanCompaniesPost",
      "options": [
        {
          "name": "Create Company",
          "value": "RateplanCompaniesPost",
          "action": "Create company",
          "description": "Create a company"
        },
        {
          "name": "Get Company",
          "value": "RateplanCompaniesByIdGet",
          "action": "Get company",
          "description": "Get a company"
        },
        {
          "name": "List Companies",
          "value": "RateplanCompaniesGet",
          "action": "List companies",
          "description": "Get a list of companies"
        },
        {
          "name": "Update Company",
          "value": "RateplanCompaniesByIdPatch",
          "action": "Update company",
          "description": "Modify a company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "Company"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanCorporate-codesCodesGet",
      "options": [
        {
          "name": "List Corporate Codes",
          "value": "RateplanCorporate-codesCodesGet",
          "action": "List corporate codes",
          "description": "Returns a list of corporate codes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "CorporateCodes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanNo-show-policiesPost",
      "options": [
        {
          "name": "Create No Show Policy",
          "value": "RateplanNo-show-policiesPost",
          "action": "Create no show policy",
          "description": "Create a no-show policy"
        },
        {
          "name": "Get No Show Policy",
          "value": "RateplanNo-show-policiesByIdGet",
          "action": "Get no show policy",
          "description": "Get a specific no-show policy"
        },
        {
          "name": "List No Show Policies",
          "value": "RateplanNo-show-policiesGet",
          "action": "List no show policies",
          "description": "Get all no-show policies"
        },
        {
          "name": "Update No Show Policy",
          "value": "RateplanNo-show-policiesByIdPatch",
          "action": "Update no show policy",
          "description": "Allows to modify properties of a no-show policy"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "NoShowPolicy"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanPromo-codesCodesGet",
      "options": [
        {
          "name": "List Promo Codes",
          "value": "RateplanPromo-codesCodesGet",
          "action": "List promo codes",
          "description": "Returns a list of promo codes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "PromoCodes"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanRate-plansByIdRatesGet",
      "options": [
        {
          "name": "Get Rates",
          "value": "RateplanRate-plansByIdRatesGet",
          "action": "Get rates",
          "description": "Returns a list of rates"
        },
        {
          "name": "Update Multiple Rates",
          "value": "RateplanRatesPatch",
          "action": "Update multiple rates",
          "description": "Allows to patch the rates of multiple rate plans"
        },
        {
          "name": "Update Rates",
          "value": "RateplanRate-plansByIdRatesPut",
          "action": "Update rates",
          "description": "Initializes and changes the rates for the rate plan"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "Rate"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanRate-plansPost",
      "options": [
        {
          "name": "Create Rate Plan",
          "value": "RateplanRate-plansPost",
          "action": "Create rate plan",
          "description": "Create a rate plan"
        },
        {
          "name": "Get Rate Plan",
          "value": "RateplanRate-plansByIdGet",
          "action": "Get rate plan",
          "description": "Get a rate plan"
        },
        {
          "name": "List Rate Plans",
          "value": "RateplanRate-plansGet",
          "action": "List rate plans",
          "description": "Get a rate plan list"
        },
        {
          "name": "Update Multiple Rate Plans",
          "value": "RateplanRate-plansPatch",
          "action": "Update multiple rate plans",
          "description": "Allows to patch one or more rate plans"
        },
        {
          "name": "Update Rate Plan",
          "value": "RateplanRate-plansByIdPut",
          "action": "Update rate plan",
          "description": "Replace a rate plan"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "RatePlan"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "RateplanServicesPost",
      "options": [
        {
          "name": "Create Service",
          "value": "RateplanServicesPost",
          "action": "Create service",
          "description": "Create a service"
        },
        {
          "name": "Get Service",
          "value": "RateplanServicesByIdGet",
          "action": "Get service",
          "description": "Get a specific service"
        },
        {
          "name": "List Services",
          "value": "RateplanServicesGet",
          "action": "List services",
          "description": "Get all services"
        },
        {
          "name": "Update Service",
          "value": "RateplanServicesByIdPatch",
          "action": "Update service",
          "description": "Modify a service"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "rateplan-v1"
          ],
          "resource": [
            "Service"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "ReportsReportsArrivalsGet",
      "options": [
        {
          "name": "List Arrivals Report",
          "value": "ReportsReportsArrivalsGet",
          "action": "List arrivals report",
          "description": "Returns the number of arrivals in a month for a property"
        },
        {
          "name": "List Company Invoices Vat Report",
          "value": "ReportsReportsCompany-invoices-vatGet",
          "action": "List company invoices vat report",
          "description": "Returns the list of company invoices with information on the company and the VAT breakdown"
        },
        {
          "name": "List Ordered Services Report",
          "value": "ReportsReportsOrdered-servicesGet",
          "action": "List ordered services report",
          "description": "List of ordered services"
        },
        {
          "name": "List Property Performance Report",
          "value": "ReportsReportsProperty-performanceGet",
          "action": "List property performance report",
          "description": "Returns the property performance report which includes the ADR and the RevPAR for each business day"
        },
        {
          "name": "List Revenues Report",
          "value": "ReportsReportsRevenuesGet",
          "action": "List revenues report",
          "description": "Returns the revenues report for a property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "reports-v1"
          ],
          "resource": [
            "Reports"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsCapture-policiesByIdGet",
      "options": [
        {
          "name": "Get Capture Policy",
          "value": "SettingsCapture-policiesByIdGet",
          "action": "Get capture policy",
          "description": "Get a specific capture policy"
        },
        {
          "name": "List Capture Policies",
          "value": "SettingsCapture-policiesGet",
          "action": "List capture policies",
          "description": "Get all capture policies"
        },
        {
          "name": "Update Capture Policy",
          "value": "SettingsCapture-policiesByIdPatch",
          "action": "Update capture policy",
          "description": "Allows to modify properties of a capture policy"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "CapturePolicies"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsCity-taxPost",
      "options": [
        {
          "name": "Create City Tax",
          "value": "SettingsCity-taxPost",
          "action": "Create city tax",
          "description": "Create a city tax"
        },
        {
          "name": "Get City Tax",
          "value": "SettingsCity-taxByIdGet",
          "action": "Get city tax",
          "description": "Get a specific city tax"
        },
        {
          "name": "List City Taxes",
          "value": "SettingsCity-taxGet",
          "action": "List city taxes",
          "description": "Get all city taxes"
        },
        {
          "name": "Update City Tax",
          "value": "SettingsCity-taxByIdPatch",
          "action": "Update city tax",
          "description": "Allows to modify city tax"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "CityTax"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsSub-accountsByIdHead",
      "options": [
        {
          "name": "Check Sub Account Exists",
          "value": "SettingsSub-accountsByIdHead",
          "action": "Check sub account exists",
          "description": "Check if the sub-account exists"
        },
        {
          "name": "Count Sub Accounts",
          "value": "SettingsSub-accounts$countGet",
          "action": "Count sub accounts",
          "description": "Returns number of sub-accounts"
        },
        {
          "name": "Create Sub Account",
          "value": "SettingsSub-accountsPost",
          "action": "Create sub account",
          "description": "Create a sub-account"
        },
        {
          "name": "Get Sub Account",
          "value": "SettingsSub-accountsByIdGet",
          "action": "Get sub account",
          "description": "Returns one sub-account"
        },
        {
          "name": "List Sub Accounts",
          "value": "SettingsSub-accountsGet",
          "action": "List sub accounts",
          "description": "Returns a list of all sub-accounts"
        },
        {
          "name": "Update Sub Account",
          "value": "SettingsSub-accountsByIdPatch",
          "action": "Update sub account",
          "description": "Allows to modify the name of the sub-account"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "CustomSubAccounts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsFeaturesByPropertyIdGet",
      "options": [
        {
          "name": "Get Feature Settings",
          "value": "SettingsFeaturesByPropertyIdGet",
          "action": "Get feature settings",
          "description": "Get feature settings for a property"
        },
        {
          "name": "Update Feature Settings",
          "value": "SettingsFeaturesByPropertyIdPatch",
          "action": "Update feature settings",
          "description": "Allows to modify feature settings"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "FeatureSettings"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsInvoice-addressGet",
      "options": [
        {
          "name": "List Invoice Addresses",
          "value": "SettingsInvoice-addressGet",
          "action": "List invoice addresses",
          "description": "Get invoice addresses"
        },
        {
          "name": "Patch Invoice Addresses",
          "value": "SettingsInvoice-addressPatch",
          "action": "Patch invoice addresses",
          "description": "Change fields in the invoice address of one or more properties"
        },
        {
          "name": "Update Invoice Addresses",
          "value": "SettingsInvoice-addressPut",
          "action": "Update invoice addresses",
          "description": "Create or update invoice addresses for one or more properties"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "InvoiceAddress"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsLanguagesGet",
      "options": [
        {
          "name": "List Language Settings",
          "value": "SettingsLanguagesGet",
          "action": "List language settings",
          "description": "Get the language settings for the account"
        },
        {
          "name": "Update Language Settings",
          "value": "SettingsLanguagesPut",
          "action": "Update language settings",
          "description": "Replaces the language settings for the account"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "Languages"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsMarket-segmentsByIdHead",
      "options": [
        {
          "name": "Check Market Segment Exists",
          "value": "SettingsMarket-segmentsByIdHead",
          "action": "Check market segment exists",
          "description": "Check if a market segment exists"
        },
        {
          "name": "Count Market Segments",
          "value": "SettingsMarket-segments$countGet",
          "action": "Count market segments",
          "description": "Returns number of market segments"
        },
        {
          "name": "Create Market Segment",
          "value": "SettingsMarket-segmentsPost",
          "action": "Create market segment",
          "description": "Create a market segment"
        },
        {
          "name": "Get Market Segment",
          "value": "SettingsMarket-segmentsByIdGet",
          "action": "Get market segment",
          "description": "Get a market segment"
        },
        {
          "name": "List Market Segments",
          "value": "SettingsMarket-segmentsGet",
          "action": "List market segments",
          "description": "Returns a list of all market segments, filtered by the specified parameters"
        },
        {
          "name": "Update Market Segment",
          "value": "SettingsMarket-segmentsByIdPatch",
          "action": "Update market segment",
          "description": "Allows to modify market segment"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "MarketSegment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsPropertiesByIdGet",
      "options": [
        {
          "name": "Get Property Settings",
          "value": "SettingsPropertiesByIdGet",
          "action": "Get property settings"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "PropertySettings"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SettingsPropertiesByPropertyIdTime-slice-definitionsPost",
      "options": [
        {
          "name": "Create Time Slice Definition",
          "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsPost",
          "action": "Create time slice definition",
          "description": "Creates a time slice definition"
        },
        {
          "name": "Get Time Slice Definition",
          "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsByIdGet",
          "action": "Get time slice definition",
          "description": "Get a specific time slice definition"
        },
        {
          "name": "List Time Slice Definitions",
          "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsGet",
          "action": "List time slice definitions",
          "description": "Get time slice definitions"
        },
        {
          "name": "Update Time Slice Definition",
          "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsByIdPatch",
          "action": "Update time slice definition",
          "description": "Modifies a specific time slice definition for the property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "settings-v1"
          ],
          "resource": [
            "TimeSliceDefinitions"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "PingerPost",
      "options": [
        {
          "name": "Ping",
          "value": "PingerPost",
          "action": "Ping",
          "description": "Health check endpoint"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "webhook-v1"
          ],
          "resource": [
            "HealthCheck"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "SubscriptionsPost",
      "options": [
        {
          "name": "Create Subscription",
          "value": "SubscriptionsPost",
          "action": "Create subscription",
          "description": "Creates subscription"
        },
        {
          "name": "Delete Subscription",
          "value": "SubscriptionsByIdDelete",
          "action": "Delete subscription",
          "description": "Deletes subscription"
        },
        {
          "name": "Get Subscription",
          "value": "SubscriptionsByIdGet",
          "action": "Get subscription",
          "description": "Get a subscription"
        },
        {
          "name": "List Subscriptions",
          "value": "SubscriptionsGet",
          "action": "List subscriptions",
          "description": "Get all subscriptions created for the current account and client"
        },
        {
          "name": "Update Subscription",
          "value": "SubscriptionsByIdPut",
          "action": "Update subscription",
          "description": "Updates subscription"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "group": [
            "webhook-v1"
          ],
          "resource": [
            "Subscriptions"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Available Services",
      "value": "AvailabilityServicesGet",
      "action": "Get available services",
      "description": "Get a list of all available services in a property",
      "resource": "Availability"
    },
    {
      "name": "Get Available Unit Groups",
      "value": "AvailabilityUnit-groupsGet",
      "action": "Get available unit groups",
      "description": "Get a list of all available unit groups in a property",
      "resource": "Availability"
    },
    {
      "name": "Get Available Units",
      "value": "AvailabilityUnitsGet",
      "action": "Get available units",
      "description": "Get a list of all available units in a property",
      "resource": "Availability"
    },
    {
      "name": "Update Unit Group Availability",
      "value": "AvailabilityUnit-groupsByIdPatch",
      "action": "Update unit group availability",
      "description": "Allows to modify the unit group availability",
      "resource": "Availability"
    },
    {
      "name": "Get Available Units For Reservation",
      "value": "AvailabilityReservationsByIdUnitsGet",
      "action": "Get available units for reservation",
      "description": "Get a list of all available units for a reservation",
      "resource": "ReservationAvailability"
    },
    {
      "name": "Count Blocks",
      "value": "BookingBlocks$countGet",
      "action": "Count blocks",
      "description": "Returns number of blocks",
      "resource": "Block"
    },
    {
      "name": "Create Block",
      "value": "BookingBlocksPost",
      "action": "Create block",
      "description": "Creates a block",
      "resource": "Block"
    },
    {
      "name": "Get Block",
      "value": "BookingBlocksByIdGet",
      "action": "Get block",
      "description": "Returns a specific block",
      "resource": "Block"
    },
    {
      "name": "List Blocks",
      "value": "BookingBlocksGet",
      "action": "List blocks",
      "description": "Returns a list of blocks",
      "resource": "Block"
    },
    {
      "name": "Amend Block",
      "value": "BookingBlock-actionsByIdAmendPut",
      "action": "Amend block",
      "description": "Allow to modify a block",
      "resource": "BlockActions"
    },
    {
      "name": "Cancel Block",
      "value": "BookingBlock-actionsByIdCancelPut",
      "action": "Cancel block",
      "description": "Cancel a block",
      "resource": "BlockActions"
    },
    {
      "name": "Confirm Block",
      "value": "BookingBlock-actionsByIdConfirmPut",
      "action": "Confirm block",
      "description": "Confirm a block",
      "resource": "BlockActions"
    },
    {
      "name": "Release Block",
      "value": "BookingBlock-actionsByIdReleasePut",
      "action": "Release block",
      "description": "Release a block",
      "resource": "BlockActions"
    },
    {
      "name": "Wash Block",
      "value": "BookingBlock-actionsByIdWashPut",
      "action": "Wash block",
      "description": "Wash a block",
      "resource": "BlockActions"
    },
    {
      "name": "Add Reservation To Booking",
      "value": "BookingBookingsByIdReservationsPost",
      "action": "Add reservation to booking",
      "description": "Add one or multiple reservations to an existing booking",
      "resource": "Booking"
    },
    {
      "name": "Add Reservation To Booking Force",
      "value": "BookingBookingsByIdReservations$forcePost",
      "action": "Add reservation to booking force",
      "description": "Add one or multiple reservations to an existing booking regardless of availability or restrictions",
      "resource": "Booking"
    },
    {
      "name": "Create Booking",
      "value": "BookingBookingsPost",
      "action": "Create booking",
      "description": "Creates a booking for one or more reservations",
      "resource": "Booking"
    },
    {
      "name": "Create Booking Force",
      "value": "BookingBookings$forcePost",
      "action": "Create booking force",
      "description": "Creates a booking for one or more reservations regardless of availability or restrictions",
      "resource": "Booking"
    },
    {
      "name": "Get Booking",
      "value": "BookingBookingsByIdGet",
      "action": "Get booking",
      "description": "Returns a specific booking",
      "resource": "Booking"
    },
    {
      "name": "List Bookings",
      "value": "BookingBookingsGet",
      "action": "List bookings",
      "description": "Returns a list of all bookings, filtered by the specified parameters",
      "resource": "Booking"
    },
    {
      "name": "Update Booking",
      "value": "BookingBookingsByIdPatch",
      "action": "Update booking",
      "description": "Allows to modify certain booking properties",
      "resource": "Booking"
    },
    {
      "name": "Add Reservation To Group",
      "value": "BookingGroupsByIdReservationsPost",
      "action": "Add reservation to group",
      "description": "Add one or multiple reservations to an existing group booking using blocked inventory",
      "resource": "Group"
    },
    {
      "name": "Create Group",
      "value": "BookingGroupsPost",
      "action": "Create group",
      "description": "Creates a group booking",
      "resource": "Group"
    },
    {
      "name": "Get Group",
      "value": "BookingGroupsByIdGet",
      "action": "Get group",
      "description": "Returns a specific group booking",
      "resource": "Group"
    },
    {
      "name": "List Groups",
      "value": "BookingGroupsGet",
      "action": "List groups",
      "description": "Returns a list of all group bookings, filtered by the specified parameters",
      "resource": "Group"
    },
    {
      "name": "Update Group",
      "value": "BookingGroupsByIdPatch",
      "action": "Update group",
      "description": "Allows to modify certain group booking properties",
      "resource": "Group"
    },
    {
      "name": "List Offer Index",
      "value": "BookingOffer-indexGet",
      "action": "List offer index",
      "description": "Returns offers with rates and availabilities for the specified range",
      "resource": "Offer"
    },
    {
      "name": "List Offers",
      "value": "BookingOffersGet",
      "action": "List offers",
      "description": "Returns offers for one specific stay",
      "resource": "Offer"
    },
    {
      "name": "List Rate Plan Offers",
      "value": "BookingRate-plan-offersGet",
      "action": "List rate plan offers",
      "description": "Returns offers for a specific rate plan",
      "resource": "Offer"
    },
    {
      "name": "List Service Offers",
      "value": "BookingService-offersGet",
      "action": "List service offers",
      "description": "Returns service offers for one specific stay",
      "resource": "Offer"
    },
    {
      "name": "Count Reservations",
      "value": "BookingReservations$countGet",
      "action": "Count reservations",
      "description": "Returns the number of reservations fulfilling the criteria specified in the parameters",
      "resource": "Reservation"
    },
    {
      "name": "Get Reservation",
      "value": "BookingReservationsByIdGet",
      "action": "Get reservation",
      "description": "Returns a specific reservation",
      "resource": "Reservation"
    },
    {
      "name": "Get Reservation Offers",
      "value": "BookingReservationsByIdOffersGet",
      "action": "Get reservation offers",
      "description": "Returns offers for one specific reservation",
      "resource": "Reservation"
    },
    {
      "name": "Get Reservation Service Offers",
      "value": "BookingReservationsByIdService-offersGet",
      "action": "Get reservation service offers",
      "description": "Returns service offers for one specific reservation",
      "resource": "Reservation"
    },
    {
      "name": "Get Reservation Services",
      "value": "BookingReservationsByIdServicesGet",
      "action": "Get reservation services",
      "description": "Returns the services booked for a specific reservation",
      "resource": "Reservation"
    },
    {
      "name": "List Reservations",
      "value": "BookingReservationsGet",
      "action": "List reservations",
      "description": "Returns a list of all reservations, filtered by the specified parameters",
      "resource": "Reservation"
    },
    {
      "name": "Remove Service From Reservation",
      "value": "BookingReservationsByIdServicesDelete",
      "action": "Remove service from reservation",
      "description": "Removes a service from a reservation",
      "resource": "Reservation"
    },
    {
      "name": "Update Reservation",
      "value": "BookingReservationsByIdPatch",
      "action": "Update reservation",
      "description": "Allows to modify certain reservation properties",
      "resource": "Reservation"
    },
    {
      "name": "Add City Tax",
      "value": "BookingReservation-actionsByIdAdd-city-taxPut",
      "action": "Add city tax",
      "description": "Adds the city tax to a reservation",
      "resource": "ReservationActions"
    },
    {
      "name": "Amend Reservation",
      "value": "BookingReservation-actionsByIdAmendPut",
      "action": "Amend reservation",
      "description": "Allows you to amend the stay details of a reservation",
      "resource": "ReservationActions"
    },
    {
      "name": "Amend Reservation Force",
      "value": "BookingReservation-actionsByIdAmend$forcePut",
      "action": "Amend reservation force",
      "description": "Allows you to amend the stay details of a reservation regardless of availability or restrictions",
      "resource": "ReservationActions"
    },
    {
      "name": "Assign Specific Unit",
      "value": "BookingReservation-actionsByIdAssign-unitByUnitIdPut",
      "action": "Assign specific unit",
      "description": "Assign a specific unit to a reservation",
      "resource": "ReservationActions"
    },
    {
      "name": "Assign Unit",
      "value": "BookingReservation-actionsByIdAssign-unitPut",
      "action": "Assign unit",
      "description": "Assign a unit to a reservation",
      "resource": "ReservationActions"
    },
    {
      "name": "Book Service",
      "value": "BookingReservation-actionsByIdBook-servicePut",
      "action": "Book service",
      "description": "Book the service for a specific reservation",
      "resource": "ReservationActions"
    },
    {
      "name": "Book Service Force",
      "value": "BookingReservation-actionsByIdBook-service$forcePut",
      "action": "Book service force",
      "description": "Book the service for a specific reservation regardless of availability",
      "resource": "ReservationActions"
    },
    {
      "name": "Cancel Reservation",
      "value": "BookingReservation-actionsByIdCancelPut",
      "action": "Cancel reservation",
      "description": "Cancel a reservation",
      "resource": "ReservationActions"
    },
    {
      "name": "Check In",
      "value": "BookingReservation-actionsByIdCheckinPut",
      "action": "Check in",
      "description": "Check-in of a reservation",
      "resource": "ReservationActions"
    },
    {
      "name": "Check Out",
      "value": "BookingReservation-actionsByIdCheckoutPut",
      "action": "Check out",
      "description": "Check-out of a reservation",
      "resource": "ReservationActions"
    },
    {
      "name": "Mark No Show",
      "value": "BookingReservation-actionsByIdNoshowPut",
      "action": "Mark no show",
      "description": "Set a reservation to No-show",
      "resource": "ReservationActions"
    },
    {
      "name": "Remove City Tax",
      "value": "BookingReservation-actionsByIdRemove-city-taxPut",
      "action": "Remove city tax",
      "description": "Removes the city tax from a reservation",
      "resource": "ReservationActions"
    },
    {
      "name": "Revert Check In",
      "value": "BookingReservation-actionsByIdRevert-checkinPut",
      "action": "Revert check in",
      "description": "Reverses the check-in of a reservation",
      "resource": "ReservationActions"
    },
    {
      "name": "Unassign Units",
      "value": "BookingReservation-actionsByIdUnassign-unitsPut",
      "action": "Unassign units",
      "description": "Unassign units from a reservation",
      "resource": "ReservationActions"
    },
    {
      "name": "List Allowed Values",
      "value": "BookingTypesByTypeAllowed-valuesGet",
      "action": "List allowed values",
      "description": "Returns a list of values that a field of the specified type can take in the specified country",
      "resource": "Types"
    },
    {
      "name": "List Sources",
      "value": "BookingTypesSourcesGet",
      "action": "List sources",
      "description": "Returns a list of supported sources",
      "resource": "Types"
    },
    {
      "name": "Check Folio Exists",
      "value": "FinanceFoliosByIdHead",
      "action": "Check folio exists",
      "description": "Check if the folio exists",
      "resource": "Folio"
    },
    {
      "name": "Count Folios",
      "value": "FinanceFolios$countGet",
      "action": "Count folios",
      "description": "Returns number of folios",
      "resource": "Folio"
    },
    {
      "name": "Create Folio",
      "value": "FinanceFoliosPost",
      "action": "Create folio",
      "description": "Create additional folios for a reservation, or new external folios",
      "resource": "Folio"
    },
    {
      "name": "Get Folio",
      "value": "FinanceFoliosByIdGet",
      "action": "Get folio",
      "description": "Returns one folio",
      "resource": "Folio"
    },
    {
      "name": "List Folios",
      "value": "FinanceFoliosGet",
      "action": "List folios",
      "description": "Returns a list of all folios",
      "resource": "Folio"
    },
    {
      "name": "Update Folio",
      "value": "FinanceFoliosByIdPatch",
      "action": "Update folio",
      "description": "Allows to modify certain properties of a folio",
      "resource": "Folio"
    },
    {
      "name": "Bulk Move Charges",
      "value": "FinanceFolio-actionsBulk-movePut",
      "action": "Bulk move charges",
      "description": "Move multiple charges from one folio to another. Multiple source folios and multiple target folios can be specified.",
      "resource": "FolioActions"
    },
    {
      "name": "Close Folio",
      "value": "FinanceFolio-actionsByFolioIdClosePut",
      "action": "Close folio",
      "description": "Closes a folio",
      "resource": "FolioActions"
    },
    {
      "name": "Correct Folio",
      "value": "FinanceFolio-actionsByFolioIdCorrectPost",
      "action": "Correct folio",
      "description": "Corrects a folio by moving some charges. This operation creates a new folio with the charges from the request. The payment, equal to the sum of charges, is also split to this new folio so that both folios will have 0 balance.",
      "resource": "FolioActions"
    },
    {
      "name": "Create Bulk Allowances",
      "value": "FinanceFolio-actionsByFolioIdBulk-allowancesPost",
      "action": "Create bulk allowances",
      "description": "Posts allowances for a folio",
      "resource": "FolioActions"
    },
    {
      "name": "Create Charge Allowance",
      "value": "FinanceFolio-actionsByFolioIdChargesByChargeIdAllowancesPost",
      "action": "Create charge allowance",
      "description": "Posts an allowance for a charge",
      "resource": "FolioActions"
    },
    {
      "name": "Create Folio Allowance",
      "value": "FinanceFolio-actionsByFolioIdAllowancesPost",
      "action": "Create folio allowance",
      "description": "Posts an allowance for a folio",
      "resource": "FolioActions"
    },
    {
      "name": "Create Folio Cancellation Fee",
      "value": "FinanceFolio-actionsByFolioIdCancellation-feePost",
      "action": "Create folio cancellation fee",
      "description": "Adds and directly posts a cancellation fee to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added. If a routing instruction is defined for the cancellation fee service type, the fee will be moved to the destination folio.",
      "resource": "FolioActions"
    },
    {
      "name": "Create Folio Charge",
      "value": "FinanceFolio-actionsByFolioIdChargesPost",
      "action": "Create folio charge",
      "description": "Adds and directly posts a charge to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added.",
      "resource": "FolioActions"
    },
    {
      "name": "Create Folio No Show Fee",
      "value": "FinanceFolio-actionsByFolioIdNo-show-feePost",
      "action": "Create folio no show fee",
      "description": "Adds and directly posts a no-show fee to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added. If a routing instruction is defined for the no-show fee service type, the fee will be moved to the destination folio.",
      "resource": "FolioActions"
    },
    {
      "name": "Create Folio Transitory Charge",
      "value": "FinanceFolio-actionsByFolioIdTransitory-chargesPost",
      "action": "Create folio transitory charge",
      "description": "Adds and directly posts a transitory charge to the folio. If there are any fees configured for the property, an additional charge for each configured fee will be added.",
      "resource": "FolioActions"
    },
    {
      "name": "Move All Folio Charges",
      "value": "FinanceFolio-actionsByFolioIdMove-all-chargesPut",
      "action": "Move all folio charges",
      "description": "Move all charges and transitory charges from one folio to another",
      "resource": "FolioActions"
    },
    {
      "name": "Move Folio Charges",
      "value": "FinanceFolio-actionsByFolioIdMove-chargesPut",
      "action": "Move folio charges",
      "description": "Move multiple charges, allowances and transitory charges from one folio to another",
      "resource": "FolioActions"
    },
    {
      "name": "Move Folio Payments",
      "value": "FinanceFolio-actionsByFolioIdMove-paymentsPut",
      "action": "Move folio payments",
      "description": "Move multiple payments from one guest/booking folio to another",
      "resource": "FolioActions"
    },
    {
      "name": "Post Folio Charges",
      "value": "FinanceFolio-actionsByFolioIdPost-chargesPut",
      "action": "Post folio charges",
      "description": "Posts all unposted charges for the whole length of stay",
      "resource": "FolioActions"
    },
    {
      "name": "Reopen Folio",
      "value": "FinanceFolio-actionsByFolioIdReopenPut",
      "action": "Reopen folio",
      "description": "Reopens a folio",
      "resource": "FolioActions"
    },
    {
      "name": "Split Folio Charge",
      "value": "FinanceFolio-actionsByFolioIdChargesByChargeIdSplitPost",
      "action": "Split folio charge",
      "description": "Splits a charge into two using the percent or amount provided Creates an allowance and two new charges",
      "resource": "FolioActions"
    },
    {
      "name": "Split Folio Payment",
      "value": "FinanceFolio-actionsByFolioIdPaymentsByPaymentIdSplitPost",
      "action": "Split folio payment",
      "description": "Splits a payment into two using the percent or amount provided Creates a refund and two new payments",
      "resource": "FolioActions"
    },
    {
      "name": "Cancel Payment",
      "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdCancelPut",
      "action": "Cancel payment",
      "description": "Cancels a pending payment link",
      "resource": "FolioPayments"
    },
    {
      "name": "Create Account Payment",
      "value": "FinanceFoliosByFolioIdPaymentsBy-payment-accountPost",
      "action": "Create account payment",
      "description": "Trigger a payment using the payment account stored on the reservation",
      "resource": "FolioPayments"
    },
    {
      "name": "Create Auth Payment",
      "value": "FinanceFoliosByFolioIdPaymentsBy-authorizationPost",
      "action": "Create auth payment",
      "description": "Captures a specific amount from a pre-authorization and posts it to the folio",
      "resource": "FolioPayments"
    },
    {
      "name": "Create Folio Payment",
      "value": "FinanceFoliosByFolioIdPaymentsPost",
      "action": "Create folio payment",
      "description": "Trigger a custom payment for the folio",
      "resource": "FolioPayments"
    },
    {
      "name": "Create Folio Refund",
      "value": "FinanceFoliosByFolioIdRefundsPost",
      "action": "Create folio refund",
      "description": "Trigger a refund for the folio",
      "resource": "FolioPayments"
    },
    {
      "name": "Create Payment Link",
      "value": "FinanceFoliosByFolioIdPaymentsBy-linkPost",
      "action": "Create payment link",
      "description": "Creates a link to a payment form where guests can pay",
      "resource": "FolioPayments"
    },
    {
      "name": "Create Payment Refund",
      "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdRefundsPost",
      "action": "Create payment refund",
      "description": "Trigger a refund for a specific payment",
      "resource": "FolioPayments"
    },
    {
      "name": "Create Terminal Payment",
      "value": "FinanceFoliosByFolioIdPaymentsBy-terminalPost",
      "action": "Create terminal payment",
      "description": "Trigger a payment on a card terminal for the folio",
      "resource": "FolioPayments"
    },
    {
      "name": "Get Folio Payment",
      "value": "FinanceFoliosByFolioIdPaymentsByPaymentIdGet",
      "action": "Get folio payment",
      "description": "Get a payment by ID",
      "resource": "FolioPayments"
    },
    {
      "name": "Get Folio Refund",
      "value": "FinanceFoliosByFolioIdRefundsByRefundIdGet",
      "action": "Get folio refund",
      "description": "Get a refund by ID",
      "resource": "FolioPayments"
    },
    {
      "name": "List Folio Payments",
      "value": "FinanceFoliosByFolioIdPaymentsGet",
      "action": "List folio payments",
      "description": "Get a list of payments",
      "resource": "FolioPayments"
    },
    {
      "name": "List Folio Refunds",
      "value": "FinanceFoliosByFolioIdRefundsGet",
      "action": "List folio refunds",
      "description": "Get a list of refunds",
      "resource": "FolioPayments"
    },
    {
      "name": "Create Invoice",
      "value": "FinanceInvoicesPost",
      "action": "Create invoice",
      "description": "Creates an invoice for one specific folio",
      "resource": "Invoice"
    },
    {
      "name": "Get Invoice",
      "value": "FinanceInvoicesByIdGet",
      "action": "Get invoice",
      "description": "Gets invoice data",
      "resource": "Invoice"
    },
    {
      "name": "Get Invoice Pdf",
      "value": "FinanceInvoicesByIdPdfGet",
      "action": "Get invoice pdf",
      "description": "Gets an invoice PDF file",
      "resource": "Invoice"
    },
    {
      "name": "List Invoice Preview",
      "value": "FinanceInvoicesPreviewGet",
      "action": "List invoice preview",
      "description": "Gets an invoice preview for one specific folio",
      "resource": "Invoice"
    },
    {
      "name": "List Invoice Preview Pdf",
      "value": "FinanceInvoicesPreview-pdfGet",
      "action": "List invoice preview pdf",
      "description": "Gets a preview invoice PDF for one specific folio",
      "resource": "Invoice"
    },
    {
      "name": "List Invoices",
      "value": "FinanceInvoicesGet",
      "action": "List invoices",
      "description": "Gets the list of all invoices (the metadata only, not the files)",
      "resource": "Invoice"
    },
    {
      "name": "Cancel Invoice",
      "value": "FinanceInvoice-actionsByIdCancelPut",
      "action": "Cancel invoice",
      "description": "Cancels an invoice",
      "resource": "InvoiceAction"
    },
    {
      "name": "Pay Invoice",
      "value": "FinanceInvoice-actionsByIdPayPut",
      "action": "Pay invoice",
      "description": "Marks an invoice as paid",
      "resource": "InvoiceAction"
    },
    {
      "name": "Export Accounts",
      "value": "FinanceAccountsExportPost",
      "action": "Export accounts",
      "description": "Returns transactions filtered by timestamp for a property for a given period",
      "resource": "SubLedger"
    },
    {
      "name": "Export Accounts Daily",
      "value": "FinanceAccountsExport-dailyPost",
      "action": "Export accounts daily",
      "description": "Returns transactions filtered by date (business day) for a property for a given period",
      "resource": "SubLedger"
    },
    {
      "name": "Export Accounts Gross",
      "value": "FinanceAccountsExport-gross-dailyPost",
      "action": "Export accounts gross",
      "description": "Returns gross transactions filtered by date (business day) for a property for a given period",
      "resource": "SubLedger"
    },
    {
      "name": "Get Account Aggregate",
      "value": "FinanceAccountsAggregate-dailyPost",
      "action": "Get account aggregate",
      "description": "Aggregates transactions by date (business day) for all accounts and a given period",
      "resource": "SubLedger"
    },
    {
      "name": "Get Account Aggregate Pairs",
      "value": "FinanceAccountsAggregate-pairs-dailyPost",
      "action": "Get account aggregate pairs",
      "description": "Aggregates transactions pairs by date (business day) for all accounts and a given period",
      "resource": "SubLedger"
    },
    {
      "name": "Get Account By Number",
      "value": "FinanceAccountsByNumberGet",
      "action": "Get account by number",
      "description": "Returns one account",
      "resource": "SubLedger"
    },
    {
      "name": "Get Accounts Aggregate",
      "value": "FinanceAccountsAggregatePost",
      "action": "Get accounts aggregate",
      "description": "Aggregates transactions by timestamp for all accounts and a given period",
      "resource": "SubLedger"
    },
    {
      "name": "List Account Schema",
      "value": "FinanceAccountsSchemaGet",
      "action": "List account schema",
      "description": "Returns the chart of accounts of the subledger",
      "resource": "SubLedger"
    },
    {
      "name": "List Child Accounts",
      "value": "FinanceAccountsChild-accountsGet",
      "action": "List child accounts",
      "description": "Returns a list of child accounts for a specified parent account",
      "resource": "SubLedger"
    },
    {
      "name": "List External Accounts",
      "value": "FinanceExternal-accountsGet",
      "action": "List external accounts",
      "description": "Returns a list of external accounts",
      "resource": "SubLedger"
    },
    {
      "name": "List Global Accounts",
      "value": "FinanceGlobal-accountsGet",
      "action": "List global accounts",
      "description": "Returns a list of global accounts",
      "resource": "SubLedger"
    },
    {
      "name": "List Guest Accounts",
      "value": "FinanceGuest-accountsGet",
      "action": "List guest accounts",
      "description": "Returns a list of guest accounts",
      "resource": "SubLedger"
    },
    {
      "name": "List Currencies",
      "value": "FinanceTypesCurrenciesGet",
      "action": "List currencies",
      "description": "Returns a list of all currencies",
      "resource": "Types"
    },
    {
      "name": "List Payment Methods",
      "value": "FinanceTypesPayment-methodsGet",
      "action": "List payment methods",
      "description": "Returns a list of all supported payment methods",
      "resource": "Types"
    },
    {
      "name": "List Service Types",
      "value": "FinanceTypesService-typesGet",
      "action": "List service types",
      "description": "Returns a list of all supported service types",
      "resource": "Types"
    },
    {
      "name": "List Vat Types",
      "value": "FinanceTypesVatGet",
      "action": "List vat types",
      "description": "Returns a list of all VAT types",
      "resource": "Types"
    },
    {
      "name": "Create Property",
      "value": "InventoryPropertiesPost",
      "action": "Create property",
      "description": "Creates a property",
      "resource": "Property"
    },
    {
      "name": "Get Property",
      "value": "InventoryPropertiesByIdGet",
      "action": "Get property",
      "description": "Get a property",
      "resource": "Property"
    },
    {
      "name": "List Properties",
      "value": "InventoryPropertiesGet",
      "action": "List properties",
      "description": "Get a properties list",
      "resource": "Property"
    },
    {
      "name": "Update Property",
      "value": "InventoryPropertiesByIdPatch",
      "action": "Update property",
      "description": "Allows to modify property",
      "resource": "Property"
    },
    {
      "name": "Check Unit Exists",
      "value": "InventoryUnitsByIdHead",
      "action": "Check unit exists",
      "description": "Check if a unit exists",
      "resource": "Unit"
    },
    {
      "name": "Count Units",
      "value": "InventoryUnits$countGet",
      "action": "Count units",
      "description": "Returns number of units",
      "resource": "Unit"
    },
    {
      "name": "Create Multiple Units",
      "value": "InventoryUnitsBulkPost",
      "action": "Create multiple units",
      "resource": "Unit"
    },
    {
      "name": "Create Unit",
      "value": "InventoryUnitsPost",
      "action": "Create unit",
      "description": "Create a unit",
      "resource": "Unit"
    },
    {
      "name": "Delete Unit",
      "value": "InventoryUnitsByIdDelete",
      "action": "Delete unit",
      "description": "Delete a unit",
      "resource": "Unit"
    },
    {
      "name": "Get Unit",
      "value": "InventoryUnitsByIdGet",
      "action": "Get unit",
      "description": "Get a unit",
      "resource": "Unit"
    },
    {
      "name": "List Units",
      "value": "InventoryUnitsGet",
      "action": "List units",
      "description": "Get a units list",
      "resource": "Unit"
    },
    {
      "name": "Update Multiple Units",
      "value": "InventoryUnitsPatch",
      "action": "Update multiple units",
      "description": "Allows to patch one or more units",
      "resource": "Unit"
    },
    {
      "name": "Update Unit",
      "value": "InventoryUnitsByIdPatch",
      "action": "Update unit",
      "description": "Allows to patch unit",
      "resource": "Unit"
    },
    {
      "name": "Check Unit Attribute Exists",
      "value": "InventoryUnit-attributesByIdHead",
      "action": "Check unit attribute exists",
      "description": "Check if a unit attribute exists",
      "resource": "UnitAttribute"
    },
    {
      "name": "Create Unit Attribute",
      "value": "InventoryUnit-attributesPost",
      "action": "Create unit attribute",
      "description": "Create a unit attribute",
      "resource": "UnitAttribute"
    },
    {
      "name": "Get Unit Attribute",
      "value": "InventoryUnit-attributesByIdGet",
      "action": "Get unit attribute",
      "description": "Get unit attribute by id",
      "resource": "UnitAttribute"
    },
    {
      "name": "List Unit Attributes",
      "value": "InventoryUnit-attributesGet",
      "action": "List unit attributes",
      "description": "Get unit attribute list",
      "resource": "UnitAttribute"
    },
    {
      "name": "Update Unit Attribute",
      "value": "InventoryUnit-attributesByIdPatch",
      "action": "Update unit attribute",
      "description": "Allows to modify unit attribute",
      "resource": "UnitAttribute"
    },
    {
      "name": "Check Unit Group Exists",
      "value": "InventoryUnit-groupsByIdHead",
      "action": "Check unit group exists",
      "description": "Check if a unit group exists",
      "resource": "UnitGroup"
    },
    {
      "name": "Count Unit Groups",
      "value": "InventoryUnit-groups$countGet",
      "action": "Count unit groups",
      "description": "Returns number of unit groups",
      "resource": "UnitGroup"
    },
    {
      "name": "Create Unit Group",
      "value": "InventoryUnit-groupsPost",
      "action": "Create unit group",
      "description": "Create a unit group",
      "resource": "UnitGroup"
    },
    {
      "name": "Get Unit Group",
      "value": "InventoryUnit-groupsByIdGet",
      "action": "Get unit group",
      "description": "Get a unit group",
      "resource": "UnitGroup"
    },
    {
      "name": "List Unit Groups",
      "value": "InventoryUnit-groupsGet",
      "action": "List unit groups",
      "description": "Get all unit groups, or all unit groups for a property",
      "resource": "UnitGroup"
    },
    {
      "name": "Update Unit Group",
      "value": "InventoryUnit-groupsByIdPut",
      "action": "Update unit group",
      "description": "Replace a unit group",
      "resource": "UnitGroup"
    },
    {
      "name": "List Reservation Logs",
      "value": "LogsBookingReservationGet",
      "action": "List reservation logs",
      "description": "Returns reservation change log entries sorted by the timestamp",
      "resource": "BookingLogs"
    },
    {
      "name": "List Folio Logs",
      "value": "LogsFinanceFolioGet",
      "action": "List folio logs",
      "description": "Returns folio change log entries sorted by the timestamp",
      "resource": "FinanceLogs"
    },
    {
      "name": "List Night Audit Logs",
      "value": "LogsFinanceNight-auditGet",
      "action": "List night audit logs",
      "description": "Returns the night audit logs",
      "resource": "FinanceLogs"
    },
    {
      "name": "List Transaction Export Logs",
      "value": "LogsFinanceTransactions-exportGet",
      "action": "List transaction export logs",
      "description": "Returns the audit log for all accounting exports that have been done",
      "resource": "FinanceLogs"
    },
    {
      "name": "Check Maintenance Exists",
      "value": "OperationsMaintenancesByIdHead",
      "action": "Check maintenance exists",
      "description": "Check if a maintenance exists",
      "resource": "Maintenance"
    },
    {
      "name": "Count Maintenances",
      "value": "OperationsMaintenances$countGet",
      "action": "Count maintenances",
      "description": "Returns number of maintenances",
      "resource": "Maintenance"
    },
    {
      "name": "Create Maintenance",
      "value": "OperationsMaintenancesPost",
      "action": "Create maintenance",
      "description": "Create a new maintenance window",
      "resource": "Maintenance"
    },
    {
      "name": "Create Multiple Maintenances",
      "value": "OperationsMaintenancesBulkPost",
      "action": "Create multiple maintenances",
      "resource": "Maintenance"
    },
    {
      "name": "Delete Maintenance",
      "value": "OperationsMaintenancesByIdDelete",
      "action": "Delete maintenance",
      "description": "Delete a maintenance",
      "resource": "Maintenance"
    },
    {
      "name": "Get Maintenance",
      "value": "OperationsMaintenancesByIdGet",
      "action": "Get maintenance",
      "description": "Get a specific maintenance",
      "resource": "Maintenance"
    },
    {
      "name": "List Maintenances",
      "value": "OperationsMaintenancesGet",
      "action": "List maintenances",
      "description": "Get list of maintenances",
      "resource": "Maintenance"
    },
    {
      "name": "Update Maintenance",
      "value": "OperationsMaintenancesByIdPatch",
      "action": "Update maintenance",
      "description": "Modify a maintenance",
      "resource": "Maintenance"
    },
    {
      "name": "Run Night Audit",
      "value": "OperationsNight-auditPut",
      "action": "Run night audit",
      "description": "Performs the night audit for one property",
      "resource": "Operations"
    },
    {
      "name": "Update Units Condition",
      "value": "OperationsUnits-conditionPut",
      "action": "Update units condition",
      "description": "Change the condition of a unit",
      "resource": "Operations"
    },
    {
      "name": "Create Age Category",
      "value": "SettingsAge-categoriesPost",
      "action": "Create age category",
      "description": "Create an age category",
      "resource": "AgeCategory"
    },
    {
      "name": "Get Age Category",
      "value": "SettingsAge-categoriesByIdGet",
      "action": "Get age category",
      "description": "Get an age category",
      "resource": "AgeCategory"
    },
    {
      "name": "List Age Categories",
      "value": "SettingsAge-categoriesGet",
      "action": "List age categories",
      "description": "Get an age category list",
      "resource": "AgeCategory"
    },
    {
      "name": "Update Age Category",
      "value": "SettingsAge-categoriesByIdPatch",
      "action": "Update age category",
      "description": "Allows to modify properties of an age category",
      "resource": "AgeCategory"
    },
    {
      "name": "Create Cancellation Policy",
      "value": "RateplanCancellation-policiesPost",
      "action": "Create cancellation policy",
      "description": "Create a cancellation policy",
      "resource": "CancellationPolicy"
    },
    {
      "name": "Get Cancellation Policy",
      "value": "RateplanCancellation-policiesByIdGet",
      "action": "Get cancellation policy",
      "description": "Get a specific cancellation policy",
      "resource": "CancellationPolicy"
    },
    {
      "name": "List Cancellation Policies",
      "value": "RateplanCancellation-policiesGet",
      "action": "List cancellation policies",
      "description": "Get all cancellation policies",
      "resource": "CancellationPolicy"
    },
    {
      "name": "Update Cancellation Policy",
      "value": "RateplanCancellation-policiesByIdPatch",
      "action": "Update cancellation policy",
      "description": "Allows to modify properties of a cancellation policy",
      "resource": "CancellationPolicy"
    },
    {
      "name": "Create Company",
      "value": "RateplanCompaniesPost",
      "action": "Create company",
      "description": "Create a company",
      "resource": "Company"
    },
    {
      "name": "Get Company",
      "value": "RateplanCompaniesByIdGet",
      "action": "Get company",
      "description": "Get a company",
      "resource": "Company"
    },
    {
      "name": "List Companies",
      "value": "RateplanCompaniesGet",
      "action": "List companies",
      "description": "Get a list of companies",
      "resource": "Company"
    },
    {
      "name": "Update Company",
      "value": "RateplanCompaniesByIdPatch",
      "action": "Update company",
      "description": "Modify a company",
      "resource": "Company"
    },
    {
      "name": "List Corporate Codes",
      "value": "RateplanCorporate-codesCodesGet",
      "action": "List corporate codes",
      "description": "Returns a list of corporate codes",
      "resource": "CorporateCodes"
    },
    {
      "name": "Create No Show Policy",
      "value": "RateplanNo-show-policiesPost",
      "action": "Create no show policy",
      "description": "Create a no-show policy",
      "resource": "NoShowPolicy"
    },
    {
      "name": "Get No Show Policy",
      "value": "RateplanNo-show-policiesByIdGet",
      "action": "Get no show policy",
      "description": "Get a specific no-show policy",
      "resource": "NoShowPolicy"
    },
    {
      "name": "List No Show Policies",
      "value": "RateplanNo-show-policiesGet",
      "action": "List no show policies",
      "description": "Get all no-show policies",
      "resource": "NoShowPolicy"
    },
    {
      "name": "Update No Show Policy",
      "value": "RateplanNo-show-policiesByIdPatch",
      "action": "Update no show policy",
      "description": "Allows to modify properties of a no-show policy",
      "resource": "NoShowPolicy"
    },
    {
      "name": "List Promo Codes",
      "value": "RateplanPromo-codesCodesGet",
      "action": "List promo codes",
      "description": "Returns a list of promo codes",
      "resource": "PromoCodes"
    },
    {
      "name": "Get Rates",
      "value": "RateplanRate-plansByIdRatesGet",
      "action": "Get rates",
      "description": "Returns a list of rates",
      "resource": "Rate"
    },
    {
      "name": "Update Multiple Rates",
      "value": "RateplanRatesPatch",
      "action": "Update multiple rates",
      "description": "Allows to patch the rates of multiple rate plans",
      "resource": "Rate"
    },
    {
      "name": "Update Rates",
      "value": "RateplanRate-plansByIdRatesPut",
      "action": "Update rates",
      "description": "Initializes and changes the rates for the rate plan",
      "resource": "Rate"
    },
    {
      "name": "Create Rate Plan",
      "value": "RateplanRate-plansPost",
      "action": "Create rate plan",
      "description": "Create a rate plan",
      "resource": "RatePlan"
    },
    {
      "name": "Get Rate Plan",
      "value": "RateplanRate-plansByIdGet",
      "action": "Get rate plan",
      "description": "Get a rate plan",
      "resource": "RatePlan"
    },
    {
      "name": "List Rate Plans",
      "value": "RateplanRate-plansGet",
      "action": "List rate plans",
      "description": "Get a rate plan list",
      "resource": "RatePlan"
    },
    {
      "name": "Update Multiple Rate Plans",
      "value": "RateplanRate-plansPatch",
      "action": "Update multiple rate plans",
      "description": "Allows to patch one or more rate plans",
      "resource": "RatePlan"
    },
    {
      "name": "Update Rate Plan",
      "value": "RateplanRate-plansByIdPut",
      "action": "Update rate plan",
      "description": "Replace a rate plan",
      "resource": "RatePlan"
    },
    {
      "name": "Create Service",
      "value": "RateplanServicesPost",
      "action": "Create service",
      "description": "Create a service",
      "resource": "Service"
    },
    {
      "name": "Get Service",
      "value": "RateplanServicesByIdGet",
      "action": "Get service",
      "description": "Get a specific service",
      "resource": "Service"
    },
    {
      "name": "List Services",
      "value": "RateplanServicesGet",
      "action": "List services",
      "description": "Get all services",
      "resource": "Service"
    },
    {
      "name": "Update Service",
      "value": "RateplanServicesByIdPatch",
      "action": "Update service",
      "description": "Modify a service",
      "resource": "Service"
    },
    {
      "name": "List Arrivals Report",
      "value": "ReportsReportsArrivalsGet",
      "action": "List arrivals report",
      "description": "Returns the number of arrivals in a month for a property",
      "resource": "Reports"
    },
    {
      "name": "List Company Invoices Vat Report",
      "value": "ReportsReportsCompany-invoices-vatGet",
      "action": "List company invoices vat report",
      "description": "Returns the list of company invoices with information on the company and the VAT breakdown",
      "resource": "Reports"
    },
    {
      "name": "List Ordered Services Report",
      "value": "ReportsReportsOrdered-servicesGet",
      "action": "List ordered services report",
      "description": "List of ordered services",
      "resource": "Reports"
    },
    {
      "name": "List Property Performance Report",
      "value": "ReportsReportsProperty-performanceGet",
      "action": "List property performance report",
      "description": "Returns the property performance report which includes the ADR and the RevPAR for each business day",
      "resource": "Reports"
    },
    {
      "name": "List Revenues Report",
      "value": "ReportsReportsRevenuesGet",
      "action": "List revenues report",
      "description": "Returns the revenues report for a property",
      "resource": "Reports"
    },
    {
      "name": "Get Capture Policy",
      "value": "SettingsCapture-policiesByIdGet",
      "action": "Get capture policy",
      "description": "Get a specific capture policy",
      "resource": "CapturePolicies"
    },
    {
      "name": "List Capture Policies",
      "value": "SettingsCapture-policiesGet",
      "action": "List capture policies",
      "description": "Get all capture policies",
      "resource": "CapturePolicies"
    },
    {
      "name": "Update Capture Policy",
      "value": "SettingsCapture-policiesByIdPatch",
      "action": "Update capture policy",
      "description": "Allows to modify properties of a capture policy",
      "resource": "CapturePolicies"
    },
    {
      "name": "Create City Tax",
      "value": "SettingsCity-taxPost",
      "action": "Create city tax",
      "description": "Create a city tax",
      "resource": "CityTax"
    },
    {
      "name": "Get City Tax",
      "value": "SettingsCity-taxByIdGet",
      "action": "Get city tax",
      "description": "Get a specific city tax",
      "resource": "CityTax"
    },
    {
      "name": "List City Taxes",
      "value": "SettingsCity-taxGet",
      "action": "List city taxes",
      "description": "Get all city taxes",
      "resource": "CityTax"
    },
    {
      "name": "Update City Tax",
      "value": "SettingsCity-taxByIdPatch",
      "action": "Update city tax",
      "description": "Allows to modify city tax",
      "resource": "CityTax"
    },
    {
      "name": "Check Sub Account Exists",
      "value": "SettingsSub-accountsByIdHead",
      "action": "Check sub account exists",
      "description": "Check if the sub-account exists",
      "resource": "CustomSubAccounts"
    },
    {
      "name": "Count Sub Accounts",
      "value": "SettingsSub-accounts$countGet",
      "action": "Count sub accounts",
      "description": "Returns number of sub-accounts",
      "resource": "CustomSubAccounts"
    },
    {
      "name": "Create Sub Account",
      "value": "SettingsSub-accountsPost",
      "action": "Create sub account",
      "description": "Create a sub-account",
      "resource": "CustomSubAccounts"
    },
    {
      "name": "Get Sub Account",
      "value": "SettingsSub-accountsByIdGet",
      "action": "Get sub account",
      "description": "Returns one sub-account",
      "resource": "CustomSubAccounts"
    },
    {
      "name": "List Sub Accounts",
      "value": "SettingsSub-accountsGet",
      "action": "List sub accounts",
      "description": "Returns a list of all sub-accounts",
      "resource": "CustomSubAccounts"
    },
    {
      "name": "Update Sub Account",
      "value": "SettingsSub-accountsByIdPatch",
      "action": "Update sub account",
      "description": "Allows to modify the name of the sub-account",
      "resource": "CustomSubAccounts"
    },
    {
      "name": "Get Feature Settings",
      "value": "SettingsFeaturesByPropertyIdGet",
      "action": "Get feature settings",
      "description": "Get feature settings for a property",
      "resource": "FeatureSettings"
    },
    {
      "name": "Update Feature Settings",
      "value": "SettingsFeaturesByPropertyIdPatch",
      "action": "Update feature settings",
      "description": "Allows to modify feature settings",
      "resource": "FeatureSettings"
    },
    {
      "name": "List Invoice Addresses",
      "value": "SettingsInvoice-addressGet",
      "action": "List invoice addresses",
      "description": "Get invoice addresses",
      "resource": "InvoiceAddress"
    },
    {
      "name": "Patch Invoice Addresses",
      "value": "SettingsInvoice-addressPatch",
      "action": "Patch invoice addresses",
      "description": "Change fields in the invoice address of one or more properties",
      "resource": "InvoiceAddress"
    },
    {
      "name": "Update Invoice Addresses",
      "value": "SettingsInvoice-addressPut",
      "action": "Update invoice addresses",
      "description": "Create or update invoice addresses for one or more properties",
      "resource": "InvoiceAddress"
    },
    {
      "name": "List Language Settings",
      "value": "SettingsLanguagesGet",
      "action": "List language settings",
      "description": "Get the language settings for the account",
      "resource": "Languages"
    },
    {
      "name": "Update Language Settings",
      "value": "SettingsLanguagesPut",
      "action": "Update language settings",
      "description": "Replaces the language settings for the account",
      "resource": "Languages"
    },
    {
      "name": "Check Market Segment Exists",
      "value": "SettingsMarket-segmentsByIdHead",
      "action": "Check market segment exists",
      "description": "Check if a market segment exists",
      "resource": "MarketSegment"
    },
    {
      "name": "Count Market Segments",
      "value": "SettingsMarket-segments$countGet",
      "action": "Count market segments",
      "description": "Returns number of market segments",
      "resource": "MarketSegment"
    },
    {
      "name": "Create Market Segment",
      "value": "SettingsMarket-segmentsPost",
      "action": "Create market segment",
      "description": "Create a market segment",
      "resource": "MarketSegment"
    },
    {
      "name": "Get Market Segment",
      "value": "SettingsMarket-segmentsByIdGet",
      "action": "Get market segment",
      "description": "Get a market segment",
      "resource": "MarketSegment"
    },
    {
      "name": "List Market Segments",
      "value": "SettingsMarket-segmentsGet",
      "action": "List market segments",
      "description": "Returns a list of all market segments, filtered by the specified parameters",
      "resource": "MarketSegment"
    },
    {
      "name": "Update Market Segment",
      "value": "SettingsMarket-segmentsByIdPatch",
      "action": "Update market segment",
      "description": "Allows to modify market segment",
      "resource": "MarketSegment"
    },
    {
      "name": "Get Property Settings",
      "value": "SettingsPropertiesByIdGet",
      "action": "Get property settings",
      "resource": "PropertySettings"
    },
    {
      "name": "Create Time Slice Definition",
      "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsPost",
      "action": "Create time slice definition",
      "description": "Creates a time slice definition",
      "resource": "TimeSliceDefinitions"
    },
    {
      "name": "Get Time Slice Definition",
      "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsByIdGet",
      "action": "Get time slice definition",
      "description": "Get a specific time slice definition",
      "resource": "TimeSliceDefinitions"
    },
    {
      "name": "List Time Slice Definitions",
      "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsGet",
      "action": "List time slice definitions",
      "description": "Get time slice definitions",
      "resource": "TimeSliceDefinitions"
    },
    {
      "name": "Update Time Slice Definition",
      "value": "SettingsPropertiesByPropertyIdTime-slice-definitionsByIdPatch",
      "action": "Update time slice definition",
      "description": "Modifies a specific time slice definition for the property",
      "resource": "TimeSliceDefinitions"
    },
    {
      "name": "Ping",
      "value": "PingerPost",
      "action": "Ping",
      "description": "Health check endpoint",
      "resource": "HealthCheck"
    },
    {
      "name": "Create Subscription",
      "value": "SubscriptionsPost",
      "action": "Create subscription",
      "description": "Creates subscription",
      "resource": "Subscriptions"
    },
    {
      "name": "Delete Subscription",
      "value": "SubscriptionsByIdDelete",
      "action": "Delete subscription",
      "description": "Deletes subscription",
      "resource": "Subscriptions"
    },
    {
      "name": "Get Subscription",
      "value": "SubscriptionsByIdGet",
      "action": "Get subscription",
      "description": "Get a subscription",
      "resource": "Subscriptions"
    },
    {
      "name": "List Subscriptions",
      "value": "SubscriptionsGet",
      "action": "List subscriptions",
      "description": "Get all subscriptions created for the current account and client",
      "resource": "Subscriptions"
    },
    {
      "name": "Update Subscription",
      "value": "SubscriptionsByIdPut",
      "action": "Update subscription",
      "description": "Updates subscription",
      "resource": "Subscriptions"
    }
  ]

npm_readme:
  # n8n-nodes-apaleo

  ![Apaleo Logo](nodes/Apaleo/apaleo.svg)

  This package provides n8n nodes to interact with the [Apaleo API](https://docs.apaleo.com/), allowing you to automate workflows with Apaleo's property management system.

  ## Features

  This integration provides two nodes:

  - **Apaleo**: Perform operations on over 40 Apaleo resources including accounts, reservations, properties, and more
  - **Apaleo Trigger**: Receive webhook events from Apaleo to trigger workflows

  ## Prerequisites

  - [n8n](https://n8n.io/) (version 1.0.0 or later)
  - Apaleo account with API credentials (Client ID and Client Secret)
  - Node.js (version 20.15 or later)

  ## Installation

  ### In n8n Desktop / Self-hosted

  1. Go to **Settings > Community Nodes**
  2. Click on **Install**
  3. Enter `n8n-nodes-apaleo` in the **Enter npm package name** field
  4. Click on **Install**

  ### Manual Installation

  1. Clone this repository:
     ```
     git clone https://github.com/apaleo/n8n-nodes-apaleo.git
     ```
  2. Navigate to the project directory:
     ```
     cd n8n-nodes-apaleo
     ```
  3. Install dependencies:
     ```
     npm install
     ```
  4. Build the package:
     ```
     npm run build
     ```
  5. Link to your n8n installation:
     ```
     npm link
     ```
  6. In your n8n installation directory:
     ```
     npm link n8n-nodes-apaleo
     ```

  ## Credentials

  To use the Apaleo nodes, you need to set up credentials:

  1. In n8n, go to **Credentials**
  2. Click on **Create New**
  3. Search for "Apaleo OAuth2 API"
  4. Enter your Apaleo Client ID and Client Secret
  5. Save the credentials

  ## Usage

  ### Apaleo Node

  The Apaleo node allows you to interact with the following resources:

  #### Property Management
  - **Property**: Manage hotel properties, including details, settings, and configurations
  - **Unit**: Handle individual room/unit operations and information
  - **UnitGroup**: Manage groups of units with similar characteristics
  - **UnitAttribute**: Work with attributes that define unit features and amenities
  - **PropertySettings**: Configure property-specific settings and preferences
  - **PropertyActions**: Perform specific actions on properties

  #### Reservation Management
  - **Reservation**: Create, retrieve, and manage guest reservations
  - **ReservationActions**: Execute specific actions on reservations (check-in, check-out, etc.)
  - **ReservationAvailability**: Check availability for specific reservation scenarios
  - **Block**: Manage room blocks for groups and events
  - **BlockActions**: Perform actions on blocks (create, modify, cancel)
  - **Booking**: Handle booking operations across the system
  - **Group**: Manage group reservations and associated data

  #### Financial Operations
  - **Folio**: Access and manage guest folios containing charges and payments
  - **FolioActions**: Perform specific actions on folios
  - **FolioPayments**: Handle payment operations within folios
  - **Invoice**: Create, retrieve, and manage invoices
  - **InvoiceAction**: Execute specific actions on invoices
  - **SubLedger**: Access financial sub-ledger information
  - **CapturePolicies**: Manage payment capture policies
  - **CustomSubAccounts**: Work with custom financial sub-accounts

  #### Rate and Pricing
  - **Rate**: Manage rate information and pricing
  - **RatePlan**: Configure and manage rate plans
  - **Offer**: Handle special offers and promotions
  - **PromoCodes**: Manage promotional codes for special rates
  - **CorporateCodes**: Handle corporate rate codes and agreements
  - **CancellationPolicy**: Configure and manage cancellation policies
  - **NoShowPolicy**: Set up and manage no-show policies

  #### Account Management
  - **Account**: Manage account information and settings
  - **AccountActions**: Perform specific actions on accounts
  - **Company**: Handle company account information and relationships

  #### Reporting and Logs
  - **Reports**: Access various system reports
  - **BookingLogs**: View logs of booking-related activities
  - **FinanceLogs**: Access logs of financial transactions and changes
  - **Operations**: Perform operational tasks and reporting

  #### Additional Resources
  - **Availability**: Check general availability across properties
  - **Types**: Access system type definitions
  - **UiIntegrations**: Manage UI integration settings
  - **Maintenance**: Handle maintenance-related operations
  - **AgeCategory**: Manage age categories for guests
  - **CityTax**: Configure and manage city tax settings
  - **FeatureSettings**: Adjust feature-specific settings
  - **InvoiceAddress**: Manage invoice address information
  - **Languages**: Configure language settings
  - **MarketSegment**: Manage market segment definitions
  - **TimeSliceDefinitions**: Configure time slice settings
  - **HealthCheck**: Verify system health and connectivity
  - **Subscriptions**: Manage API event subscriptions

  For each resource, you can select from available operations like GET, POST, PUT, DELETE, etc. based on the Apaleo API capabilities.

  ### Apaleo Trigger Node

  Use this node to start workflows when specific events occur in Apaleo, such as:

  - Reservation created, modified, or canceled
  - Check-in or check-out completed
  - Payment processed or refunded
  - Folio or invoice created or updated
  - Property settings changed
  - Rate plan or availability updates
  - And many more events from the Apaleo system

  The trigger node works by subscribing to Apaleo's webhook events, allowing your n8n workflows to react in real-time to changes in your Apaleo environment.

  ## Development

  If you want to contribute or modify the nodes:

  1. Clone the repository
  2. Install dependencies:
     ```
     npm install
     ```
  3. Start development mode:
     ```
     npm run dev
     ```
  4. Make your changes
  5. Build the package:
     ```
     npm run build
     ```
  6. Test your changes locally

  ## License

  [MIT](LICENSE.md)

  ## About Apaleo

  [Apaleo](https://apaleo.com/) is a cloud-based property management system (PMS) that provides APIs for the hospitality industry, allowing seamless integration with various hotel systems and services.

ai_documentation_summary:
  {"purpose":"This n8n node package enables automation with Apaleo's property management system by providing nodes to interact with over 40 API resources and trigger workflows on system events.","capabilities":["Access and manage hotel properties, units, and unit groups","Create, retrieve, and manage guest reservations","Handle financial operations including folios, invoices, and payments","Manage rate plans, offers, and promotional codes","Monitor account settings and company information","Access system reports and activity logs","Check availability across properties","Configure UI integrations and maintenance settings","Receive webhook events for real-time workflow triggers"],"authentication":"OAuth2 API (Client ID and Client Secret)","commonUseCases":["Automate hotel reservation workflows","Trigger notifications on payment changes","Sync property data between systems","Generate reports based on booking activity","Automate check-in/check-out processes"],"limitations":["Requires n8n version 1.0.0 or later","Requires Node.js version 20.15 or later for manual installation","Requires valid Apaleo API credentials"],"relatedNodes":["Apaleo Trigger","Apaleo","Webhook","HTTP Request"]}


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

updated_at: 2026-04-16 09:43:35
author_name: sysmonitor
author_github_url: https://github.com/CaspioInnovations/n8n-node-caspioofficial.git
npm_package_name: n8n-nodes-caspioofficial
npm_version: 1.0.4
community_fetched_at: 2026-04-16T09:43:35.958Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "record",
      "options": [
        {
          "name": "Attachment",
          "value": "attachment"
        },
        {
          "name": "Data Import/Export Task",
          "value": "task"
        },
        {
          "name": "Directory",
          "value": "directory"
        },
        {
          "name": "File",
          "value": "file"
        },
        {
          "name": "Record",
          "value": "record"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create record",
          "description": "Create a new record in a table"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete records",
          "description": "Delete a record from a table"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many records",
          "description": "Returns records from a table or a view"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update records",
          "description": "Update a record in a table"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "record"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listFiles",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete file",
          "description": "Delete a file from Files area"
        },
        {
          "name": "Download",
          "value": "download",
          "action": "Download file",
          "description": "Download a file from Files area"
        },
        {
          "name": "Get File Properties",
          "value": "listFiles",
          "action": "Get file properties",
          "description": "Returns file properties from Fiels area"
        },
        {
          "name": "Get Folder Properties",
          "value": "listFolders",
          "action": "Get folder properties",
          "description": "Returns folder properties from Files area"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload file",
          "description": "Upload a file to Files area"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "file"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete attachments",
          "description": "Delete files from an attachment field"
        },
        {
          "name": "Download",
          "value": "download",
          "action": "Download attachments",
          "description": "Download files from an attachment field"
        },
        {
          "name": "Get Properties",
          "value": "list",
          "action": "Get attachment properties",
          "description": "Returns file properties stored in an attachment field"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload attachment",
          "description": "Upload a file to an attachment field"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "attachment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get Many",
          "value": "get",
          "action": "Get many data import export tasks",
          "description": "Returns the list of data import/export tasks"
        },
        {
          "name": "Run",
          "value": "run",
          "action": "Run data import export task",
          "description": "Run a chosen data import export task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getUsers",
      "options": [
        {
          "name": "Activate User",
          "value": "activateUser",
          "action": "Activate user",
          "description": "Activate a user in a directory"
        },
        {
          "name": "Create User",
          "value": "createUser",
          "action": "Create user",
          "description": "Create a new user in a directory"
        },
        {
          "name": "Delete User",
          "value": "deleteUsers",
          "action": "Delete users",
          "description": "Delete users from a directory"
        },
        {
          "name": "Get Many Directories",
          "value": "list",
          "action": "Get many directories",
          "description": "Returns the list of directories"
        },
        {
          "name": "Get Many Users",
          "value": "getUsers",
          "action": "Get many users",
          "description": "Returns the list of users in a directory"
        },
        {
          "name": "Update User",
          "value": "updateUsers",
          "action": "Update users",
          "description": "Update a user in a directory"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "directory"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create record",
      "description": "Create a new record in a table",
      "resource": "record"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete records",
      "description": "Delete a record from a table",
      "resource": "record"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many records",
      "description": "Returns records from a table or a view",
      "resource": "record"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update records",
      "description": "Update a record in a table",
      "resource": "record"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete file",
      "description": "Delete a file from Files area",
      "resource": "file"
    },
    {
      "name": "Download",
      "value": "download",
      "action": "Download file",
      "description": "Download a file from Files area",
      "resource": "file"
    },
    {
      "name": "Get File Properties",
      "value": "listFiles",
      "action": "Get file properties",
      "description": "Returns file properties from Fiels area",
      "resource": "file"
    },
    {
      "name": "Get Folder Properties",
      "value": "listFolders",
      "action": "Get folder properties",
      "description": "Returns folder properties from Files area",
      "resource": "file"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload file",
      "description": "Upload a file to Files area",
      "resource": "file"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete attachments",
      "description": "Delete files from an attachment field",
      "resource": "attachment"
    },
    {
      "name": "Download",
      "value": "download",
      "action": "Download attachments",
      "description": "Download files from an attachment field",
      "resource": "attachment"
    },
    {
      "name": "Get Properties",
      "value": "list",
      "action": "Get attachment properties",
      "description": "Returns file properties stored in an attachment field",
      "resource": "attachment"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload attachment",
      "description": "Upload a file to an attachment field",
      "resource": "attachment"
    },
    {
      "name": "Get Many",
      "value": "get",
      "action": "Get many data import export tasks",
      "description": "Returns the list of data import/export tasks",
      "resource": "task"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run data import export task",
      "description": "Run a chosen data import export task",
      "resource": "task"
    },
    {
      "name": "Activate User",
      "value": "activateUser",
      "action": "Activate user",
      "description": "Activate a user in a directory",
      "resource": "directory"
    },
    {
      "name": "Create User",
      "value": "createUser",
      "action": "Create user",
      "description": "Create a new user in a directory",
      "resource": "directory"
    },
    {
      "name": "Delete User",
      "value": "deleteUsers",
      "action": "Delete users",
      "description": "Delete users from a directory",
      "resource": "directory"
    },
    {
      "name": "Get Many Directories",
      "value": "list",
      "action": "Get many directories",
      "description": "Returns the list of directories",
      "resource": "directory"
    },
    {
      "name": "Get Many Users",
      "value": "getUsers",
      "action": "Get many users",
      "description": "Returns the list of users in a directory",
      "resource": "directory"
    },
    {
      "name": "Update User",
      "value": "updateUsers",
      "action": "Update users",
      "description": "Update a user in a directory",
      "resource": "directory"
    }
  ]

npm_readme:
  # n8n-nodes-caspioofficial

  This is an n8n community node for integrating with [Caspio](https://www.caspio.com/). Caspio is a low-code platform that helps you create custom business applications fast, combining database management, application building, and workflow automation in a single platform.

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

  ## Installation

  ### Community Nodes (n8n Cloud)

  For verified community nodes on n8n Cloud:

  1. Open your n8n workflow editor
  2. Select the **+** button or press **Tab** to open the nodes panel
  3. Search for "Caspio" and select it
  4. Select **Install** to add the node

  ### Self-Hosted

  For self-hosted n8n instances:

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter the npm package name: `n8n-nodes-caspioofficial`
  4. Agree to the risks of installing community nodes
  5. Select **Install**

  Note: Only the instance owner can install community nodes. Admin accounts can uninstall nodes if needed.

  ## Documentation

  This node provides comprehensive integration with Caspio's REST API:

  - **[Credentials Setup](https://howto.caspio.com/integrate-your-apps/integration-with-n8n/n8n-integration-credentials)** - Configure OAuth2 authentication with your Caspio account
  - **[Action Node Operations](https://howto.caspio.com/integrate-your-apps/integration-with-n8n/n8n-integration-actions)** - Work with tables, views, directories, files, attachments, and tasks
  - **[Trigger Node Setup](https://howto.caspio.com/integrate-your-apps/integration-with-n8n/n8n-integration-triggers)** - Set up webhooks for real-time event notifications

  ## Compatibility

  This node uses Caspio REST API v3.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Caspio REST API documentation](https://howto.caspio.com/web-services-api/rest-api/)
  - [Caspio homepage](https://www.caspio.com/)

  ## License

  [MIT](LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with Caspio's REST API v3 for integrating low-code business applications with n8n workflows.","capabilities":["OAuth2 authentication with Caspio accounts","Work with Caspio tables","Work with Caspio views","Work with Caspio directories","Work with Caspio files","Work with Caspio attachments","Work with Caspio tasks","Set up webhooks for real-time event notifications"],"authentication":"OAuth2","commonUseCases":["Automate data entry and updates in Caspio applications","Trigger Caspio workflows via n8n webhooks","Sync data between n8n and Caspio databases","Manage Caspio files and attachments programmatically"],"limitations":["Requires manual installation via npm package (n8n-nodes-caspioofficial)","Only available as a community node (not official n8n node)","Limited to Caspio REST API v3"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Credentials"]}


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

updated_at: 2026-04-16 09:43:35
author_name: bilalararou
author_github_url: https://github.com/Nuelink/n8n-nodes-nuelink.git
npm_package_name: @nuelink/n8n-nodes-nuelink
npm_version: 1.0.4
community_fetched_at: 2026-04-16T09:43:35.959Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Post",
          "value": "post"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createPost",
      "options": [
        {
          "name": "Create",
          "value": "createPost",
          "action": "Create post",
          "routing": {
            "request": {
              "url": "/pabbly",
              "method": "POST"
            }
          },
          "description": "Create a new post on Nuelink"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "post"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "createPost",
      "action": "Create post",
      "routing": {
        "request": {
          "url": "/pabbly",
          "method": "POST"
        }
      },
      "description": "Create a new post on Nuelink",
      "resource": "post"
    }
  ]

npm_readme:
  # n8n-nodes-nuelink

  This is an n8n community node. It lets you use [Nuelink](https://nuelink.com) in your n8n workflows.

  Nuelink is a social media automation and scheduling platform that helps creators, brands, and businesses streamline their content distribution across multiple social media platforms.

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

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

  ## Installation

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

  ## Operations

  - **Create Post**: Allows you to create a new post on Nuelink, specifying the content and the settings.

  ## Credentials

  Users need to authenticate with Nuelink to use this node. To set up authentication:
  1. Sign up for a Nuelink account at [Nuelink](https://nuelink.com).
  2. Create a new automation in the Nuelink dashboard.
  3. Obtain your API key from the automation settings.
  4. In n8n, add a new credential for Nuelink and enter your API key.

  ## Compatibility

  This node is compatible with n8n version 1.36.0 and above. It has been tested against the latest stable version of n8n.

  ## Usage

  1. Add a **Trigger** node (e.g., Webhook or Cron).
  2. Add the **Nuelink** node and choose an operation (e.g., Create Post).
  3. Select or create your API credentials.
  4. Configure your input data (e.g., post content, categories, image URLs).
  5. Connect additional nodes (e.g., filters, conditions, notifications) as needed.

  > **Note**  
  > This node is intended for users who are already familiar with n8n.  
  > If you're new to n8n, check out the [Try it out guide](https://docs.n8n.io/try-it-out/) to get started quickly.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Nuelink](https://nuelink.com)
  * [Nuelink help center](https://help.nuelink.com)

ai_documentation_summary:
  {"purpose":"This n8n community node enables users to interact with the Nuelink API for social media automation and content scheduling.","capabilities":["Create posts on Nuelink","Specify post content and settings","Schedule content distribution across multiple platforms"],"authentication":"API key required","commonUseCases":["Automating social media content distribution","Scheduling posts for creators and brands","Streamlining multi-platform content management"],"limitations":["Intended for users already familiar with n8n workflow automation","Limited to basic post creation operations as per current documentation"],"relatedNodes":["Webhook","Cron","Filter","Condition","Notification"]}


node_type: @calcslive/n8n-nodes-calcslive.calcsLive
package_name: @calcslive/n8n-nodes-calcslive
display_name: CalcsLive Calculator
description: Execute unit-aware calculations using CalcsLive articles
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: e3d
author_github_url: https://github.com/calcslive/n8n-nodes-calcslive.git
npm_package_name: @calcslive/n8n-nodes-calcslive
npm_version: 0.1.15
community_fetched_at: 2026-04-16T09:43:35.959Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "calculation",
      "options": [
        {
          "name": "Calculation",
          "value": "calculation"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "execute",
      "options": [
        {
          "name": "Execute",
          "value": "execute",
          "action": "Execute a calculation",
          "description": "Run a calculation using the specified inputs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "calculation"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Execute",
      "value": "execute",
      "action": "Execute a calculation",
      "description": "Run a calculation using the specified inputs",
      "resource": "calculation"
    }
  ]

npm_readme:
  # n8n-nodes-calcslive

  <img src="https://www.calcslive.com/favicon.ico" alt="CalcsLive Logo" width="90">  

   **Plug-and-Play Unit-Aware Multi-Step Calculations to your n8n**
   
  [CalcsLive](https://www.calcslive.com) calculations feature unit-awareness and pure symbolic equations to enable you to THINK in Physics without distraction in handling units. [`@calcslive/n8n-nodes-calcslive`](https://www.npmjs.com/package/@calcslive/n8n-nodes-calcslive) brings in the power and elegance to your n8n ecosystem.  

  Specifically for AI integration, it empowers AI agents with calculation accuracy and automatic handling of 540+ units across 64+ categories.

  > **🚧 MVP Release**: This is our early release focused on core unit-aware calculation functionality. We're actively improving the node and welcome your feedback to help shape future features! [Share your thoughts](https://github.com/calcslive/n8n-nodes-calcslive/issues) or reach out at don.wen@calcslive.com

  ## 🚀 Quick Start

  ### Installation
  1. Open your n8n instance
  2. Go to **Settings** → **Community Nodes** 
  3. Enter `@calcslive/n8n-nodes-calcslive` and click **Install**
  4. Create your **CalcsLive API** credentials with your API key for 'n8n Integration'

  ### First Calculation (5 minutes)
  1. **Create a simple calculation** at [CalcsLive](https://www.calcslive.com) and note the Article ID
  2. Add the **CalcsLive Calculator** node to your workflow
  3. Enter your Article ID and choose **Enhanced Mode** for guided setup
  4. Add input values and watch the unit-aware magic happen! 🎯

  **💡 Pro Tip**: Start with a simple unit conversion calc (see example below) to experience the power!

  ## 📸 Demo Workflow

  ![n8n CalcsLive Demo Workflow](assets/demo-workflow.png)

  *Example n8n workflow showing CalcsLive nodes performing unit-aware calculations: speed calculation, cylinder volume, and chained mass calculation using a Merge node to combine volume output with density input.*

  ### 🎥 Video Demonstration

  **[Watch the Complete Demo on YouTube →](https://www.youtube.com/watch?v=xC4iFwNkIQs)**
  *"n8n + CalcsLive → Plug-and-Play Unit-Aware Calculations"*

  This video walkthrough demonstrates:
  - 🚀 Installation and setup in n8n
  - 🎯 Creating CalcsLive calculations from scratch
  - 🔗 Building unit-aware workflow integrations
  - ⚡ Real-time calculation chaining between nodes
  - 📊 Handling complex multi-step engineering calculations

  ### Supporting Calculations

  The demo workflow uses these CalcsLive calculations:

  | Calculation | Article ID | Description |
  |-------------|---------|-------------|
  | **Speed Calculator** [(Link)](https://www.calcslive.com/editor/3M6P9TF5P-3XA) | `3M6P9TF5P-3XA` | Distance/time → speed with unit conversion |
  | **Cylinder Volume** [(Link)](https://www.calcslive.com/editor/3M6P9TF5P-3XA) | `3M6P9TF5P-3XA` | Diameter/height → volume calculation |
  | **Mass Calculator** [(Link)](https://www.calcslive.com/editor/3M6PBGU7S-3CA) | `3M6PBGU7S-3CA` | Volume + Density → Mass (chained calculation) |

  ### 🧩 Why Separate Calculations? The Composability Advantage

  **Question**: Why create a separate mass calculator when the first calculation already includes mass calculation?

  **Answer**: This demonstrates CalcsLive's **composable architecture** - a key design principle that unlocks powerful workflow patterns:

  🔗 **Calculation Chaining**: 
  - Calc1 outputs volume → Calc2 uses that volume as input
  - n8n expressions seamlessly bridge: `{{$json.volume_result}}`

  ♻️ **Reusability at Scale**:
  - One mass calc works with ANY volume calculation
  - Cylinder volume + Mass calc = Cylinder mass
  - Box volume + Mass calc = Box mass  
  - Sphere volume + Mass calc = Sphere mass

  🎯 **Result**: Instead of creating separate mass calculations for every shape, you build **modular, reusable calculation components** that combine in endless ways. This is the power of composable engineering in n8n workflows!

  ### 📥 Import Ready-to-Use Template

  Want to try this workflow instantly? Download and import our template:

  **[📥 Download Demo Workflow](assets/n8n-template-submission.json)** *(Right-click → Save As)*

  **Import Instructions:**
  1. In n8n: **Workflows** → **Import from File**
  2. Upload `n8n-template-submission.json`
  3. **Set up credentials** (you'll be prompted):
     - **CalcsLive API**: Add your API key from [CalcsLive Account](https://www.calcslive.com/account)
  4. **Execute** and watch the unit-aware magic! ✨

  The template includes a **Merge node** that combines Volume calculation output with Density input, demonstrating how to chain calculations that require data from multiple sources.

  ## ✨ Why CalcsLive? The Plug-and-Play Revolution!

  ### **🔌 Plug-and-Play Power**
  CalcsLive transforms n8n workflows with **zero-configuration unit awareness**. Simply plug the CalcsLive node between any two nodes and instantly bridge different unit systems, calculations, or data formats.

  ### **🚀 n8n Expressions + Unit Awareness = Game Changer**
  When you use n8n expressions (`{{$json.data}}`) with CalcsLive, your workflow data becomes **unit-aware**:
  - **Dynamic Values**: `{{$json.temperature}}` → Automatic °C to °F conversion
  - **Smart Bridging**: Any node → CalcsLive → Any node with proper units  
  - **Zero Code**: No manual conversion formulas or complex calculations needed

  ### **Before vs After Comparison**
  ```javascript
  // ❌ Before: Manual unit conversion nightmare
  const distanceKm = 150;
  const timeHours = 2;  
  const speedKmH = distanceKm / timeHours; // = 75 km/h
  // Need mph? Write more conversion code...
  const speedMph = speedKmH * 0.621371; // = 46.6 mph
  ```

  ```json
  // ✅ With CalcsLive: Plug-and-play unit-aware workflows
  {
    "inputs": {
      "D": { "value": "{{$json.distance}}", "unit": "km" },
      "t": { "value": "{{$json.time}}", "unit": "h" }
    },
    "outputs": {
      "s": { "unit": "mph" }
    }
  }
  // Result: Perfect unit conversion with n8n expression data! 🎯
  ```

  ## 🎯 Real-World Use Cases

  ### **🔌 Plug-and-Play Benefits for n8n Ecosystem**

  **🎯 Instant Unit Bridging**: Drop CalcsLive between any nodes to bridge unit mismatches
  - Google Sheets (metric) → CalcsLive → US Database (imperial) ✨
  - IoT Sensors (various units) → CalcsLive → Normalized Dashboard 📊
  - API Response (°C) → CalcsLive → Email Alert (°F) 📧

  **🚀 Zero Configuration**: No complex setup, just plug and play
  - Create calc once → Use everywhere in your workflows
  - n8n expressions work seamlessly with unit awareness
  - Dynamic data flows get automatic unit intelligence

  **⚡ Workflow Superpowers**: Transform ordinary workflows into unit-aware automation
  - **Before**: 5 nodes + custom code for unit conversion
  - **After**: 1 CalcsLive node with automatic unit handling
  - **Result**: Cleaner workflows, fewer errors, more reliability

  ## 🔧 Configuration Modes

  ### **Enhanced Mode** (Recommended) 🌟
  User-friendly interface with:
  - **Dropdown Selectors**: Choose input/output quantities from article
  - **Auto-Discovery**: Automatically loads available parameters
  - **Default Values**: Pre-populated with article defaults
  - **Unit Validation**: Visual feedback for valid units
  - **Smart Tooltips**: Contextual help for each parameter

  ### **Legacy Mode** (Advanced Users)
  Direct JSON input for:
  - **Power Users**: Full control over request structure  
  - **Custom Integrations**: Programmatic parameter generation
  - **Dynamic Workflows**: Expression-based parameter building

  ## 📋 Step-by-Step Guide

  ### **Step 1: Get Your API Key**
  1. Visit [CalcsLive](https://www.calcslive.com) and create an account
  2. Go to **Account** → **API Keys** 
  3. Generate a new API key for n8n integration
  4. Note your subscription tier limits (Free: 100 calls/month after trial)

  > **📦 npm Package**: [`@calcslive/n8n-nodes-calcslive`](https://www.npmjs.com/package/@calcslive/n8n-nodes-calcslive)

  ### **Step 2: Configure Credentials**
  1. In n8n: **Credentials** → **Create New** → **CalcsLive API**
  2. Enter your API key from Step 1
  3. Base URL: `https://www.calcslive.com` (default)

  ### **Step 3: Create Your Calculation Articles**
  **Security Note**: CalcsLive's n8n integration API is designed so users can only use their own public calculation articles in the CalcsLive node. You can create your own articles and use them in your node easily following the examples.

  1. Visit [CalcsLive](https://www.calcslive.com) and create your calculation
  2. Define your Physical Quantities (PQs) and mathematical relationships  
  3. Save your calculation and **find the Article ID in the URL**
     - Example URL: `https://www.calcslive.com/editor/3M5NVUCGW-3TA`
     - Article ID: `3M5NVUCGW-3TA` (the part after `/editor/`)

  **Demo Article IDs** (for reference only - create your own for actual use):
  - `3M6P9TF5P-3XA` - Speed & Cylinder Volume Calculator
  - `3M6PBGU7S-3CA` - Mass Calculator (Volume × Density)

  ### **Step 4: Configure Your Node**

  #### **Enhanced Mode Setup:**
  1. **Article ID**: Enter your chosen calculation ID
  2. **Input Physical Quantities**: Click "Add Input PQ"
     - Select parameter from dropdown
     - Enter value (or use expression)
     - Specify unit (optional - uses article default)
  3. **Output Physical Quantities**: Click "Add Output PQ" 
     - Select desired output parameter
     - Specify preferred unit for results

  #### **Legacy Mode Setup:**
  ```json
  {
    "articleId": "3M5NVUCGW-3TA",
    "inputs": {
      "D": { "value": 150, "unit": "km" },
      "t": { "value": 2, "unit": "h" }
    },
    "outputs": {
      "s": { "unit": "mph" }
    }
  }
  ```

  #### **Note**
  For input PQs and output PQs in your article, when they are not used in your node, input values and units in the article will be used to perform the calculations for your node.

  It is recommended to include all input and out PQs available from the article in your node, to allow flexibility in use for both upstream and downstream nodes.

  ## 💡 Workflow Examples

  ### **Example 1: Simple Unit Conversion (Perfect for Getting Started!)**
  **Step 1**: Create a calc in CalcsLive frontend with 2 PQs:
  - `PQ0 = 2 m` (input quantity) 
  - `PQ1 = PQ0 cm` (output - just unit conversion)

  **Step 2**: Use in n8n workflow as a plug-and-play unit converter:
  ```
  Data Source → CalcsLive Calculator → Next Node
  ```
  ```json
  {
    "articleId": "YOUR-ARTICLE-ID",
    "inputs": {
      "PQ0": { "value": "{{$json.length_meters}}", "unit": "m" }
    },
    "outputs": {
      "PQ1": { "unit": "cm" }
    }
  }
  ```
  **🎯 Result**: Automatic m → cm conversion! Refer to [Interactive Units Database](https://www.calcslive.com/help/units-reference#interactive-units-database) for all units and categories CalcsLive support. The CalcsLive node becomes a **unit-aware bridge** between any two nodes in your workflow.

  ### **Example 2: IoT Sensor Processing with n8n Expressions**
  ```
  IoT Sensor → CalcsLive Calculator → Database
  ```
  **🚀 Game-Changer**: When you use n8n expressions (like `{{$json.temperature}}`) with CalcsLive, your data gets **unit-awareness superpowers**!
  ```json
  {
    "inputs": {
      "temp_c": { "value": "{{$json.temperature}}", "unit": "°C" }
    },
    "outputs": {
      "temp_f": { "unit": "°F" }
    }
  }
  ```

  ### **Example 3: Batch Spreadsheet Processing**
  ```
  Google Sheets → CalcsLive Calculator → Email Report
  ```
  **Use Case**: Process engineering data with n8n expressions passing spreadsheet values directly to unit-aware calculations

  ### **Example 4: Real-time Monitoring Dashboard**
  ```
  Webhook → CalcsLive Calculator → InfluxDB → Grafana
  ```
  **Use Case**: Monitor manufacturing equipment with unit-normalized metrics using dynamic n8n expressions

  ### **Example 5: Compliance Reporting**
  ```
  Database Query → CalcsLive Calculator → PDF Generator → Email
  ```
  **Use Case**: Generate regulatory reports with region-appropriate units

  ## 📊 Understanding Node Output

  ### **Success Response Structure**
  ```json
  {
    "success": true,
    "articleId": "3M5NVUCGW-3TA",
    "inputs": {
      "D": {
        "symbol": "D",
        "value": 150,
        "unit": "km", 
        "baseValue": 150000,
        "baseUnit": "m",
        "description": "Distance"
      }
    },
    "outputs": {
      "s": {
        "symbol": "s",
        "value": 46.6,
        "unit": "mph",
        "baseValue": 20.83,
        "baseUnit": "m/s", 
        "expression": "D/t",
        "description": "Speed"
      }
    },
    "_metadata": {
      "executionTime": "2025-09-03T17:30:00.000Z",
      "processingTimeMs": 45
    }
  }
  ```

  ### **Key Output Fields**
  - **`value`** & **`unit`**: Your requested result with specified units
  - **`expression`**: Mathematical formula used for calculation
  - **`description`**: Human-readable parameter description

  ## 🚨 Error Handling & Troubleshooting

  ### **Common Error Messages**

  | Error Code | Message | Solution |
  |------------|---------|----------|
  | **401** | Invalid API Key | Check your CalcsLive API credentials |
  | **404** | Article Not Found | Verify article ID exists and is public |
  | **400** | Invalid Input Format | Check JSON structure and unit syntax |
  | **429** | Rate Limit Exceeded | Wait or upgrade subscription tier |
  | **500** | Server Error | Temporary CalcsLive service issue |

  ### **Best Practices**
  - **Cache Article Metadata**: Use Set nodes to avoid repeated validation calls  
  - **Error Boundaries**: Add error handling for calculation failures
  - **Unit Validation**: Test unit compatibility before production deployment
  - **Rate Limiting**: Monitor API usage in high-frequency workflows

  ### **Debugging Tips**
  1. **Enable Node Debugging**: Check console logs for detailed request/response info
  2. **Test Articles**: Use demo article IDs for initial testing
  3. **Unit Checking**: Verify unit spelling - case sensitive! (`km` not `KM`)
  4. **Expression Validation**: Check that symbols match article definitions

  ## 🔧 Advanced Configuration

  ### **Dynamic Parameters with Expressions**
  ```json
  {
    "inputs": {
      "pressure": { 
        "value": "{{$json.sensor_pressure}}", 
        "unit": "{{$json.sensor_unit || 'Pa'}}" 
      }
    }
  }
  ```

  ### **Conditional Output Units**
  ```json
  {
    "outputs": {
      "temperature": { 
        "unit": "{{$json.region === 'US' ? '°F' : '°C'}}" 
      }
    }
  }
  ```

  ### **Batch Processing Pattern**
  ```javascript
  // Split incoming array → CalcsLive Calculator → Merge results
  ```

  ## 🌍 Units & Categories

  CalcsLive supports **64+ unit categories** with **540+ units**! 

  📖 **Complete Reference**: Visit [CalcsLive Units Reference](https://www.calcslive.com/help/units-reference) for the interactive browser with search functionality and complete unit listings.

  ## 📚 API Reference

  ### **Node Parameters**

  | Parameter | Type | Required | Description |
  |-----------|------|----------|-------------|
  | `articleId` | string | ✅ | CalcsLive calculation article identifier |
  | `configMode` | enum | ✅ | "enhanced" or "legacy" configuration mode |
  | `inputPQs` | array | 📋 | Enhanced mode: Physical quantity inputs |
  | `outputPQs` | array | ⚪ | Enhanced mode: Desired outputs with units |
  | `inputs` | JSON | 📋 | Legacy mode: Direct JSON input structure |  
  | `outputs` | JSON | ⚪ | Legacy mode: Direct JSON output specification |

  **Legend**: ✅ Required, 📋 Required in respective mode, ⚪ Optional

  ### **Input PQ Structure (Enhanced Mode)**
  ```json
  {
    "symbol": "D",          // Parameter symbol from article
    "value": 150,           // Numeric value
    "unit": "km"            // Unit specification (optional)
  }
  ```

  ### **Output PQ Structure (Enhanced Mode)**
  ```json
  {
    "symbol": "s",          // Output parameter symbol  
    "unit": "mph"           // Desired output unit
  }
  ```

  ## 🔗 Integration Examples

  ### **Google Sheets Integration**
  ```
  Google Sheets Trigger → CalcsLive Calculator → Google Sheets Update
  ```
  Process engineering data with automatic unit normalization.

  ### **Discord/Slack Bot**
  ```
  Discord Trigger → CalcsLive Calculator → Discord Response
  ```
  Create calculation bots for engineering teams.

  ### **Database ETL Pipeline** 
  ```
  Database → CalcsLive Calculator → Transform → Data Warehouse
  ```
  Standardize units across diverse data sources.

  ### **Monitoring & Alerting**
  ```
  Sensor API → CalcsLive Calculator → Condition → Email Alert
  ```
  Calculate safety thresholds with proper unit handling.

  ## 🆘 Support & Community

  - **📖 Documentation**: [CalcsLive Docs](https://www.calcslive.com/docs)
  - **🔧 API Reference**: [CalcsLive API Docs](https://www.calcslive.com/docs/api) 
  - **🐛 Bug Reports**: [GitHub Issues](https://github.com/calcslive/n8n-nodes-calcslive/issues)
  - **💬 Community**: [n8n Community Forum](https://community.n8n.io)
  - **📧 Direct Support**: don.wen@calcslive.com

  ## 🤝 Contributing

  We welcome contributions! Here's how to get involved:

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

  ### **Development Setup**
  ```bash
  git clone https://github.com/calcslive/n8n-nodes-calcslive.git
  cd n8n-nodes-calcslive
  npm install
  npm run build
  npm link

  # In your n8n directory
  npm link n8n-nodes-calcslive
  n8n start
  ```

  ## 📋 Version History

  ### **0.1.15** - n8n Community Compliance
  - ✅ Proper credential authentication with `authenticate` method
  - ✅ Uses `httpRequestWithAuthentication` for secure API calls
  - ✅ Added `pairedItem` for proper n8n item linking
  - ✅ Implemented `continueOnFail` support
  - ✅ Workflow template with Merge node for chained calculations
  - ✅ Removed all console.log statements
  - ✅ Passes n8n security scan

  ### **0.1.0** - MVP Release
  - ✅ Enhanced and Legacy configuration modes
  - ✅ Automatic unit conversion system
  - ✅ Comprehensive error handling
  - ✅ API key authentication
  - ✅ Input/output parameter discovery

  ### **Roadmap**
  - **0.2.0**: Batch processing optimizations
  - **0.3.0**: Cached metadata for improved performance  
  - **0.4.0**: Visual calculation builder interface
  - **1.0.0**: Production release with full test coverage

  ## 📜 License

  MIT License - see [LICENSE](LICENSE) file for details.

  ## 🌟 About CalcsLive

  CalcsLive transforms how engineers and technical professionals handle calculations by embedding unit-aware mathematics directly into documents and workflows. Founded on the principle that calculations should be as easy as writing text, CalcsLive bridges the gap between mathematical rigor and practical usability.

  **Visit [CalcsLive](https://www.calcslive.com) to explore the full platform!**

  ---

  *Made with ❤️ by the CalcsLive team. Empowering engineers through intelligent calculations.*

ai_documentation_summary:
  {"purpose":"Executes unit-aware, multi-step calculations using CalcsLive articles within n8n workflows, enabling automatic unit conversion and symbolic equation solving.","capabilities":["Unit-aware calculations across 540+ units and 64+ categories","Symbolic equation solving","Multi-step calculation chaining","Integration with n8n expressions ({{$json}})","Support for Enhanced Mode guided setup","Composable calculation architecture"],"authentication":"API key required","commonUseCases":["Physics calculations (speed, volume, mass)","Unit conversions between different systems","Engineering calculations requiring multiple inputs","AI agent workflows needing precise numerical outputs"],"limitations":["MVP release with core functionality only","Requires pre-created CalcsLive articles for calculations"],"relatedNodes":["n8n Merge Node","n8n Code Node","n8n HTTP Request Node"]}


node_type: n8n-nodes-targetare.targetareRo
package_name: n8n-nodes-targetare
display_name: Targetare.ro
description: Get data from Targetare.ro API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: apps_makeitfuture
author_github_url: https://github.com/avramandrei85/
npm_package_name: n8n-nodes-targetare
npm_version: 1.0.7
community_fetched_at: 2026-04-16T09:43:35.960Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "companies",
      "options": [
        {
          "name": "Company",
          "value": "companies"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getByRegistration",
      "options": [
        {
          "name": "Get By CUI",
          "value": "getByTaxId",
          "action": "Get company by cui",
          "routing": {
            "request": {
              "url": "=/companies/{{$parameter.taxId}}",
              "method": "GET"
            }
          },
          "description": "Get a single company by its CUI"
        },
        {
          "name": "Get By Registration Date",
          "value": "getByRegistration",
          "action": "Get companies by registration date",
          "routing": {
            "request": {
              "url": "/companies/",
              "method": "GET"
            }
          },
          "description": "Get companies registered from a specific date"
        },
        {
          "name": "Get Company Administrators by CUI",
          "value": "getAdministratorsByTaxId",
          "action": "Get company administrators by cui",
          "routing": {
            "request": {
              "url": "=/companies/{{$parameter.taxId}}/administrators",
              "method": "GET"
            }
          },
          "description": "Get company Administrators by its CUI"
        },
        {
          "name": "Get Company Emails by CUI",
          "value": "getEmailsByTaxId",
          "action": "Get company emails by cui",
          "routing": {
            "request": {
              "url": "=/companies/{{$parameter.taxId}}/emails",
              "method": "GET"
            }
          },
          "description": "Get company Emails by its CUI"
        },
        {
          "name": "Get Company Financial by CUI",
          "value": "getFinancialByTaxId",
          "action": "Get company financial by cui",
          "routing": {
            "request": {
              "url": "=/companies/{{$parameter.taxId}}/financial",
              "method": "GET"
            }
          },
          "description": "Get company financial information by its CUI"
        },
        {
          "name": "Get Company Phones by CUI",
          "value": "getPhonesByTaxId",
          "action": "Get company phones by cui",
          "routing": {
            "request": {
              "url": "=/companies/{{$parameter.taxId}}/phones",
              "method": "GET"
            }
          },
          "description": "Get company Phones by its CUI"
        },
        {
          "name": "Get Company Websites by CUI",
          "value": "getWebsitesByTaxId",
          "action": "Get company websites by cui",
          "routing": {
            "request": {
              "url": "=/companies/{{$parameter.taxId}}/websites",
              "method": "GET"
            }
          },
          "description": "Get company Websites by its CUI"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "companies"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get By CUI",
      "value": "getByTaxId",
      "action": "Get company by cui",
      "routing": {
        "request": {
          "url": "=/companies/{{$parameter.taxId}}",
          "method": "GET"
        }
      },
      "description": "Get a single company by its CUI",
      "resource": "companies"
    },
    {
      "name": "Get By Registration Date",
      "value": "getByRegistration",
      "action": "Get companies by registration date",
      "routing": {
        "request": {
          "url": "/companies/",
          "method": "GET"
        }
      },
      "description": "Get companies registered from a specific date",
      "resource": "companies"
    },
    {
      "name": "Get Company Administrators by CUI",
      "value": "getAdministratorsByTaxId",
      "action": "Get company administrators by cui",
      "routing": {
        "request": {
          "url": "=/companies/{{$parameter.taxId}}/administrators",
          "method": "GET"
        }
      },
      "description": "Get company Administrators by its CUI",
      "resource": "companies"
    },
    {
      "name": "Get Company Emails by CUI",
      "value": "getEmailsByTaxId",
      "action": "Get company emails by cui",
      "routing": {
        "request": {
          "url": "=/companies/{{$parameter.taxId}}/emails",
          "method": "GET"
        }
      },
      "description": "Get company Emails by its CUI",
      "resource": "companies"
    },
    {
      "name": "Get Company Financial by CUI",
      "value": "getFinancialByTaxId",
      "action": "Get company financial by cui",
      "routing": {
        "request": {
          "url": "=/companies/{{$parameter.taxId}}/financial",
          "method": "GET"
        }
      },
      "description": "Get company financial information by its CUI",
      "resource": "companies"
    },
    {
      "name": "Get Company Phones by CUI",
      "value": "getPhonesByTaxId",
      "action": "Get company phones by cui",
      "routing": {
        "request": {
          "url": "=/companies/{{$parameter.taxId}}/phones",
          "method": "GET"
        }
      },
      "description": "Get company Phones by its CUI",
      "resource": "companies"
    },
    {
      "name": "Get Company Websites by CUI",
      "value": "getWebsitesByTaxId",
      "action": "Get company websites by cui",
      "routing": {
        "request": {
          "url": "=/companies/{{$parameter.taxId}}/websites",
          "method": "GET"
        }
      },
      "description": "Get company Websites by its CUI",
      "resource": "companies"
    }
  ]

npm_readme:
  # n8n-nodes-targetare

  ![n8n.io - Targetare.ro Node](https://user-images.githubusercontent.com/10284570/173569848-c624317f-42b1-45a6-ab09-f0ea3c247648.png)

  A community node for [n8n](https://n8n.io) to integrate with the [Targetare.ro API](https://api.targetare.ro).  

  This node allows you to query company data from Targetare.ro, including registration information, financials, contacts, administrators, and more.

  ---

  ## Features

  ✅ Authenticate with your Targetare.ro API key  
  ✅ Get companies by registration date  
  ✅ Look up company by CUI (tax ID)  
  ✅ Retrieve financial data, phones, emails, administrators, websites for a given CUI

  ---

  ## Installation

  Make sure you have [n8n](https://n8n.io) installed locally or on your server.

  Install this community node in your n8n instance:

  ```bash
  npm install n8n-nodes-targetare

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with the Targetare.ro API to retrieve company data including registration information, financials, contacts, and administrators.","capabilities":["Authenticate with Targetare.ro API using an API key","Query companies by registration date","Look up company data by CUI (tax ID)","Retrieve financial data for a given CUI","Retrieve phone numbers, emails, websites, and administrator details for a given CUI"],"authentication":"API key required","commonUseCases":["Business verification and due diligence","Company contact information retrieval","Financial data analysis for specific companies","Administrative contact lookup"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-sendzen.sendZen
package_name: n8n-nodes-sendzen
display_name: SendZen for WhatsApp API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: sendzen-io
author_github_url: https://github.com/sendzen-io/
npm_package_name: n8n-nodes-sendzen
npm_version: 1.0.8
community_fetched_at: 2026-04-16T09:43:35.961Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  Build WhatsApp chatbots & automations: send messages, media, and notifications via the WhatsApp Cloud API.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "sendMessage",
      "options": [
        {
          "name": "Send Message",
          "value": "sendMessage"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "sendSessionMessage",
      "options": [
        {
          "hint": "Use this option to reply to a user within an active conversation without using a template.",
          "name": "Send Session Message",
          "value": "sendSessionMessage",
          "action": "Send session message",
          "description": "Send a free-form message within an active 24-hour WhatsApp conversation window"
        },
        {
          "hint": "Use this option when replying outside the 24-hour session window or when a template is required by WhatsApp.",
          "name": "Send Template Message",
          "value": "sendTemplateMessage",
          "action": "Send template message",
          "description": "Send a pre-approved WhatsApp template message to a recipient"
        },
        {
          "hint": "Use this option to mark the incoming message as read.",
          "name": "Mark as Read",
          "value": "markAsRead",
          "action": "Mark as read",
          "description": "Mark the incoming message as read."
        },
        {
          "hint": "Use this option to show a typing indicator while the workflow continues.",
          "name": "Show Typing Indicator",
          "value": "showTyping",
          "action": "Show typing indicator",
          "description": "Display a typing indicator while the workflow continues."
        }
      ],
      "required": true,
      "description": "Choose how you want to interact with the recipient using SendZen.",
      "displayName": "Operation",
      "disabledOptions": {
        "show": {
          "resource": [
            "sendMessage"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "hint": "Use this option to reply to a user within an active conversation without using a template.",
      "name": "Send Session Message",
      "value": "sendSessionMessage",
      "action": "Send session message",
      "description": "Send a free-form message within an active 24-hour WhatsApp conversation window"
    },
    {
      "hint": "Use this option when replying outside the 24-hour session window or when a template is required by WhatsApp.",
      "name": "Send Template Message",
      "value": "sendTemplateMessage",
      "action": "Send template message",
      "description": "Send a pre-approved WhatsApp template message to a recipient"
    },
    {
      "hint": "Use this option to mark the incoming message as read.",
      "name": "Mark as Read",
      "value": "markAsRead",
      "action": "Mark as read",
      "description": "Mark the incoming message as read."
    },
    {
      "hint": "Use this option to show a typing indicator while the workflow continues.",
      "name": "Show Typing Indicator",
      "value": "showTyping",
      "action": "Show typing indicator",
      "description": "Display a typing indicator while the workflow continues."
    }
  ]

npm_readme:
  [![npm version](https://img.shields.io/npm/v/n8n-nodes-sendzen.svg?style=flat-square)](https://www.npmjs.com/package/n8n-nodes-sendzen)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](LICENSE.md)
  [![n8n](https://img.shields.io/badge/n8n-community-orange?style=flat-square)](https://n8n.io)

  # n8n-nodes-sendzen

  This is an n8n community node for integrating **SendZen** with your workflows.

  SendZen provides an API on top of the **official WhatsApp Cloud API**, so you can send messages (session + templates) and receive inbound WhatsApp messages via webhooks.

  - Website: https://www.sendzen.io
  - Docs: https://sendzen.io/docs

  ---

  ## Table of Contents

  - [Overview](#overview)
  - [Installation](#installation)
  - [Authentication](#authentication)
  - [Features](#features)
  - [How to Use the SendZen Action Node](#how-to-use-the-sendzen-action-node)
  - [How to Use the SendZen Trigger Node](#how-to-use-the-sendzen-trigger-node)
  - [Common Use Cases](#common-use-cases)
  - [Best Practices](#best-practices)
  - [Troubleshooting](#troubleshooting)
  - [Compatibility](#compatibility)
  - [Resources](#resources)
  - [Running Locally](#running-locally)
  - [Contributing](#contributing)
  - [Support](#support)
  - [License](#license)

  ---

  ## Overview

  SendZen helps developers and software platforms use WhatsApp reliably without dealing with all the Meta Cloud API complexity directly.

  With this n8n node, you can:

  - Send **session messages** (within 24-hour customer care window)
  - Send **template messages** (for business-initiated conversations)
  - Mark messages as read
  - Show typing indicator
  - Receive inbound messages via **webhook trigger**

  ---

  ## Screenshots

  ### Send Session Message

  ![SendZen Send Session Message Node in n8n](https://raw.githubusercontent.com/sendzen-io/n8n-nodes-sendzen/main/assets/Session_Message.png)

  ### Send Template Message

  ![SendZen Send Template Message Node in n8n](https://raw.githubusercontent.com/sendzen-io/n8n-nodes-sendzen/main/assets/Template_Message.png)

  ---

  ## Installation

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

  ---

  ## Authentication

  To use this node, you need a **SendZen API Key**.

  1. Sign up at https://www.sendzen.io
  2. Go to your dashboard and generate an API key (Dashboard → API Keys)
  3. Connect your WhatsApp Business Account (WABA) inside SendZen (required to send messages)

  > Note: Keep your API key secure and never commit it to code or share it publicly.

  ---

  ## Data & Security Notes

  - This node sends message content, recipient phone numbers, template names, and template variables to SendZen to deliver WhatsApp messages.
  - Store your SendZen API key only in **n8n Credentials**.
  - For inbound messages, enable **webhook signature verification** (recommended) to prevent spoofed requests.

  ---

  ## Features

  ### SendZen Action Node

  - **Send Session Message**
    - Send free-form text messages within the active 24-hour window
    - Supports URL previews and E.164 validation
  - **Send Template Message**
    - Send pre-approved templates to start conversations
    - Dynamic template + variable mapping (body, header, buttons)
    - Supports media headers (image, video, document, audio)
    - Supports CTA and quick reply buttons
  - **Mark as Read**
    - Mark inbound messages as read (useful for UX and analytics)
    - Auto-detects message identifiers when connected from the trigger
  - **Show Typing Indicator**
    - Show “Typing…” to make automations feel more natural

  ### SendZen Trigger Node

  - Receive inbound WhatsApp messages in real time via webhook
  - Outputs full message payload (text, media, location, contacts)
  - Simple webhook setup: copy URL from node → paste in SendZen dashboard

  ---

  ## How to Use the SendZen Action Node

  ### Prerequisites

  - A SendZen account
  - A connected WhatsApp Business Account (WABA) in SendZen
  - Access to n8n

  ### Setup Process

  1. **Create your SendZen API key**
     - Open SendZen dashboard
     - Go to **API Keys**
     - Copy the key and store it securely

  2. **Connect your WABA**
     - Complete the WABA connection flow in SendZen
     - Ensure at least one phone number is connected and active

  ### Integration Steps (n8n)

  1. Create a new workflow in n8n
  2. Add any trigger (Webhook, Schedule, CRM trigger, etc.)
  3. Add **SendZen** node
  4. In SendZen node:
     - Select **Credentials** → **Create New**
     - Choose **SendZen API**
     - Paste your API key
     - Save
  5. Choose an operation and fill required fields
  6. Click **Test Step**
  7. Save and activate your workflow

  ---

  ## How to Use the SendZen Trigger Node

  ### Prerequisites

  - A SendZen account
  - A connected WABA phone number
  - Access to n8n

  ### Webhook signature verification (HMAC-SHA256) — recommended

  SendZen signs every webhook payload using **HMAC-SHA256** and includes the signature in the `X-Hub-Signature-256` header in this format:

  - `X-Hub-Signature-256: sha256=<hex>`

  To enable signature verification in n8n:

  1. In the **SendZen dashboard** webhook settings, set a **Secret Key** (recommended).
  2. In n8n, create credentials:
     - Credentials type: **SendZen Webhook API**
     - Set **Secret Key** to the same value you configured in SendZen.
  3. In the **SendZen Trigger** node, select those **SendZen Webhook API** credentials.

  If credentials are set, the trigger will return **401** for missing/invalid signatures.

  Important: signature verification requires hashing the **raw request body**. Avoid any middleware/proxies that reformat/pretty-print the JSON payload. If you run n8n behind Cloudflare / nginx / API gateway, ensure it does not modify request body (no pretty-print, no re-encoding)

  ### Setup Process

  1. **Get your webhook URL from n8n**
     - Add **SendZen Trigger** node in your workflow
     - At the top of the node, find **Webhook URLs**
     - Copy the **Production URL**

  Tip: Use the **Test URL** while testing in the editor. After activating the workflow, set the **Production URL** in SendZen for live traffic.

  2. **Add webhook URL in SendZen**
     - Open SendZen dashboard webhook settings
     - Paste the Production URL
     - Save changes

  3. **Test and activate**
     - In n8n, click **Test Step**
     - Send a WhatsApp message to your connected number to verify the trigger fires
     - Save workflow and toggle **Active**

  ---

  ## Common Use Cases

  - **Lead capture + instant reply**: Trigger on inbound message, capture details, respond with next steps
  - **Order updates**: Trigger on order status change, send template message
  - **Appointment reminders**: Scheduled trigger, send template reminders
  - **Support automation**: Trigger on inbound support message, route based on keywords, reply
  - **Payment reminders**: Trigger from billing system, send WhatsApp template


    ### Example 1: New lead → WhatsApp template

    Trigger: CRM/New form submission → Send Template Message → Log result.

    ### Example 2: Inbound WhatsApp → Auto-reply + CRM

    SendZen Trigger → IF keyword contains "pricing" → Send Session Message → Create lead in CRM.

  ---

  ## Best Practices

  - Use **template messages** to start conversations (business-initiated).
  - Use **session messages** only within the active 24-hour window.
  - Keep API keys only inside **n8n Credentials**.
  - For production workflows, log failures and add retries (for example using IF + Wait + Retry patterns).
  - When using templates, prefer mapping variables explicitly so workflows remain readable.

  ---

  ## Troubleshooting

  - **401 / auth error**: Re-check API key and credential selected in the node
  - **No WABA accounts listed**: Confirm WABA is connected inside SendZen
  - **Trigger not firing**:
    - Ensure webhook URL is saved in SendZen
    - Confirm the URL is publicly reachable
    - Confirm workflow is active in n8n
  - **Template missing**: Ensure template exists and is approved in your WhatsApp Business Manager

  ---

  ## Compatibility

  - **n8n**: 1.0.0+ (tested on 1.89.2+)
  - **Node.js**: >= 18.10

  ---

  ## Resources

  - SendZen Documentation: https://sendzen.io/docs
  - WhatsApp Cloud API Reference: https://developers.facebook.com/docs/whatsapp
  - n8n Community Nodes: https://docs.n8n.io/integrations/community-nodes/

  ---

  ## Version history

  ### 1.0.1

  - **Robustness:** Added comprehensive Jest test suite for Triggers, Actions, and Template Builders.
  - **Optimization:** Reduced package size by excluding development files.

  ### 1.0.0

  - Initial release
  - Support for Session Messages, Templates, Mark as Read, Typing Indicators.
  - Webhook Trigger support.
  - Auto-discovery for WABA Accounts and Templates.

  ---

  ## Running Locally

  If you want to contribute or modify this node:

  1.  **Clone:** `git clone https://github.com/sendzen-io/n8n-nodes-sendzen.git`
  2.  **Install:** `pnpm install`
  3.  **Build:** `pnpm build`
  4.  **Test:** `pnpm test` (Runs the Jest test suite)
  5.  **Link:** Follow the [n8n custom node guide](https://docs.n8n.io/integrations/community-nodes/create/) to link `dist` to your local n8n instance.

  ---

  ## Contributing

  We welcome contributions! Please follow these steps:

  1.  Fork the repository.
  2.  Create a feature branch.
  3.  **Run Tests:** Ensure `pnpm test` passes.
  4.  Submit a Pull Request.

  ## Support

  - Email: [milan@sendzen.io](mailto:milan@sendzen.io)
  - Issues: use GitHub Issues in this repository

  ---

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with SendZen to send and receive WhatsApp messages via the WhatsApp Cloud API, enabling chatbot automation and customer care workflows.","capabilities":["Send session messages (free-form text within 24-hour window)","Send template messages with dynamic variables and media headers","Mark inbound messages as read","Show typing indicator for natural automation feel","Receive inbound WhatsApp messages via webhook trigger","Support URL previews and E.164 phone number validation","Support CTA and quick reply buttons in templates"],"authentication":"API key required (SendZen API Key stored in n8n Credentials)","commonUseCases":["Automated customer support responses","Order confirmation and shipping notifications","Appointment reminders and scheduling","Marketing campaigns and promotional messages","Two-factor authentication (2FA) codes"],"limitations":["Session messages are limited to the 24-hour customer care window","Template messages require pre-approval from WhatsApp","Webhook signature verification requires raw request body without middleware modification","Requires a connected WhatsApp Business Account (WABA) in SendZen","Inbound message handling requires webhook setup on SendZen dashboard"],"relatedNodes":["n8n-nodes-whatsapp","n8n-nodes-webhook","n8n-nodes-credentials"]}


node_type: n8n-nodes-sarvam.sarvam
package_name: n8n-nodes-sarvam
display_name: Sarvam AI
description: Indian language AI APIs — transcribe, speak, and chat across 22+ Indian languages
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: vinayak-sarvam
author_github_url: https://github.com/vinayak-sarvam/n8n-sarvam-node.git
npm_package_name: n8n-nodes-sarvam
npm_version: 0.1.3
community_fetched_at: 2026-04-16T09:43:35.962Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "speech",
      "options": [
        {
          "name": "Chat",
          "value": "chat"
        },
        {
          "name": "Speech",
          "value": "speech"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "speechToText",
      "options": [
        {
          "name": "Speech to Text",
          "value": "speechToText",
          "action": "Speech to text",
          "description": "Transcribe audio to text with multiple output modes"
        },
        {
          "name": "Text to Speech",
          "value": "textToSpeech",
          "action": "Text to speech",
          "description": "Convert text to spoken audio"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "speech"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "complete",
      "options": [
        {
          "name": "Complete",
          "value": "complete",
          "action": "Complete chat",
          "description": "Generate a chat completion"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Speech to Text",
      "value": "speechToText",
      "action": "Speech to text",
      "description": "Transcribe audio to text with multiple output modes",
      "resource": "speech"
    },
    {
      "name": "Text to Speech",
      "value": "textToSpeech",
      "action": "Text to speech",
      "description": "Convert text to spoken audio",
      "resource": "speech"
    },
    {
      "name": "Complete",
      "value": "complete",
      "action": "Complete chat",
      "description": "Generate a chat completion",
      "resource": "chat"
    }
  ]

npm_readme:
  # n8n-nodes-sarvam

  [![npm version](https://img.shields.io/npm/v/n8n-nodes-sarvam.svg)](https://www.npmjs.com/package/n8n-nodes-sarvam)
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE.md)
  [![n8n community node](https://img.shields.io/badge/n8n-community%20node-ff6d5a)](https://www.npmjs.com/package/n8n-nodes-sarvam)

  This is an n8n community node for [Sarvam AI](https://sarvam.ai) — Indian language AI APIs for transcription, speech synthesis, and chat across 22+ Indian languages.

  ## Installation

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

  In n8n, go to **Settings > Community Nodes** and install:

  ```
  n8n-nodes-sarvam
  ```

  ## Authentication

  You need a Sarvam AI API key. Get one from the [Sarvam AI Dashboard](https://dashboard.sarvam.ai) after signing up. You receive ₹1000 free credits on signup.

  In n8n, create a new **Sarvam AI API** credential and paste your API key.

  ## Operations

  ### Speech

  | Operation | Description |
  |---|---|
  | **Speech to Text** | Transcribe audio files with multiple modes — transcribe, translate to English, transliterate (roman), code-mixed, and verbatim |
  | **Text to Speech** | Convert text to natural-sounding speech with 39 voice options |

  ### Chat

  | Operation | Description |
  |---|---|
  | **Complete** | Generate chat completions using Sarvam AI language models |

  ## Speech to Text Modes

  | Mode | Description |
  |---|---|
  | **Transcribe** | Standard transcription in the original language |
  | **Translate to English** | Translate speech from any Indic language to English |
  | **Transliterate (Roman)** | Romanize speech to Latin script |
  | **Code Mixed** | English words in English, Indic words in native script |
  | **Verbatim** | Exact word-for-word transcription without normalization |

  ## Supported Languages

  **Speech to Text (23 languages):** Assamese, Bengali, Bodo, Dogri, English, Gujarati, Hindi, Kannada, Kashmiri, Konkani, Maithili, Malayalam, Manipuri, Marathi, Nepali, Odia, Punjabi, Sanskrit, Santali, Sindhi, Tamil, Telugu, Urdu.

  **Text to Speech (11 languages):** Bengali, English, Gujarati, Hindi, Kannada, Malayalam, Marathi, Odia, Punjabi, Tamil, Telugu.

  **Chat:** Supports all languages via sarvam-100b and sarvam-30b models.

  ## Resources

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

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node integrates Sarvam AI APIs to handle speech processing and chat interactions in 22+ Indian languages.","capabilities":["Speech to text transcription with multiple modes (transcribe, translate to English, transliterate, code-mixed, verbatim)","Text to speech synthesis with 39 voice options","Chat completion using sarvam-100b and sarvam-30b language models","Support for 23 languages in speech to text","Support for 11 languages in text to speech"],"authentication":"API key required","commonUseCases":["Transcribing audio files in Indian languages","Converting text to natural-sounding speech","Chatbots and conversational AI in Indian languages","Translation from Indic languages to English"],"limitations":["Text to speech only supports 11 languages compared to 23 for speech to text","Chat functionality requires specific model selection (sarvam-100b or sarvam-30b)"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: n8n-nodes-newscatcher-catchall-pernode.newscatcher
package_name: n8n-nodes-newscatcher-catchall-pernode
display_name: Newscatcher CatchAll
description: Submit and pull CatchAll jobs from Newscatcher
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: chintan.newscatcherapi
author_github_url: https://github.com/Newscatcher/
npm_package_name: n8n-nodes-newscatcher-catchall-pernode
npm_version: 0.1.42
community_fetched_at: 2026-04-16T09:43:35.963Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "job",
      "options": [
        {
          "name": "Job",
          "value": "job"
        },
        {
          "name": "Monitor",
          "value": "monitor"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "submit",
      "options": [
        {
          "name": "Submit",
          "value": "submit",
          "action": "Submit a job",
          "description": "Create a job with query/context/schema"
        },
        {
          "name": "Initialize",
          "value": "initialize",
          "action": "Initialize a job",
          "description": "Initialize a job with query/context/schema"
        },
        {
          "name": "Pull",
          "value": "pull",
          "action": "Pull job results",
          "description": "Fetch results by job_id"
        },
        {
          "name": "Get Status",
          "value": "status",
          "action": "Check job status",
          "description": "Get the status of a job by job_id"
        },
        {
          "name": "List User Jobs",
          "value": "listUserJobs",
          "action": "List user jobs",
          "description": "Returns all jobs created by the authenticated user"
        },
        {
          "name": "Continue",
          "value": "continue",
          "action": "Continue a job",
          "description": "Continue an existing job to process more records beyond the initial limit"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "job"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a monitor",
          "description": "Create a monitor based on an existing reference job"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List monitors",
          "description": "List all monitors for this API key"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get monitor details",
          "description": "Get full details and records for a monitor"
        },
        {
          "name": "List Jobs",
          "value": "listJobs",
          "action": "List jobs for a monitor",
          "description": "List jobs created by a given monitor"
        },
        {
          "name": "Enable",
          "value": "enable",
          "action": "Enable a monitor",
          "description": "Enable a monitor by monitor_id"
        },
        {
          "name": "Disable",
          "value": "disable",
          "action": "Disable a monitor",
          "description": "Disable a monitor by monitor_id"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "monitor"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Submit",
      "value": "submit",
      "action": "Submit a job",
      "description": "Create a job with query/context/schema",
      "resource": "job"
    },
    {
      "name": "Initialize",
      "value": "initialize",
      "action": "Initialize a job",
      "description": "Initialize a job with query/context/schema",
      "resource": "job"
    },
    {
      "name": "Pull",
      "value": "pull",
      "action": "Pull job results",
      "description": "Fetch results by job_id",
      "resource": "job"
    },
    {
      "name": "Get Status",
      "value": "status",
      "action": "Check job status",
      "description": "Get the status of a job by job_id",
      "resource": "job"
    },
    {
      "name": "List User Jobs",
      "value": "listUserJobs",
      "action": "List user jobs",
      "description": "Returns all jobs created by the authenticated user",
      "resource": "job"
    },
    {
      "name": "Continue",
      "value": "continue",
      "action": "Continue a job",
      "description": "Continue an existing job to process more records beyond the initial limit",
      "resource": "job"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a monitor",
      "description": "Create a monitor based on an existing reference job",
      "resource": "monitor"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List monitors",
      "description": "List all monitors for this API key",
      "resource": "monitor"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get monitor details",
      "description": "Get full details and records for a monitor",
      "resource": "monitor"
    },
    {
      "name": "List Jobs",
      "value": "listJobs",
      "action": "List jobs for a monitor",
      "description": "List jobs created by a given monitor",
      "resource": "monitor"
    },
    {
      "name": "Enable",
      "value": "enable",
      "action": "Enable a monitor",
      "description": "Enable a monitor by monitor_id",
      "resource": "monitor"
    },
    {
      "name": "Disable",
      "value": "disable",
      "action": "Disable a monitor",
      "description": "Disable a monitor by monitor_id",
      "resource": "monitor"
    }
  ]

npm_readme:
  # n8n-nodes-newscatcher-catchall-pernode

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

  ## Features

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

  ## Installation

  ### For n8n Cloud

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

  ### For Self-Hosted n8n

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

  ## Authentication

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

  ## Nodes

  ### Newscatcher CatchAll

  Main node for interacting with the Newscatcher CatchAll API.

  #### Resources

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

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

  #### Example: Submit a Job

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

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

  #### Example: Create a Monitor

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

  ### Newscatcher CatchAll Trigger

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

  #### Setup

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

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

  ## Development

  ### Local Development

  ```bash
  # Install dependencies
  npm install

  # Build the project
  npm run build

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

  ### Project Structure

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

  ## API Documentation

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

  ## License

  MIT

  ## Support

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Newscatcher CatchAll API to submit monitoring jobs, retrieve results, manage monitors, and receive real-time webhook triggers.","capabilities":["Submit CatchAll jobs with query, context, and schema","Pull results for completed jobs by job ID","Check job status by job ID","Create monitors based on reference jobs","List, enable, disable, and retrieve details for monitors","List jobs created by specific monitors","Real-time webhook trigger on new monitor results"],"authentication":"API key required (stored as unencrypted node setting)","commonUseCases":["Automated news monitoring and alerting","Real-time data collection from news sources","Scheduled job execution with webhook notifications"],"limitations":["API key is stored as an unencrypted node setting"],"relatedNodes":["Newscatcher CatchAll Trigger"]}


node_type: n8n-nodes-extract-monster.extractMonster
package_name: n8n-nodes-extract-monster
display_name: Extract Monster
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: extractmonster
author_github_url: https://github.com/extract-monster/
npm_package_name: n8n-nodes-extract-monster
npm_version: 1.0.3
community_fetched_at: 2026-04-16T09:43:35.969Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  AI-powered data extraction from documents, images, video, and audio. Extract invoices, receipts, forms, and custom data with flexible JSON schemas.

properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "extractDocument",
      "options": [
        {
          "name": "Extract from Document",
          "value": "extractDocument",
          "action": "Extract data from document",
          "description": "Extract from PDF, CSV, and text files (TXT, MD, HTML, XML, JSON, RTF)"
        },
        {
          "name": "Extract from Image",
          "value": "extractImage",
          "action": "Extract data from image or photo",
          "description": "Extract from images and photos (PNG, JPG, JPEG, WebP, HEIC, HEIF, GIF, BMP)"
        },
        {
          "name": "Extract from Video",
          "value": "extractVideo",
          "action": "Extract data from video",
          "description": "Extract from video files (MP4, MOV, AVI, WebM, MPEG, FLV, MPG, WMV, 3GP)"
        },
        {
          "name": "Extract from Audio",
          "value": "extractAudio",
          "action": "Extract data from audio or voice recording",
          "description": "Extract from audio files (WAV, MP3, AIFF, AAC, OGG, FLAC)"
        },
        {
          "name": "Extract from Text",
          "value": "extractText",
          "action": "Extract data from text",
          "description": "Extract structured data from plain text input"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Extract from Document",
      "value": "extractDocument",
      "action": "Extract data from document",
      "description": "Extract from PDF, CSV, and text files (TXT, MD, HTML, XML, JSON, RTF)"
    },
    {
      "name": "Extract from Image",
      "value": "extractImage",
      "action": "Extract data from image or photo",
      "description": "Extract from images and photos (PNG, JPG, JPEG, WebP, HEIC, HEIF, GIF, BMP)"
    },
    {
      "name": "Extract from Video",
      "value": "extractVideo",
      "action": "Extract data from video",
      "description": "Extract from video files (MP4, MOV, AVI, WebM, MPEG, FLV, MPG, WMV, 3GP)"
    },
    {
      "name": "Extract from Audio",
      "value": "extractAudio",
      "action": "Extract data from audio or voice recording",
      "description": "Extract from audio files (WAV, MP3, AIFF, AAC, OGG, FLAC)"
    },
    {
      "name": "Extract from Text",
      "value": "extractText",
      "action": "Extract data from text",
      "description": "Extract structured data from plain text input"
    }
  ]

npm_readme:
  # n8n-nodes-extract-monster

  This is an n8n community node that lets you use [Extract Monster](https://extract.monster) in your n8n workflows.

  Extract Monster is a powerful API for extracting structured data from documents, images, and text using advanced AI models.

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

  ### Community Nodes (Recommended)

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

  ### Manual Installation

  To install manually, navigate to your n8n installation folder and run:

  ```bash
  npm install n8n-nodes-extract-monster
  ```

  ## Operations

  ### Extract From File
  Extract structured data from files including:
  - PDF documents
  - Images (PNG, JPG, etc.)
  - Word documents
  - Spreadsheets
  - And more

  ### Extract From Text
  Extract structured data from plain text input.

  Both operations support optional JSON schemas to define the exact structure of data you want to extract.

  ## Credentials

  To use this node, you need an Extract Monster API key:

  1. Sign up at [extract.monster](https://extract.monster)
  2. Go to your dashboard
  3. Generate a new API key
  4. Copy the key (it starts with `em_`)

  Then in n8n:
  1. Go to **Credentials**
  2. Create new **Extract Monster API** credentials
  3. Paste your API key

  ## Compatibility

  - Minimum n8n version: 0.196.0
  - Tested against n8n version: 1.0.0+

  ## Usage

  ### Basic File Extraction

  1. Add a file input node (e.g., HTTP Request, Google Drive, etc.)
  2. Connect it to the Extract Monster node
  3. Select **Extract From File** operation
  4. Configure credentials
  5. Execute the workflow

  ### With JSON Schema

  Define exactly what data you want to extract:

  ```json
  {
    "invoice_number": {"type": "string"},
    "date": {"type": "string"},
    "total": {"type": "number"},
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "description": {"type": "string"},
          "quantity": {"type": "number"},
          "price": {"type": "number"}
        }
      }
    }
  }
  ```

  ### Text Extraction Example

  1. Add an input node with text data
  2. Connect to Extract Monster node
  3. Select **Extract From Text** operation
  4. Enter or map the text field
  5. Optionally add a schema to define structure
  6. Execute

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Extract Monster Documentation](https://extract.monster/docs)
  * [Extract Monster API Reference](https://extract.monster/docs/developers/api-reference)

  ## Support

  For issues with the n8n node:
  - Create an issue on [GitHub](https://github.com/extract-monster/n8n-nodes-extract-monster/issues)

  For Extract Monster API support:
  - Email: support@extract.monster
  - Documentation: https://extract.monster/docs

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"Extracts structured data from documents, images, video, audio, and text using AI models with optional JSON schema definitions.","capabilities":["Extract data from PDF documents","Extract data from images (PNG, JPG)","Extract data from Word documents","Extract data from spreadsheets","Extract data from plain text","Extract data from video and audio","Define custom extraction structure using JSON schemas","Extract invoice data","Extract receipt data","Extract form data"],"authentication":"API key required (Extract Monster API key starting with 'em_')","commonUseCases":["Automated invoice processing","Receipt data extraction","Form data capture from uploaded documents","Document digitization and structuring","Text data parsing and organization"],"limitations":["Requires external API key from Extract Monster service","Minimum n8n version 0.196.0 required","Community node (may have stability risks compared to official nodes)"],"relatedNodes":["HTTP Request","Google Drive","File Input","Text Input"]}


node_type: n8n-nodes-scrapesense.scrapeSense
package_name: n8n-nodes-scrapesense
display_name: ScrapeSense
description: Use the ScrapeSense API without manual HTTP Request nodes
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: axelschmitz74
author_github_url: https://github.com/axelschmitz74/
npm_package_name: n8n-nodes-scrapesense
npm_version: 1.0.2
community_fetched_at: 2026-04-16T09:43:35.969Z
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "scan",
      "options": [
        {
          "name": "Billing",
          "value": "billing"
        },
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Email Cleaning",
          "value": "emailCleaning"
        },
        {
          "name": "Place",
          "value": "place"
        },
        {
          "name": "Scan",
          "value": "scan"
        },
        {
          "name": "Utility",
          "value": "utility"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "status",
      "options": [
        {
          "name": "Get Status",
          "value": "status",
          "action": "Get API status",
          "description": "Check API status and credential access"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "utility"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "campaignCreate",
      "options": [
        {
          "name": "Approve All",
          "value": "campaignApproveAll",
          "action": "Approve all campaign emails",
          "description": "Approve all emails pending review"
        },
        {
          "name": "Approve and Send All",
          "value": "campaignApproveAndSendAll",
          "action": "Approve and send all campaign emails",
          "description": "Approve all pending review emails and send approved emails"
        },
        {
          "name": "Approve Email",
          "value": "campaignApproveEmail",
          "action": "Approve a campaign email",
          "description": "Approve a single email"
        },
        {
          "name": "Cancel",
          "value": "campaignCancel",
          "action": "Cancel a campaign",
          "description": "Cancel an active campaign"
        },
        {
          "name": "Create",
          "value": "campaignCreate",
          "action": "Create a campaign",
          "description": "Create a campaign from a scan or place IDs"
        },
        {
          "name": "Delete",
          "value": "campaignDelete",
          "action": "Delete a campaign",
          "description": "Delete a campaign"
        },
        {
          "name": "Get",
          "value": "campaignGet",
          "action": "Get a campaign",
          "description": "Get campaign details"
        },
        {
          "name": "List",
          "value": "campaignList",
          "action": "List campaigns",
          "description": "List campaigns"
        },
        {
          "name": "List Emails",
          "value": "campaignListEmails",
          "action": "List campaign emails",
          "description": "List emails in a campaign"
        },
        {
          "name": "Pause",
          "value": "campaignPause",
          "action": "Pause a campaign",
          "description": "Pause a campaign"
        },
        {
          "name": "Resume",
          "value": "campaignResume",
          "action": "Resume a campaign",
          "description": "Resume a campaign"
        },
        {
          "name": "Retry Failed",
          "value": "campaignRetryFailed",
          "action": "Retry failed campaign emails",
          "description": "Retry failed campaign emails"
        },
        {
          "name": "Send All Approved",
          "value": "campaignSendAllApproved",
          "action": "Send all approved campaign emails",
          "description": "Send all approved emails"
        },
        {
          "name": "Send Email",
          "value": "campaignSendEmail",
          "action": "Send a campaign email",
          "description": "Send a single approved email"
        },
        {
          "name": "Start",
          "value": "campaignStart",
          "action": "Start a campaign",
          "description": "Start generation or sending flow"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scanCreate",
      "options": [
        {
          "name": "Cancel",
          "value": "scanCancel",
          "action": "Cancel a scan",
          "description": "Cancel an active scan"
        },
        {
          "name": "Create",
          "value": "scanCreate",
          "action": "Create a scan",
          "description": "Create a scan job"
        },
        {
          "name": "Delete",
          "value": "scanDelete",
          "action": "Delete a scan",
          "description": "Delete a scan"
        },
        {
          "name": "Get",
          "value": "scanGet",
          "action": "Get a scan",
          "description": "Get scan details"
        },
        {
          "name": "List",
          "value": "scanList",
          "action": "List scans",
          "description": "List scans"
        },
        {
          "name": "Pause",
          "value": "scanPause",
          "action": "Pause a scan",
          "description": "Pause a running scan"
        },
        {
          "name": "Resume",
          "value": "scanResume",
          "action": "Resume a scan",
          "description": "Resume a paused scan"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scan"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "placeList",
      "options": [
        {
          "name": "Get",
          "value": "placeGet",
          "action": "Get a place",
          "description": "Get one place by ID"
        },
        {
          "name": "List From Scan",
          "value": "placeList",
          "action": "List places from a scan",
          "description": "List places from a scan"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "place"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "emailPreview",
      "options": [
        {
          "name": "Apply",
          "value": "emailApply",
          "action": "Apply email cleaning changes",
          "description": "Apply email cleaning changes"
        },
        {
          "name": "Preview",
          "value": "emailPreview",
          "action": "Preview email cleaning changes",
          "description": "Preview email cleaning changes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "emailCleaning"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "billingCredits",
      "options": [
        {
          "name": "Get Credits",
          "value": "billingCredits",
          "action": "Get billing credits",
          "description": "Get credit balance and pricing"
        },
        {
          "name": "Get Settings",
          "value": "billingSettingsGet",
          "action": "Get billing settings",
          "description": "Get billing guardrail settings"
        },
        {
          "name": "Get Spend",
          "value": "billingSpend",
          "action": "Get billing spend",
          "description": "Get monthly spend snapshot"
        },
        {
          "name": "List Transactions",
          "value": "billingTransactions",
          "action": "List billing transactions",
          "description": "List billing transactions"
        },
        {
          "name": "Update Settings",
          "value": "billingSettingsUpdate",
          "action": "Update billing settings",
          "description": "Update billing guardrail settings"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "billing"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Status",
      "value": "status",
      "action": "Get API status",
      "description": "Check API status and credential access",
      "resource": "utility"
    },
    {
      "name": "Approve All",
      "value": "campaignApproveAll",
      "action": "Approve all campaign emails",
      "description": "Approve all emails pending review",
      "resource": "campaign"
    },
    {
      "name": "Approve and Send All",
      "value": "campaignApproveAndSendAll",
      "action": "Approve and send all campaign emails",
      "description": "Approve all pending review emails and send approved emails",
      "resource": "campaign"
    },
    {
      "name": "Approve Email",
      "value": "campaignApproveEmail",
      "action": "Approve a campaign email",
      "description": "Approve a single email",
      "resource": "campaign"
    },
    {
      "name": "Cancel",
      "value": "campaignCancel",
      "action": "Cancel a campaign",
      "description": "Cancel an active campaign",
      "resource": "campaign"
    },
    {
      "name": "Create",
      "value": "campaignCreate",
      "action": "Create a campaign",
      "description": "Create a campaign from a scan or place IDs",
      "resource": "campaign"
    },
    {
      "name": "Delete",
      "value": "campaignDelete",
      "action": "Delete a campaign",
      "description": "Delete a campaign",
      "resource": "campaign"
    },
    {
      "name": "Get",
      "value": "campaignGet",
      "action": "Get a campaign",
      "description": "Get campaign details",
      "resource": "campaign"
    },
    {
      "name": "List",
      "value": "campaignList",
      "action": "List campaigns",
      "description": "List campaigns",
      "resource": "campaign"
    },
    {
      "name": "List Emails",
      "value": "campaignListEmails",
      "action": "List campaign emails",
      "description": "List emails in a campaign",
      "resource": "campaign"
    },
    {
      "name": "Pause",
      "value": "campaignPause",
      "action": "Pause a campaign",
      "description": "Pause a campaign",
      "resource": "campaign"
    },
    {
      "name": "Resume",
      "value": "campaignResume",
      "action": "Resume a campaign",
      "description": "Resume a campaign",
      "resource": "campaign"
    },
    {
      "name": "Retry Failed",
      "value": "campaignRetryFailed",
      "action": "Retry failed campaign emails",
      "description": "Retry failed campaign emails",
      "resource": "campaign"
    },
    {
      "name": "Send All Approved",
      "value": "campaignSendAllApproved",
      "action": "Send all approved campaign emails",
      "description": "Send all approved emails",
      "resource": "campaign"
    },
    {
      "name": "Send Email",
      "value": "campaignSendEmail",
      "action": "Send a campaign email",
      "description": "Send a single approved email",
      "resource": "campaign"
    },
    {
      "name": "Start",
      "value": "campaignStart",
      "action": "Start a campaign",
      "description": "Start generation or sending flow",
      "resource": "campaign"
    },
    {
      "name": "Cancel",
      "value": "scanCancel",
      "action": "Cancel a scan",
      "description": "Cancel an active scan",
      "resource": "scan"
    },
    {
      "name": "Create",
      "value": "scanCreate",
      "action": "Create a scan",
      "description": "Create a scan job",
      "resource": "scan"
    },
    {
      "name": "Delete",
      "value": "scanDelete",
      "action": "Delete a scan",
      "description": "Delete a scan",
      "resource": "scan"
    },
    {
      "name": "Get",
      "value": "scanGet",
      "action": "Get a scan",
      "description": "Get scan details",
      "resource": "scan"
    },
    {
      "name": "List",
      "value": "scanList",
      "action": "List scans",
      "description": "List scans",
      "resource": "scan"
    },
    {
      "name": "Pause",
      "value": "scanPause",
      "action": "Pause a scan",
      "description": "Pause a running scan",
      "resource": "scan"
    },
    {
      "name": "Resume",
      "value": "scanResume",
      "action": "Resume a scan",
      "description": "Resume a paused scan",
      "resource": "scan"
    },
    {
      "name": "Get",
      "value": "placeGet",
      "action": "Get a place",
      "description": "Get one place by ID",
      "resource": "place"
    },
    {
      "name": "List From Scan",
      "value": "placeList",
      "action": "List places from a scan",
      "description": "List places from a scan",
      "resource": "place"
    },
    {
      "name": "Apply",
      "value": "emailApply",
      "action": "Apply email cleaning changes",
      "description": "Apply email cleaning changes",
      "resource": "emailCleaning"
    },
    {
      "name": "Preview",
      "value": "emailPreview",
      "action": "Preview email cleaning changes",
      "description": "Preview email cleaning changes",
      "resource": "emailCleaning"
    },
    {
      "name": "Get Credits",
      "value": "billingCredits",
      "action": "Get billing credits",
      "description": "Get credit balance and pricing",
      "resource": "billing"
    },
    {
      "name": "Get Settings",
      "value": "billingSettingsGet",
      "action": "Get billing settings",
      "description": "Get billing guardrail settings",
      "resource": "billing"
    },
    {
      "name": "Get Spend",
      "value": "billingSpend",
      "action": "Get billing spend",
      "description": "Get monthly spend snapshot",
      "resource": "billing"
    },
    {
      "name": "List Transactions",
      "value": "billingTransactions",
      "action": "List billing transactions",
      "description": "List billing transactions",
      "resource": "billing"
    },
    {
      "name": "Update Settings",
      "value": "billingSettingsUpdate",
      "action": "Update billing settings",
      "description": "Update billing guardrail settings",
      "resource": "billing"
    }
  ]

npm_readme:
  # n8n-nodes-scrapesense

  n8n community node for the ScrapeSense public API.

  This package lets you run ScrapeSense scans, read places, clean emails, and work with campaign and billing data without custom HTTP nodes.

  ## Installation

  ### In n8n UI (self-hosted)

  1. Open **Settings** > **Community Nodes**.
  2. Click **Install**.
  3. Enter package name: `n8n-nodes-scrapesense`.
  4. Install and restart n8n.

  ### Manual install (self-hosted)

  ```bash
  cd ~/.n8n/nodes
  npm install n8n-nodes-scrapesense
  ```

  ## Operations

  The `ScrapeSense` node supports:

  - Utility: `Get Status`
  - Campaigns: `Create`, `List`, `Get`, `List Emails`, `Start`, `Pause`, `Resume`, `Cancel`, `Approve Email`, `Approve All`, `Send Email`, `Send All Approved`, `Approve and Send All`, `Retry Failed`, `Delete`
  - Scan: `Create`, `Get`, `List`, `Pause`, `Resume`, `Cancel`, `Delete`
  - Place: `List from Scan`, `Get`
  - Email Cleaning: `Preview`, `Apply`
  - Billing: `Get Credits`, `List Transactions`, `Get Spend`, `Get Settings`, `Update Settings`

  ## Credentials

  Use the `ScrapeSense API` credential:

  - `Base URL`
    - Cloud: `https://api.scrapesense.com/v1`
    - Local/self-hosted backend: `http://localhost:3005/api/v1`
  - `API Key` (Bearer token from ScrapeSense developer settings)

  Credential test calls `GET /status`.

  ## Example workflow

  1. Add `ScrapeSense` node with resource `Scan` and operation `Create`.
  2. Store returned `scanId`.
  3. Add a loop with `Wait` + `ScrapeSense` (`Scan` -> `Get`) until status is `completed`.
  4. Add `ScrapeSense` (`Campaign` -> `Create`) after scan completion.

  ## Local development

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

  ## Publishing

  This repo includes `.github/workflows/publish-n8n-node.yml` for npm publish with provenance.

  1. Add repository secret `NPM_TOKEN`.
  2. Bump `version` in `package.json`.
  3. Run the GitHub Action manually, or publish a release tag matching `n8n-node-v*`.

  ## Community submission

  After publishing to npm, submit in the n8n Creator Portal:

  - <https://creators.n8n.io/nodes>

  ## References

  - <https://docs.n8n.io/integrations/community-nodes/installation/>
  - <https://docs.n8n.io/integrations/creating-nodes/deploy/submit-community-nodes/>


node_type: n8n-nodes-carbone.carbone
package_name: n8n-nodes-carbone
display_name: Carbone
description: Interact with Carbone.io API to manage templates and generate documents
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-04-16 09:43:35
author_name: steevepay
author_github_url: https://github.com/carboneio/
npm_package_name: n8n-nodes-carbone
npm_version: 2.0.0
community_fetched_at: 2026-04-16T09:43:35.970Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "template",
      "options": [
        {
          "name": "Convert Document",
          "value": "convertDocument"
        },
        {
          "name": "Render Document",
          "value": "renderDocument"
        },
        {
          "name": "Template",
          "value": "template"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "convertHtmlToPdf",
      "options": [
        {
          "name": "Convert HTML to PDF",
          "value": "convertHtmlToPdf",
          "action": "Convert HTML to PDF",
          "description": "Convert an HTML document to PDF using the Chromium rendering engine for high-fidelity output"
        },
        {
          "name": "Convert Office to PDF",
          "value": "convertOfficeToPdf",
          "action": "Convert office to pdf",
          "description": "Convert an Office document (DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG) to PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "convertDocument"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete template",
          "description": "Delete a template from Carbone.io"
        },
        {
          "name": "Download",
          "value": "download",
          "action": "Download template",
          "description": "Download a template or a specific version from Carbone.io"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List templates",
          "description": "List templates from Carbone.io"
        },
        {
          "name": "List Categories",
          "value": "listCategories",
          "action": "List template categories",
          "description": "List all template categories from Carbone.io"
        },
        {
          "name": "List Tags",
          "value": "listTags",
          "action": "List template tags",
          "description": "List all template tags from Carbone.io"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update template",
          "description": "Update the metadata of an existing template"
        },
        {
          "name": "Upload",
          "value": "upload",
          "action": "Upload template",
          "description": "Upload a template to Carbone.io"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "template"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate document",
          "description": "Generate a document by merging data into a template"
        },
        {
          "name": "Download Document",
          "value": "get",
          "action": "Download generated document",
          "description": "Download a document previously generated using its Render ID. Use this after a \"Generate\" with \"Return Render ID\" enabled or an asynchronous webhook generation."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "renderDocument"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Convert HTML to PDF",
      "value": "convertHtmlToPdf",
      "action": "Convert HTML to PDF",
      "description": "Convert an HTML document to PDF using the Chromium rendering engine for high-fidelity output",
      "resource": "convertDocument"
    },
    {
      "name": "Convert Office to PDF",
      "value": "convertOfficeToPdf",
      "action": "Convert office to pdf",
      "description": "Convert an Office document (DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG) to PDF",
      "resource": "convertDocument"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete template",
      "description": "Delete a template from Carbone.io",
      "resource": "template"
    },
    {
      "name": "Download",
      "value": "download",
      "action": "Download template",
      "description": "Download a template or a specific version from Carbone.io",
      "resource": "template"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List templates",
      "description": "List templates from Carbone.io",
      "resource": "template"
    },
    {
      "name": "List Categories",
      "value": "listCategories",
      "action": "List template categories",
      "description": "List all template categories from Carbone.io",
      "resource": "template"
    },
    {
      "name": "List Tags",
      "value": "listTags",
      "action": "List template tags",
      "description": "List all template tags from Carbone.io",
      "resource": "template"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update template",
      "description": "Update the metadata of an existing template",
      "resource": "template"
    },
    {
      "name": "Upload",
      "value": "upload",
      "action": "Upload template",
      "description": "Upload a template to Carbone.io",
      "resource": "template"
    },
    {
      "name": "Generate",
      "value": "generate",
      "action": "Generate document",
      "description": "Generate a document by merging data into a template",
      "resource": "renderDocument"
    },
    {
      "name": "Download Document",
      "value": "get",
      "action": "Download generated document",
      "description": "Download a document previously generated using its Render ID. Use this after a \"Generate\" with \"Return Render ID\" enabled or an asynchronous webhook generation.",
      "resource": "renderDocument"
    }
  ]

npm_readme:
  # n8n-nodes-carbone

  An n8n community node to automate document generation and conversion using [Carbone.io](https://carbone.io/) — directly from your n8n workflows.

  **What is Carbone.io?**
  Carbone.io is a document generation API that merges JSON data into templates (DOCX, XLSX, PPTX, ODT, HTML, and more) to produce professional documents in any format — PDF, DOCX, XLSX, CSV, PNG, and beyond. It uses a simple `{d.variableName}` tag syntax inside your existing Office or LibreOffice templates, with no design constraints and no proprietary editor.

  **What this node does**
  - **Generate documents** — merge JSON data into a template and output a file in any supported format (PDF, DOCX, XLSX, ODT, PPTX, HTML, CSV, PNG, and more)
  - **Convert documents to PDF** — convert HTML pages or Office files (DOCX, XLSX, PPTX, ODT…) to PDF using Chromium, LibreOffice, or OnlyOffice
  - **Manage templates** — upload, update, delete, list, search, and download templates stored on Carbone.io; organize them with categories and tags
  - **Asynchronous generation** — trigger document generation via webhook for large or complex documents (up to 5 minutes)
  - **Batch generation** — generate one document per item in a JSON array, returned as a ZIP or merged PDF

  **Common use cases**
  - Invoices, quotes, and receipts from billing data
  - Contracts and agreements populated with customer details
  - Financial, sales, and operational reports with tables and charts
  - Certificates of completion for training or events
  - Shipping labels and packing slips
  - Personalized letters and mass mail campaigns
  - Any document that combines a fixed layout with dynamic data

  **Supports Carbone API v4 and v5.**

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

  ## Installation

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

  ## Operations

  ### Convert Document

  #### Convert HTML to PDF
  Convert an HTML document to PDF using the Chromium rendering engine for high-fidelity output.

  **HTML Source** (choose one):
  - **URL**: The URL of the webpage to convert to PDF.
  - **File**: Upload an HTML or XHTML file to convert to PDF. To inject dynamic data, use the action "Generate a Document" instead.
  - **Template ID**: Pick a static HTML template stored on Carbone from the autocomplete list. To inject dynamic data using Carbone tags such as `{d.value}`, use the action "Generate a Document" instead.
  - **Raw HTML**: Paste or map your raw HTML code directly. To inject dynamic data, use the action "Generate a Document" instead.

  #### Convert Office to PDF
  Convert an Office document (DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG) to PDF.

  **Office Source** (choose one):
  - **File**: Upload an Office document to convert to PDF. Supported formats: DOCX, XLSX, PPTX, ODT, ODS, ODP, ODG. To inject dynamic data, use the action "Generate a Document" instead.
  - **Template ID**: Pick a static Office template stored on Carbone from the autocomplete list. To inject dynamic data using Carbone tags such as `{d.value}`, use the action "Generate a Document" instead.

  **Parameters:**
  - **Converter**: PDF rendering engine — `LibreOffice` (default, best for ODT/ODS/ODP) or `OnlyOffice` (best for DOCX/XLSX/PPTX)

  ### Render Document

  #### Generate Document
  Generate a document by merging data into a template.

  **Parameters:**
  - **Template Source**: Where the template comes from — three options:
    - **Template ID** *(default)*: Use a template stored on Carbone. Select from the autocomplete list or enter an ID manually.
    - **File**: Use a template file from a previous node (DOCX, XLSX, PPTX, ODT, HTML…). Provide the binary property name. The node encodes it to base64 automatically.
    - **Base64 String**: Provide the template as a base64-encoded string directly.
  - **Template ID**: The template ID to use (when Template Source is "Template ID")
  - **Binary Property Name**: The binary field from the previous node that contains the template file (when Template Source is "File")
  - **Template (Base64)**: The template file encoded as a base64 string (when Template Source is "Base64 String")
  - **Data**: Data merged into the template. Accessible via `{d.}` tags (e.g. `{d.firstName}`)
  - **Convert To**: Convert the document into another format. Defaults to the template's native format. Supported: PDF, DOCX, XLSX, ODT, ODS, ODP, PPTX, PPT, DOC, CSV, HTML, XML, RTF, TXT, SVG, PNG, JPG, GIF, TIFF, WEBP, EPUB, IDML, Markdown, and more
  - **Converter**: PDF rendering engine — shown only when "Convert To" is set to PDF. `LibreOffice` (default, best for ODT/ODS/ODP), `OnlyOffice` (best for DOCX/XLSX/PPTX), `Chromium` (best for HTML)
  - **Return Render ID**: When enabled, returns a Render ID instead of the file. Use the Render ID with "Download Document" to retrieve the file. The document is available for one hour and can be downloaded once.

  **Document Generation Additional Options:**
  - **Batch Output**: Output format for batch processing — `zip` (individual files) or `pdf` (merged into one PDF)
  - **Batch Split By**: JSON path to an array in your data for batch document generation (e.g. `d.items` generates one document per item)
  - **Complement**: Extra data merged into the template, accessible via `{c.}` tags (e.g. `{c.companyName}`)
  - **Currency Rates**: Exchange rate mappings for the `formatC` formatter
  - **Currency Source**: Source currency code (e.g. `EUR`)
  - **Currency Target**: Target currency code (e.g. `USD`)
  - **Document Name**: Name of the generated document file. Supports Carbone template syntax (e.g. `invoice-{d.name}.pdf`)
  - **Enum**: Enumeration lists for the `convEnum` formatter
  - **Hard Refresh**: Refresh report content after rendering. Use only for Table of Contents numbering in DOCX/ODT documents
  - **Language**: Locale of the generated document (e.g. `fr-FR`, `en-US`). Affects `formatN`, `formatD`, `formatI` formatters and `{t()}` translations
  - **Timezone**: Convert document dates to a timezone (e.g. `Europe/Paris`). Affects `formatD` and `formatI` formatters
  - **Translations**: Localization dictionary keyed by locale codes. All text in `{t()}` tags is replaced with the corresponding translation. Requires "Language" to be set
  - **Variable String**: Predefined aliases using Carbone template syntax (e.g. `{#def = d.ID}`)
  - **Webhook URL**: Enable asynchronous generation (up to 5 min). Carbone POSTs a Render ID to this URL when the document is ready. Use "Download Document" to retrieve it

  #### Download Document
  Download a document previously generated using its Render ID. Use this after a "Generate" with "Return Render ID" enabled or an asynchronous webhook generation.

  **Parameters:**
  - **Render ID**: The render ID of the generated document to retrieve

  ### Templates

  #### List Templates
  Retrieve a list of all templates from your Carbone.io account with optional filtering capabilities.

  **Parameters:**
  - **Template ID**: Filter by specific template ID
  - **Version ID**: Filter by specific version ID
  - **Category**: Filter by template category
  - **Include Versions**: Include all versions for a specific template ID
  - **Origin**: Filter by template origin — All, API (created via API), or Studio (created via Carbone Studio)
  - **Search**: Search in template name (fuzzy search), version ID (exact) or template ID (exact)
  - **Limit**: Maximum number of results to return (default: 50)
  - **Cursor**: Cursor for pagination

  #### List Categories
  Retrieve all template categories available in your Carbone.io account.

  #### List Tags
  Retrieve all template tags available in your Carbone.io account.

  #### Upload Template
  Upload a new template file to Carbone.io or add a new version to an existing template.

  **Parameters:**
  - **Binary Property Name**: The name of the binary property that contains the template file
  - **Add Version To**: Select an existing template to add a new version to (supports "From List" picker or manual ID input). Leave empty to create a new template.
  - **Template Additional Options**:
    - **Category**: Dynamic dropdown populated from your Carbone.io categories (`GET /templates/categories`)
    - **Deployed At**: When a report is generated using the new template ID, Carbone selects the template version with the highest deployedAt timestamp that is not in the future
    - **Enable Versioning**: Whether to enable template versioning (default: true)
    - **Expire At**: Expiration date after which the template is no longer accessible
    - **Tags**: Dynamic multi-select dropdown populated from your Carbone.io tags (`GET /templates/tags`)
    - **Template Comment**: Comment for the template
    - **Template Name**: Name for the template

  #### Update Template
  Update the metadata of an existing template (name, comment, category, tags, deployedAt, expireAt) without re-uploading the file.

  **Parameters:**
  - **Template ID**: The unique identifier of the template to update (supports "From List" picker or manual ID input)
  - **Update Fields**:
    - **Category**: Dynamic dropdown populated from your Carbone.io categories
    - **Comment**: New comment for the template
    - **Deployed At**: New deployment date
    - **Expire At**: New expiration date
    - **Name**: New name for the template
    - **Tags**: Dynamic multi-select dropdown populated from your Carbone.io tags

  #### Delete Template
  Delete a template from your Carbone.io account.

  **Parameters:**
  - **Template ID**: The unique identifier of the template to delete


  ## Credentials

  To use the Carbone.io node, you need to authenticate with your Carbone.io account.

  ### Prerequisites
  1. Sign up for a Carbone.io account at [carbone.io](https://carbone.io/)
  2. Obtain your API key from your Carbone.io dashboard

  ### Authentication Setup
  1. **API Key**: Your Carbone.io API key for authentication
  2. **API URL**: The base URL for Carbone.io API (default: https://api.carbone.io)
     - Change this if you're using a self-hosted instance
  3. **Carbone API Version**: The version of the Carbone API to use (4 or 5, default: 5)

  The node uses Bearer token authentication with the Authorization header and includes the carbone-version header for API versioning.

  ## Development

  ### Import Test Workflows

  Test workflows are stored in the `test/` folder. You can import them manually once your local n8n instance is running (`npm run dev`):

  1. Open your n8n instance at `http://localhost:5678`
  2. Go to **Workflows** → **Import from file**
  3. Select the workflow JSON files from the `test/` folder

  > Import each workflow once after cloning or when workflows are updated. n8n has no deduplication, so repeated imports will create duplicates.

  ## Compatibility

  Tested with:
  - n8n: `1.111.1`, `1.112.5`
  - Carbone API: `v4`, `v5`
  - NodeJS: `22.10.0`

  ## Usage

  ### Basic Template Upload
  1. Add a Carbone node to your workflow
  2. Select "Template" as resource and "Upload" as operation
  3. Connect a node that provides the template file as binary data (e.g., Read Binary File node)
  4. Configure the binary property name to match the output of the previous node
  5. Optionally set template name and other metadata

  ### Basic Document Generation
  1. Add a Carbone node to your workflow
  2. Select "Render Document" as resource and "Generate" as operation
  3. Choose between using a template ID or base64 template
  4. Provide the JSON data to merge into the template
  5. Select the desired output format
  6. Choose whether to download the document directly or get a render ID

  ### Advanced Usage
  - **Template Versioning**: Enable versioning to keep track of template changes
  - **Localization**: Set language, timezone, and translations for multilingual documents
  - **Currency Conversion**: Use currency rates and source/target currency for financial documents
  - **Batch Generation**: Set `Batch Split By` to a JSON path (e.g. `d.orders`) to generate one document per item in the array, then collect results as a ZIP or merged PDF via `Batch Output`
  - **PDF Engine Selection**: Use `Converter` to pick the rendering engine best suited for your template format (LibreOffice for ODT/ODS, OnlyOffice for DOCX/XLSX/PPTX, Chromium for HTML)


  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Carbone.io API Reference](https://carbone.io/api-reference.html)
  * [Carbone.io Documentation](https://carbone.io/documentation.html)
  * [Carbone.io Template Guide](https://carbone.io/documentation/design/overview/getting-started.html)

  ## Version history

  ### 2.0.0

  **⚠️ Breaking change — Generate Document: Template Source**

  The `Use Inline Template File (Base64)` boolean toggle has been replaced by a `Template Source` selector with three options:
  - **Template ID** *(default)*: Use a stored Carbone template — same as before
  - **File** *(new)*: Connect any node that outputs a binary file directly — no manual base64 encoding needed
  - **Base64 String**: Provide an inline base64 string — same as the old `true` toggle

  **Migration:** select "Base64 String" to restore the previous behavior. Select "File" to remove the manual encoding step from your workflows.

  ### 1.3.0

  **New: Convert Document resource**
  - **Convert HTML to PDF**: convert from URL, file, Carbone template, or raw HTML using Chromium
  - **Convert Office to PDF**: convert DOCX/XLSX/PPTX/ODT/ODS/ODP/ODG from file or Carbone template, with LibreOffice or OnlyOffice engine choice

  **New: Template operations**
  - **Update Template** (`PATCH /template/{id}`): update metadata without re-uploading the file
  - **List Categories** (`GET /templates/categories`) and **List Tags** (`GET /templates/tags`)
  - **Category** and **Tags** fields (Upload and Update) are now dynamic dropdowns populated live from the API
  - **Add Version To** (Upload) is now a standalone resource picker supporting "From List" and manual ID input
  - Added `category`, `tags`, and `expireAt` options to Upload Template
  - Added `origin` filter to List Templates (API vs Studio)
  - **Delete Template**: now accepts both template IDs and version IDs
  - **List Templates**: added dynamic Category dropdown
  - List response: `expireAt` returned as ISO string; `origin` returned as `"API"` or `"Studio"`

  **New: Render Document options**
  - **Webhook URL**: enable asynchronous generation (up to 5 min) — Carbone POSTs a Render ID to your URL when ready
  - **Return Render ID**: replaces the previous "Download" toggle with clearer semantics — file downloaded by default, enable to get a Render ID instead
  - **Converter** is now a standalone field shown only when "Convert To" is set to PDF
  - Added RTF, XLS, GIF, TIFF to the "Convert To" dropdown
  - Added "Same as Template" as the default option in "Convert To" — no conversion unless explicitly selected
  - Added `converter`, `batchSplitBy`, and `batchOutput` options

  **UX improvements**
  - Renamed "Use Base64 Template On The Fly" → "Use Inline Template File (Base64)"
  - Renamed "Report Name" → "Document Name"
  - Renamed "Get Document" → "Download Document"
  - Improved descriptions for all Render Document fields
  - All binary outputs now use the standard `data` key (`$binary.data`)

  **Other**
  - Template picker search now queries the API server-side instead of filtering locally
  - Template picker resolves to the constant template ID instead of the version ID
  - Fixed `POST /template` FormData order: `template` file field sent last per API spec
  - Updated `@n8n/node-cli` to `0.22.0`, enabled cloud support (`strict` mode)

  ### 1.2.1
  - Removed the empty "Additional Options" collection from all action.

  ### 1.2.0
  - Removed all `requestWithAuthentication` calls with `httpRequestWithAuthentication`.
  - Using now n8n-node-cli to lint/build/release

  ### 1.1.0
  - Removed redundant routing configurations from operation descriptions.
  - Replaced all `helpers.request()` calls with `this.helpers.httpRequestWithAuthentication()`.
  - Translate French error messages to English.


  ### 1.0.0
  - Initial release.
  - Template management operations: List, Upload, Delete.
  - Document rendering operations: Generate, Get.
  - Advanced options for document generation (localization, currency, etc.).
  - Support for both template ID and base64 template approaches.

ai_documentation_summary:
  {"purpose":"The Carbone node automates document generation and conversion by merging JSON data into templates using Carbone.io's API, supporting multiple file formats including PDF, DOCX, XLSX, and more.","capabilities":["Generate documents by merging JSON data into templates","Convert HTML to PDF using Chromium","Convert Office files (DOCX, XLSX, PPTX, ODT) to PDF using LibreOffice or OnlyOffice","Upload, update, delete, list, search, and download templates","Organize templates with categories and tags","Trigger asynchronous document generation via webhooks","Batch generate documents from JSON arrays as ZIP or merged PDF","Support both Carbone API v4 and v5","Return Render IDs for large documents instead of immediate files"],"authentication":"API key required (implied by 'Interact with Carbone.io API' and standard n8n community node patterns; specific field not explicitly named in provided text but standard for this type of node)","commonUseCases":["Generate invoices, quotes, and receipts from billing data","Create contracts and agreements with customer details","Produce financial, sales, and operational reports","Issue certificates of completion","Generate shipping labels and packing slips"],"limitations":["Asynchronous generation has a maximum duration of 5 minutes","Render IDs expire after one hour and can only be downloaded once","Large or complex documents require asynchronous processing via webhook","Binary files must be base64-encoded or uploaded as files"],"relatedNodes":["n8n HTTP Request","n8n Binary File","n8n Webhook","n8n File"]}


