# nodes

node_type: n8n-nodes-apex.apex
package_name: n8n-nodes-apex
display_name: Apex
description: Manage your social media via Apex.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: xonack
author_github_url: https://github.com/xonack/
npm_package_name: n8n-nodes-apex
npm_version: 0.1.6
community_fetched_at: 2026-07-14T14:40:33.218Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "getTweet",
      "options": [
        {
          "name": "Generate Reply",
          "value": "generateReply"
        },
        {
          "name": "Get Tweet",
          "value": "getTweet"
        },
        {
          "name": "Post Reply",
          "value": "postReply"
        },
        {
          "name": "Post Tweet",
          "value": "postTweet"
        },
        {
          "name": "Search Tweet",
          "value": "searchTweets"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTweetById",
      "options": [
        {
          "name": "Get Tweet by ID",
          "value": "getTweetById",
          "action": "Get tweet by id",
          "routing": {
            "request": {
              "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/details",
              "method": "GET"
            }
          },
          "description": "Get tweet by ID (found in the URL)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "getTweet"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "postTweet",
      "options": [
        {
          "name": "Tweet",
          "value": "postTweet",
          "action": "Post tweet",
          "routing": {
            "request": {
              "url": "=/apex/tweet",
              "method": "POST"
            }
          },
          "description": "Post tweet to your profile"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "postTweet"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "postReply",
      "options": [
        {
          "name": "Post Reply",
          "value": "postReply",
          "action": "Post reply to tweet",
          "routing": {
            "request": {
              "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/reply",
              "method": "POST"
            }
          },
          "description": "Post reply to tweet (by ID)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "postReply"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generateReplyToTweetId",
      "options": [
        {
          "name": "Generate Reply to Tweet",
          "value": "generateReplyToTweetId",
          "action": "Generate reply to tweet id",
          "routing": {
            "request": {
              "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/reply",
              "method": "GET"
            }
          },
          "description": "Generate reply to tweet ID"
        },
        {
          "name": "Generate Reply to Text",
          "value": "generateReplyToText",
          "action": "Generate reply to text string",
          "routing": {
            "request": {
              "url": "=/apex/reply",
              "method": "GET"
            }
          },
          "description": "Generate reply to text string"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "generateReply"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchTweets",
      "options": [
        {
          "name": "Search Tweets",
          "value": "searchTweets",
          "action": "Search tweets",
          "routing": {
            "request": {
              "url": "=/apex/tweet/search",
              "method": "GET"
            }
          },
          "description": "Search tweet based keywords (& filters)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "searchTweets"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Tweet by ID",
      "value": "getTweetById",
      "action": "Get tweet by id",
      "routing": {
        "request": {
          "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/details",
          "method": "GET"
        }
      },
      "description": "Get tweet by ID (found in the URL)",
      "resource": "getTweet"
    },
    {
      "name": "Tweet",
      "value": "postTweet",
      "action": "Post tweet",
      "routing": {
        "request": {
          "url": "=/apex/tweet",
          "method": "POST"
        }
      },
      "description": "Post tweet to your profile",
      "resource": "postTweet"
    },
    {
      "name": "Post Reply",
      "value": "postReply",
      "action": "Post reply to tweet",
      "routing": {
        "request": {
          "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/reply",
          "method": "POST"
        }
      },
      "description": "Post reply to tweet (by ID)",
      "resource": "postReply"
    },
    {
      "name": "Generate Reply to Tweet",
      "value": "generateReplyToTweetId",
      "action": "Generate reply to tweet id",
      "routing": {
        "request": {
          "url": "=/apex/tweet/{{$parameter[\"tweetId\"]}}/reply",
          "method": "GET"
        }
      },
      "description": "Generate reply to tweet ID",
      "resource": "generateReply"
    },
    {
      "name": "Generate Reply to Text",
      "value": "generateReplyToText",
      "action": "Generate reply to text string",
      "routing": {
        "request": {
          "url": "=/apex/reply",
          "method": "GET"
        }
      },
      "description": "Generate reply to text string",
      "resource": "generateReply"
    },
    {
      "name": "Search Tweets",
      "value": "searchTweets",
      "action": "Search tweets",
      "routing": {
        "request": {
          "url": "=/apex/tweet/search",
          "method": "GET"
        }
      },
      "description": "Search tweet based keywords (& filters)",
      "resource": "searchTweets"
    }
  ]

npm_readme:
  # n8n-nodes-apex

  Apex provides social media infrastructure that lets you manage your X (Twitter) account fully with a single API Key.

  * Get unlimited data
  * Generate quality content
  * Post bangers

  This is an n8n community node for Apex, allowing you to manage X (Twitter) in your n8n workflows.

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

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

  ## Installation

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

  ## Operations

  This node supports the following operations for X (Twitter):
  *   Get Tweet
  *   Search Tweets
  *   Generate Reply
  *   Post Tweet
  *   Post Reply

  ## Credentials

  To use this node, you need to authenticate with Apex.
  1.  Create an account at [Apex](https://apexagents.ai/).
  2.  Request an API Key from within your Apex account (support chat on bottom right).
  3.  Use this API Key in the Apex credentials configuration in n8n.

  ## Compatibility

  This node was built against n8n version `1.82.0` and should be compatible with n8n running Node.js version 20 or higher.

  ## Resources

  * [Apex API](https://apex-backend-435707161213.us-west1.run.app/)
  * [Apex Homepage](https://apexagents.ai/)
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables full management of X (Twitter) accounts by integrating with the Apex API for content generation, posting, and data retrieval.","capabilities":["Get Tweet","Search Tweets","Generate Reply","Post Tweet","Post Reply"],"authentication":"API Key required","commonUseCases":["Automated social media posting","Generating Twitter replies","Monitoring and retrieving tweet data","Content generation for X (Twitter)"],"limitations":["Requires external API key from Apex service","Requires n8n version 1.82.0 or higher","Requires Node.js version 20 or higher"],"relatedNodes":["n8n-nodes-twitter","n8n-nodes-http-request"]}


node_type: n8n-nodes-businessmap.businessmap
package_name: n8n-nodes-businessmap
display_name: Businessmap
description: Read, write, update and delete data from Businessmap
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: businessmap
author_github_url: https://github.com/kanbanize/
npm_package_name: n8n-nodes-businessmap
npm_version: 1.1.1
community_fetched_at: 2026-07-14T14:40:33.219Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-businessmap

  This is the official n8n community node working with the [Businessmap API](https://demo.businessmap.io/openapi/). 

  **Businessmap** is the most flexible software platform for outcomes-driven enterprise agility. The unmatched functionality consolidates multiple tools into one, enabling affordable deployment at scale, visibility across all projects/portfolios, and alignment on goals, to deliver quality work faster. 


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

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

  ## Installation

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

  ## Operations

  ### Supported Triggers
  The **Businessmap n8n community node** supports the following triggers:
  * `All Events`
  * `Card Created`
  * `Card Details Changed`
  * `Card Discarded`
  * `Card Restored`
  * `Card Moved`
  * `Card Archived`
  * `Card Is Unarchived`
  * `Comment Created`
  * `Comment Updated`
  * `Comment Deleted`
  * `Subtask Created`
  * `Subtask Updated`
  * `Subtask Deleted`
  * `Board Renamed`
  * `Board Archived`
  * `Board Unarchived`
  * `Board Deleted`
  * `Board Structure Changed`

  ### Supported Actions
  The **Businessmap n8n community node** supports the following actions:
  * `Create Card`: Create a card in a board of your choice. Set card details including custom fields, stickers and tags.
  * `Update Card`: Update the properties of a card (Title, Description, Priority, Size, Deadline, etc.).
  * `Move Card`: Move a card to a new column, lane or board.
  * `Get Card by ID`: Get the details of a card by its internal ID.
  * `Get Card by Custom Card ID`: Find card by custom card ID. If multiple cards are found, all will be returned. Use "Board" parameter to filter search by boards.
  * `Get All Cards Per Board`: Get all cards from a selected board. The response contains up to 200 cards. To retrieve more than 200 cards, please use pagination.
  * `Link Card`: Link a card to an existing card.
  * `Unlink Card`: Remove a link between two cards.
  * `Set Custom Fields`: Sets values of custom fields.
  * `Block Card`: Block a card.
  * `Unblock Card`: Unblock a card.
  * `Archive Card`: Add card to archive.
  * `Unarchive Card`: Extract card from archive.
  * `Discard Card`: Discard a card.
  * `Restore Card`: Restore a previously discarded card.
  * `Add Comment`: Add a comment to a card.
  * `Create Subtask`: Create a new subtask of a card.
  * `Log Time`: Log time to a card.
  * `Upload Attachment`: Upload an attachment to a card.
  * `Download Attachment`: Download an attachment from a card.
  * `Get Card Attachments`: Get a list with all attachments for a specified card.
  * `Create Workspace`: Create a workspace.
  * `Update Workspace`: Update a workspace.
  * `Get Workspace`: Get a workspace.
  * `Get All Workspaces`: Get a list with all workspaces in the account.
  * `Create Board`: Create a board.
  * `Update Board`: Update a board.
  * `Get Board`: Get a board.
  * `Get All Boards`: Get a list with all boards.
  * `Get Board Structure`: Get board structure which includes all workflows, lanes and columns.
  * `Create Tag`: Create a tag.
  * `Update Tag`: Update a tag.
  * `Delete Tag`: Delete a tag.
  * `Get Tag`: Get a tag.
  * `Get All Tags`: Get a list with all tags.
  * `Assign Tag`: Assign a tag to a board.
  * `Create Sticker`: Create a sticker.
  * `Update Sticker`: Update a sticker.
  * `Delete Sticker`: Delete a sticker.
  * `Get Sticker`: Get a sticker.
  * `Get All Stickers`: Get a list with all stickers.
  * `Assign Sticker`: Assign a sticker to a board.
  * `Create Document`: Create a new document with a title, content and optional flags.
  * `Get Document`: Get a single document by its ID.
  * `Get Board Documents`: Get all documents on a board.
  * `Update Document`: Update the title, content, or any of the document flags. Set Parent Doc ID to `0` to detach an existing parent. Leave Title or Content empty to keep the current value.
  * `Set Document Location`: Add a document to a card or a board.
  * `Add Attachment to Document`: Upload a file and attach it to a document.


  ## Credentials

  * To use this **n8n community node**, you'll need a **Businessmap** account and a user with permissions to access the API. If you don’t have an account yet, [sign up here](https://businessmap.io/sign-up) to get started.

  To authenticate with the Businessmap API, you'll need to provide your domain name and API key when setting up your credentials. Follow the instructions provided on the [Businessmap API page](https://businessmap.io/api) to obtain your API key.

  ## Compatibility

  Requires n8n version 1.0.0 or later
  Requires Node.js 20.15.0 or later

  ## Usage

  * Visit our [Knowledge Base](https://knowledgebase.businessmap.io/hc/en-us) to find answers to all your questions regarding Businessmap.
  * Contact our [customer support](https://businessmap.io/customer-support) with any specific request.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/builtin/app-nodes/)
  * [Create Businessmap Account](https://businessmap.io/sign-up)
  * [Knowledge Base](https://knowledgebase.businessmap.io/hc/en-us)
  * [Businessmap API documentation](https://demo.businessmap.io/openapi/#/)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with the Businessmap API, allowing users to read, write, update, and delete data related to cards, boards, workspaces, tags, stickers, and comments.","capabilities":["Create, update, and delete cards with custom fields, stickers, and tags","Move, archive, discard, restore, and block/unblock cards","Add, update, and delete comments and subtasks","Log time and upload/download attachments to cards","Link and unlink cards","Create, update, and manage workspaces and boards","Manage tags and stickers (create, update, delete, assign)","Get cards by ID, custom ID, or all cards per board (with pagination support)","Retrieve board structures, workflows, lanes, and columns"],"authentication":"API key required (domain name and API key)","commonUseCases":["Automating project management tasks within Businessmap","Syncing card data between Businessmap and other tools","Creating boards and workspaces programmatically","Managing card attachments and comments via automation","Tracking time and linking related tasks"],"limitations":["Requires a Businessmap account with appropriate API permissions","Get All Cards Per Board is limited to 200 cards per request (requires pagination for more)","Requires n8n version 1.0.0 or later","Requires Node.js 20.15.0 or later"],"relatedNodes":["n8n-nodes-core.httpRequest","n8n-nodes-core.code"]}


node_type: n8n-nodes-dalil-ai.dalilAi
package_name: n8n-nodes-dalil-ai
display_name: Dalil AI
description: Consume Dalil AI API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: dalil-ai
author_github_url: https://github.com/dalil-ai/
npm_package_name: n8n-nodes-dalil-ai
npm_version: 0.2.1
community_fetched_at: 2026-07-14T14:40:33.220Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "people",
      "options": [
        {
          "name": "Company",
          "value": "company"
        },
        {
          "name": "Note",
          "value": "note"
        },
        {
          "name": "Note Relation",
          "value": "noteTarget"
        },
        {
          "name": "Opportunity",
          "value": "opportunity"
        },
        {
          "name": "Person",
          "value": "people"
        },
        {
          "name": "Pipeline",
          "value": "pipeline"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Task Relation",
          "value": "taskTarget"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a person",
          "description": "Create a new person"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a person",
          "description": "Delete a person"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a person",
          "description": "Get a person"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many people",
          "description": "Get many people"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for people",
          "description": "Search for people by name or email"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a person",
          "description": "Update a person"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "people"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a company",
          "description": "Create a new company"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a company",
          "description": "Delete a company"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a company",
          "description": "Get a company"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many companies",
          "description": "Get many companies"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for companies",
          "description": "Search for companies by name"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a company",
          "description": "Update a company"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "company"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a note",
          "description": "Create a new note"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a note",
          "description": "Delete a note"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a note",
          "description": "Get a note"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many notes",
          "description": "Get many notes"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for notes",
          "description": "Search for notes by title"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a note",
          "description": "Update a note"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "note"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a note relation",
          "description": "Create a new note relation"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a note relation",
          "description": "Delete a note relation"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a note relation",
          "description": "Get a note relation"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many note relations",
          "description": "Get many note relations"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a note relation",
          "description": "Update a note relation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "noteTarget"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task",
          "description": "Create a new task"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task",
          "description": "Delete a task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task",
          "description": "Get a task"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tasks",
          "description": "Get many tasks"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for tasks",
          "description": "Search for tasks by title"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task",
          "description": "Update a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task relation",
          "description": "Create a new task relation"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a task relation",
          "description": "Delete a task relation"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task relation",
          "description": "Get a task relation"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many task relations",
          "description": "Get many task relations"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task relation",
          "description": "Update a task relation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "taskTarget"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a pipeline record",
          "description": "Create a new pipeline record"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a pipeline record",
          "description": "Delete a pipeline record"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a pipeline record",
          "description": "Get a pipeline record"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many pipeline records",
          "description": "Get many pipeline records"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for pipeline records",
          "description": "Search for pipeline records by name"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a pipeline record",
          "description": "Update a pipeline record"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pipeline"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create an opportunity",
          "description": "Create a new opportunity"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an opportunity",
          "description": "Delete an opportunity"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an opportunity",
          "description": "Get an opportunity"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many opportunities",
          "description": "Get many opportunities"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search for opportunities",
          "description": "Search for opportunities by name"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an opportunity",
          "description": "Update an opportunity"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "opportunity"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a person",
      "description": "Create a new person",
      "resource": "people"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a person",
      "description": "Delete a person",
      "resource": "people"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a person",
      "description": "Get a person",
      "resource": "people"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many people",
      "description": "Get many people",
      "resource": "people"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for people",
      "description": "Search for people by name or email",
      "resource": "people"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a person",
      "description": "Update a person",
      "resource": "people"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a company",
      "description": "Create a new company",
      "resource": "company"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a company",
      "description": "Delete a company",
      "resource": "company"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a company",
      "description": "Get a company",
      "resource": "company"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many companies",
      "description": "Get many companies",
      "resource": "company"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for companies",
      "description": "Search for companies by name",
      "resource": "company"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a company",
      "description": "Update a company",
      "resource": "company"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a note",
      "description": "Create a new note",
      "resource": "note"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a note",
      "description": "Delete a note",
      "resource": "note"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a note",
      "description": "Get a note",
      "resource": "note"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many notes",
      "description": "Get many notes",
      "resource": "note"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for notes",
      "description": "Search for notes by title",
      "resource": "note"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a note",
      "description": "Update a note",
      "resource": "note"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a note relation",
      "description": "Create a new note relation",
      "resource": "noteTarget"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a note relation",
      "description": "Delete a note relation",
      "resource": "noteTarget"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a note relation",
      "description": "Get a note relation",
      "resource": "noteTarget"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many note relations",
      "description": "Get many note relations",
      "resource": "noteTarget"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a note relation",
      "description": "Update a note relation",
      "resource": "noteTarget"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "description": "Create a new task",
      "resource": "task"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task",
      "description": "Delete a task",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "description": "Get a task",
      "resource": "task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tasks",
      "description": "Get many tasks",
      "resource": "task"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for tasks",
      "description": "Search for tasks by title",
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task",
      "description": "Update a task",
      "resource": "task"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task relation",
      "description": "Create a new task relation",
      "resource": "taskTarget"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a task relation",
      "description": "Delete a task relation",
      "resource": "taskTarget"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task relation",
      "description": "Get a task relation",
      "resource": "taskTarget"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many task relations",
      "description": "Get many task relations",
      "resource": "taskTarget"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task relation",
      "description": "Update a task relation",
      "resource": "taskTarget"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a pipeline record",
      "description": "Create a new pipeline record",
      "resource": "pipeline"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a pipeline record",
      "description": "Delete a pipeline record",
      "resource": "pipeline"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a pipeline record",
      "description": "Get a pipeline record",
      "resource": "pipeline"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many pipeline records",
      "description": "Get many pipeline records",
      "resource": "pipeline"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for pipeline records",
      "description": "Search for pipeline records by name",
      "resource": "pipeline"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a pipeline record",
      "description": "Update a pipeline record",
      "resource": "pipeline"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create an opportunity",
      "description": "Create a new opportunity",
      "resource": "opportunity"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an opportunity",
      "description": "Delete an opportunity",
      "resource": "opportunity"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an opportunity",
      "description": "Get an opportunity",
      "resource": "opportunity"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many opportunities",
      "description": "Get many opportunities",
      "resource": "opportunity"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search for opportunities",
      "description": "Search for opportunities by name",
      "resource": "opportunity"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an opportunity",
      "description": "Update an opportunity",
      "resource": "opportunity"
    }
  ]

npm_readme:
  # n8n-nodes-dalil-ai

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

  Dalil AI is a CRM platform that helps you manage your customer relationships and sales pipeline.

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

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

  ## Installation

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

  ## Operations

  **People:**
  - Create, Update, Delete, Get, Get Many

  **Company:**
  - Create, Update, Delete, Get, Get Many

  **Opportunity:**
  - Create, Update, Delete, Get, Get Many

  **Task:**
  - Create, Update, Delete, Get, Get Many

  **Note:**
  - Create, Update, Delete, Get, Get Many

  **Task Target (Relations):**
  - Create, Update, Delete, Get, Get Many

  **Note Target (Relations):**
  - Create, Update, Delete, Get, Get Many

  **Pipeline:**
  - Create, Update, Delete, Get, Get Many

  ## Credentials

  You'll need to create Dalil AI API credentials. You can find these in your Dalil AI account settings.

  ## Compatibility

  This was tested against n8n version 1.0+.

  ## Usage

  This node allows you to interact with Dalil AI's CRM system to manage contacts, companies, opportunities, tasks, and notes.

  ## Resources

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

  ---

  # Dalil AI n8n Node - Complete User Guide

  Welcome to the comprehensive guide for using the Dalil AI n8n node. This documentation will help users of all experience levels - from beginners to advanced developers - understand and effectively use the DalilAI n8n node.

  ## Table of Contents

  1. [Overview](#overview)
  2. [Authentication Setup](#authentication-setup)
  3. [Understanding Resources](#understanding-resources)
  4. [Core Concepts](#core-concepts)
  5. [Operations Guide](#operations-guide)
  6. [Understanding Field Types and Values](#understanding-field-types-and-values)
  7. [Query Parameters](#query-parameters)
  8. [Triggers and Webhooks](#triggers-and-webhooks)
  9. [Advanced Features](#advanced-features)
  10. [Troubleshooting](#troubleshooting)

  ## Overview

  The Dalil AI n8n node allows you to seamlessly integrate with the Dalil AI CRM system, enabling automation of customer relationship management tasks. The node supports comprehensive CRUD (Create, Read, Update, Delete) operations across multiple resources and provides real-time webhook notifications for data changes.

  ### Supported Resources
  - **People**: Individual contacts and customers
  - **Company**: Organizations and businesses
  - **Opportunity**: Sales deals and prospects
  - **Task**: To-do items and assignments
  - **Note**: Documentation and comments
  - **Task Relations**: Link tasks to multiple records
  - **Note Relations**: Link notes to multiple records
  - **Pipeline**: Workflow stages and processes

  ## Authentication Setup

  Before using the Dalil AI node, you need to configure your API credentials:

  1. **Create Credentials**: In your n8n instance, go to Settings > Credentials
  2. **Add New Credential**: Select "Dalil AI API"
  3. **Configure**:
     - **API Key**: Your authentication token from Dalil AI settings

  ## Understanding Resources

  ### Core Resources

  #### People
  Represents individual contacts in your CRM.
  - **Use Case**: Store customer information, contacts, leads
  - **Key Fields**: First Name, Last Name, Email, Phone, Company ID
  - **Relationships**: Belongs to Company, has Tasks/Notes

  #### Company  
  Represents businesses and organizations.
  - **Use Case**: Manage client companies, prospects, vendors
  - **Key Fields**: Name, Domain URL, Industry, Employees, Address
  - **Relationships**: Has People, Opportunities, Tasks/Notes

  #### Opportunity
  Represents sales deals and revenue opportunities.
  - **Use Case**: Track sales pipeline, deals, revenue forecasts
  - **Key Fields**: Name, Amount, Stage, Close Date, Company ID
  - **Relationships**: Belongs to Company and people, has Tasks/Notes

  #### Task
  Represents actionable items and assignments.
  - **Use Case**: Track work items, follow-ups, assignments
  - **Key Fields**: Title, Body, Status, Due Date, Assignee ID
  - **Relationships**: Can be linked to any record via Task Relations

  #### Note
  Represents documentation and comments.
  - **Use Case**: Store meeting notes, customer interactions, documentation
  - **Key Fields**: Title, Body, Visibility Level
  - **Relationships**: Can be linked to any record via Note Relations

  ### Relationship Resources

  #### Task Relations (taskTarget)
  Creates many-to-many relationships between tasks and other records.
  - **Purpose**: One task can be related to multiple People, Companies, or Opportunities
  - **Use Case**: Project tasks affecting multiple contacts or deals
  - **Key Fields**: Task ID, Person ID, Company ID, Opportunity ID

  #### Note Relations (noteTarget)  
  Creates many-to-many relationships between notes and other records.
  - **Purpose**: One note can be related to multiple People, Companies, or Opportunities
  - **Use Case**: Meeting notes involving multiple participants or deals
  - **Key Fields**: Note ID, Person ID, Company ID, Opportunity ID

  #### Pipeline
  Defines workflow stages and custom processes.
  - **Purpose**: Create custom workflows beyond standard opportunity stages
  - **Use Case**: Support tickets, hiring processes, custom workflows
  - **Key Fields**: Name, Status, Custom Fields

  ## Core Concepts

  ### Operations
  Each resource supports standard CRUD operations:

  - **Create**: Add new records
  - **Get**: Retrieve a single record by ID
  - **Get Many**: Retrieve multiple records with filtering
  - **Update**: Modify existing records
  - **Delete**: Remove records

  ### Field Types
  Understanding field types is crucial for proper data entry:

  #### Standard Field Types
  - **TEXT**: Plain text strings (e.g., "John Smith")
  - **NUMBER**: Numeric values (e.g., 100, 3.14)
  - **BOOLEAN**: True/false values
  - **DATE_TIME**: ISO 8601 format dates (e.g., "2024-01-15T10:30:00Z")
  - **SELECT**: Single choice from predefined options
  - **MULTI_SELECT**: Multiple choices from predefined options
  - **RATING**: Scale of 1-5 (represented as "RATING_1" through "RATING_5")

  #### Complex Field Types
  - **EMAILS**: Email addresses with primary and additional emails
  - **PHONES**: Phone numbers with country codes and calling codes
  - **LINKS**: URLs with labels and secondary links
  - **ADDRESS**: Complete address information
  - **FULL_NAME**: First and last name components
  - **MONEY**: Amount with currency code (stored in micros)

  ### Select Values Format
  **IMPORTANT**: Select field values must be in uppercase with underscores, not the display labels.

  **Frontend Display** → **API Value Required**
  - "Lead" → "LEAD"
  - "New Customer" → "NEW_CUSTOMER"  
  - "In Progress" → "IN_PROGRESS"
  - "On Site" → "ON_SITE"
  - "Remote Work" → "REMOTE_WORK"

  **Example for Opportunity Stage:**
  - Display: "Discovery" → Value: "DISCOVERY"
  - Display: "Proposal" → Value: "PROPOSAL"
  - Display: "Negotiation" → Value: "NEGOTIATION"

  ## Operations Guide

  ### Creating Records

  #### People - Create
  **Required Fields:**
  - First Name

  **Example:**
  ```javascript
  {
    "firstName": "John",
    "additionalFields": {
      "lastName": "Smith",
      "primaryEmail": "john.smith@company.com",
      "jobTitle": "Software Engineer",
      "companyId": "123e4567-e89b-12d3-a456-426614174000"
    }
  }
  ```

  #### Company - Create
  **Required Fields:**
  - Company Name

  **Example:**
  ```javascript
  {
    "name": "Acme Corp",
    "additionalFields": {
      "domainUrl": "https://acmecorp.com",
      "industry": "Technology",
      "employees": 50,
      "addressStreet1": "123 Main St",
      "addressCity": "San Francisco",
      "addressState": "CA",
      "addressCountry": "United States"
    }
  }
  ```

  #### Opportunity - Create
  **Required Fields:**
  - Name

  **Example:**
  ```javascript
  {
    "name": "Q1 Software License Deal",
    "additionalFields": {
      "amount": 50000,
      "currencyCode": "USD",
      "stage": "DISCOVERY",
      "closeDate": "2024-03-31",
      "companyId": "123e4567-e89b-12d3-a456-426614174000"
    }
  }
  ```

  #### Task - Create
  **Required Fields:**
  - Title

  **Example:**
  ```javascript
  {
    "title": "Follow up with client",
    "additionalFields": {
      "body": "Call to discuss proposal feedback",
      "status": "TODO",
      "dueAt": "2024-01-20T15:00:00Z",
      "assigneeId": "123e4567-e89b-12d3-a456-426614174000"
    }
  }
  ```

  #### Note - Create
  **Required Fields:**
  - Title

  **Example:**
  ```javascript
  {
    "title": "Client Meeting Notes",
    "additionalFields": {
      "body": "Discussed project requirements and timeline",
      "visibilityLevel": 1
    }
  }
  ```

  ### Creating Relationships

  #### Task Relations (taskTarget) - Create
  Links a task to multiple records.

  **⚠️ Important Constraint: Single Relation Per Record**
  Each taskTarget record can only link to **ONE** relation ID at a time. You cannot add both `personId` and `companyId` in the same taskTarget record.

  **❌ Incorrect - Multiple Relations in One Record:**
  ```javascript
  {
    "taskId": "task-uuid-here",
    "personId": "person-uuid-here",      // ❌ Cannot combine
    "companyId": "company-uuid-here"     // ❌ Cannot combine
  }
  ```

  **✅ Correct - Separate Records for Each Relation:**

  **First Record (Person Relation):**
  ```javascript
  {
    "taskId": "task-uuid-here",
    "personId": "person-uuid-here"
  }
  ```

  **Second Record (Company Relation):**
  ```javascript
  {
    "taskId": "task-uuid-here",
    "companyId": "company-uuid-here"
  }
  ```

  **Third Record (Opportunity Relation):**
  ```javascript
  {
    "taskId": "task-uuid-here",
    "opportunityId": "opportunity-uuid-here"
  }
  ```

  #### Note Relations (noteTarget) - Create
  Links a note to multiple records.

  **⚠️ Important Constraint: Single Relation Per Record**
  Each noteTarget record can only link to **ONE** relation ID at a time. You cannot add both `personId` and `companyId` in the same noteTarget record.

  **❌ Incorrect - Multiple Relations in One Record:**
  ```javascript
  {
    "noteId": "note-uuid-here",
    "personId": "person-uuid-here",      // ❌ Cannot combine
    "companyId": "company-uuid-here"     // ❌ Cannot combine
  }
  ```

  **✅ Correct - Separate Records for Each Relation:**

  **First Record (Person Relation):**
  ```javascript
  {
    "noteId": "note-uuid-here",
    "personId": "person-uuid-here"
  }
  ```

  **Second Record (Company Relation):**
  ```javascript
  {
    "noteId": "note-uuid-here",
    "companyId": "company-uuid-here"
  }
  ```

  **Workflow Example:**
  To link a single note to both a person and a company, create two separate n8n node executions:

  1. **First Node Execution:**
     - Operation: Create noteTarget
     - noteId: "your-note-uuid"
     - personId: "your-person-uuid"

  2. **Second Node Execution:**
     - Operation: Create noteTarget  
     - noteId: "your-note-uuid"
     - companyId: "your-company-uuid"


  ### Updating Records

  Updates require the record ID and any fields you want to modify:

  **Example - Update Person:**
  ```javascript
  {
    "personId": "123e4567-e89b-12d3-a456-426614174000",
    "updateFields": {
      "jobTitle": "Senior Software Engineer",
      "primaryEmail": "john.smith.senior@company.com"
    }
  }
  ```

  ### Getting Records

  #### Get Single Record
  Requires only the record ID:
  - **Person ID**: UUID of the person to retrieve
  - **Depth**: Level of related data to include (0, 1, or 2)

  #### Get Many Records
  Supports filtering, sorting, and pagination:
  - **Return All**: Whether to fetch all results or limit
  - **Limit**: Maximum records to return (1-60)
  - **Filter**: Conditions to filter results
  - **Order By**: Sorting criteria
  - **Depth**: Level of related data to include

  ## Understanding Field Types and Values

  ### Custom Properties
  Each resource can have custom fields specific to your workspace. The node dynamically loads available custom properties and shows the expected format.

  **Custom Property Types:**
  - **Text Fields**: Accept plain strings
  - **Select Fields**: Accept predefined values (use API format, not display labels)
  - **Multi-Select Fields**: Accept arrays of predefined values
  - **Date Fields**: Accept ISO 8601 formatted dates
  - **Boolean Fields**: Accept true/false
  - **Rating Fields**: Accept "RATING_1" through "RATING_5"


  ## Query Parameters

  ### Filtering
  Filter results using field conditions with comparators:

  **Format:** `field[comparator]:value,field2[comparator]:value2`

  **Available Comparators:**
  - `eq`: Equal to
  - `neq`: Not equal to  
  - `gt`: Greater than
  - `gte`: Greater than or equal
  - `lt`: Less than
  - `lte`: Less than or equal
  - `in`: In list (comma-separated values)
  - `startsWith`: Starts with text
  - `like`: Contains text (case-sensitive)
  - `ilike`: Contains text (case-insensitive)
  - `is`: For NULL/NOT_NULL values
  - `containsAny`: For array fields

  **Simple Field Examples:**
  ```
  score[gt]:5
  employees[gte]:50
  stage[in]:[DISCOVERY,PROPOSAL]
  createdAt[gte]:2024-01-01
  city[is]:NOT_NULL
  ```

  **Nested Field Examples:**
  For composite fields, use dot notation to access subfields:

  **People/Person Fields:**
  ```
  name.firstName[eq]:John
  name.lastName[eq]:Smith
  emails.primaryEmail[like]:@company.com
  emails.primaryEmail[is]:NOT_NULL
  phones.primaryPhoneNumber[startsWith]:+1
  phones.primaryPhoneCountryCode[eq]:US
  linkedinLink.primaryLinkUrl[like]:linkedin.com
  whatsapp.primaryPhoneNumber[startsWith]:+1
  ```

  **Company Fields:**
  ```
  name[eq]:Acme Corp
  domainName.primaryLinkUrl[eq]:acme.com
  address.addressCity[eq]:New York
  address.addressCountry[eq]:USA
  annualRecurringRevenue.amountMicros[gt]:1000000
  linkedinLink.primaryLinkUrl[like]:linkedin.com
  ```

  **Opportunity Fields:**
  ```
  name[eq]:Big Deal
  amount.amountMicros[gt]:500000
  amount.currencyCode[eq]:USD
  ```

  **Complex Filters with Conjunctions:**
  Use `and`, `or`, `not` to combine conditions:
  ```
  and(name.firstName[eq]:John,name.lastName[eq]:Smith)
  or(emails.primaryEmail[like]:@company.com,phones.primaryPhoneNumber[startsWith]:+1)
  not(emails.primaryEmail[is]:NULL)
  and(score[gt]:5,or(name.firstName[eq]:John,name.firstName[eq]:Jane))
  ```

  ### Sorting (Order By)
  Sort results by one or more fields:

  **Format:** `field1,field2[DIRECTION]`

  **Available Directions:**
  - `AscNullsFirst`: Ascending, nulls first (default)
  - `AscNullsLast`: Ascending, nulls last
  - `DescNullsFirst`: Descending, nulls first  
  - `DescNullsLast`: Descending, nulls last

  **Simple Field Examples:**
  ```
  createdAt[DescNullsLast]
  score[DescNullsFirst]
  position[AscNullsLast]
  ```

  **Nested Field Examples:**
  For composite fields, use dot notation to access subfields:

  **People/Person Sorting:**
  ```
  name.firstName[AscNullsFirst]
  name.lastName[DescNullsLast]
  emails.primaryEmail[AscNullsLast]
  phones.primaryPhoneNumber[DescNullsFirst]
  ```

  **Company Sorting:**
  ```
  name[AscNullsFirst]
  domainName.primaryLinkUrl[AscNullsLast]
  address.addressCity[DescNullsFirst]
  annualRecurringRevenue.amountMicros[DescNullsLast]
  ```

  **Multiple Field Sorting:**
  ```
  name.firstName,name.lastName[DescNullsFirst]
  score[DescNullsLast],name.firstName[AscNullsLast]
  createdAt[DescNullsFirst],name.firstName[AscNullsFirst]
  ```

  ### Depth Levels
  Control how much related data to include:

  - **Depth 0**: Only the primary object
  - **Depth 1**: Primary object + direct relationships (default)
  - **Depth 2**: Primary object + relationships + their relationships

  **Example:**
  - Depth 0: Just the person record
  - Depth 1: Person + their company info
  - Depth 2: Person + company + company's opportunities

  ## Triggers and Webhooks

  The Dalil AI Trigger node allows you to react to real-time changes in your Dalil AI workspace.

  ### Setting Up Triggers

  1. **Add Trigger Node**: Drag "Dalil AI Trigger" to your workflow
  2. **Configure Entity**: Choose which resource to monitor (Company, People, Opportunity, Task)
  3. **Configure Action**: Choose which events to listen for (Create, Update, Delete, All)
  4. **Save and Activate**: The webhook will be automatically registered

  ### Trigger Configuration

  **Entity Options:**
  - **Company**: Monitor company record changes
  - **People**: Monitor person record changes  
  - **Opportunity**: Monitor opportunity changes
  - **Task**: Monitor task changes

  **Action Options:**
  - **All (*)**: Any change to the entity
  - **Create**: New records created
  - **Update**: Existing records modified
  - **Delete**: Records removed

  ### Webhook Response Structure

  When a trigger fires, you receive a structured webhook payload:

  ```javascript
  [
    {
      "targetUrl": "https://your-n8n-instance.com/webhook/...",
      "eventName": "company.updated",
      "objectMetadata": {
        "id": "8913832e-825b-4374-a527-f9e3524ef3a9",
        "nameSingular": "company"
      },
      "workspaceId": "20202020-1c25-4d02-bf25-6aeccf7ea419",
      "webhookId": "85124f96-2698-4368-8805-c2755070c1c1",
      "eventDate": "2025-06-26T04:51:21.005Z",
      "record": {
        // Complete record data with all fields
        "id": "2f51e0c3-6ed4-4ec7-8ecf-05f0282154fe",
        "name": "Acme Corp",
        "industry": "Technology",
        // ... all other fields
      },
      "updatedFields": [
        "address",
        "industry"
      ]
    }
  ]
  ```

  ### Key Webhook Fields

  #### eventName
  Identifies the specific event that occurred:
  - Format: `{entity}.{action}`
  - Examples: `company.created`, `people.updated`, `opportunity.deleted`
  - **Use Case**: Filter webhook processing based on event type

  #### updatedFields  
  Array of field names that were changed (only for update events):
  - **Use Case**: Process only specific field changes, ignore others
  - **Example**: Only send email notifications when contact info changes

  #### record
  Complete record data after the change:
  - **Create Events**: The newly created record
  - **Update Events**: Record with latest values  
  - **Delete Events**: The record before deletion

  #### eventDate
  ISO timestamp of when the event occurred:
  - **Use Case**: Order events, detect delayed processing

  ### Using Webhook Data

  **Example - Process Only Email Changes:**
  ```javascript
  // In your workflow's JavaScript code
  if (items[0].json.eventName === 'people.updated' && 
      items[0].json.updatedFields.includes('primaryEmail')) {
    // Send notification about email change
    return items;
  } else {
    // Skip processing
    return [];
  }
  ```

  **Example - Route by Event Type:**
  ```javascript
  const eventName = items[0].json.eventName;
  const [entity, action] = eventName.split('.');

  if (entity === 'company' && action === 'created') {
    // Handle new company
  } else if (entity === 'opportunity' && action === 'updated') {
    // Handle opportunity changes
  }
  ```

  ## Troubleshooting

  ### Common Issues

  #### Authentication Errors
  - **Symptom**: "Unauthorized" or credential errors
  - **Solution**: Verify API key

  #### Field Value Errors  
  - **Symptom**: "Invalid value" errors for select fields
  - **Solution**: Use API format values, not display labels
  - **Example**: Use "IN_PROGRESS" not "In Progress"

  #### Date Format Errors
  - **Symptom**: Date validation failures  
  - **Solution**: Use ISO 8601 format: "2024-01-15T10:30:00Z"
  - **Tools**: Use JavaScript `new Date().toISOString()`

  #### Relationship Errors
  - **Symptom**: "Record not found" when creating relations
  - **Solution**: Ensure referenced IDs exist and are valid UUIDs
  - **Check**: Verify record existence before creating relations

  #### Filter Syntax Errors
  - **Symptom**: No results or filter errors
  - **Solution**: Check comparator syntax and field names
  - **Example**: `name[eq]:value` not `name=value`


  ---

  This guide provides comprehensive coverage of the Dalil AI n8n node. For specific use cases or advanced configurations, refer to the API documentation or reach out to the support team.

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of customer relationship management tasks by allowing integration with the Dalil AI CRM platform.","capabilities":["Create, Update, Delete, Get, Get Many operations for People","Create, Update, Delete, Get, Get Many operations for Company","Create, Update, Delete, Get, Get Many operations for Opportunity","Create, Update, Delete, Get, Get Many operations for Task","Create, Update, Delete, Get, Get Many operations for Note","Create, Update, Delete, Get, Get Many operations for Task Target Relations","Create, Update, Delete, Get, Get Many operations for Note Target Relations","Create, Update, Delete, Get, Get Many operations for Pipeline","Real-time webhook notifications for data changes","Many-to-many relationship management between tasks and records"],"authentication":"API Key required","commonUseCases":["Automating customer contact management and lead tracking","Managing sales pipeline and opportunity tracking","Automating task assignments and follow-ups","Storing and linking meeting notes to customers and deals","Creating custom workflow processes and support tickets"],"limitations":[],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-webhook","n8n-nodes-crm"]}


node_type: n8n-nodes-magnetite.magnetite
package_name: n8n-nodes-magnetite
display_name: Magnetite
description: Add leads to Magnetite campaigns for automated outreach
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: magnetite
author_github_url: https://github.com/MagnetiteAI/
npm_package_name: n8n-nodes-magnetite
npm_version: 2.0.0
community_fetched_at: 2026-07-14T14:40:33.222Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "campaign",
      "options": [
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Lead Magnet (Legacy)",
          "value": "leadMagnet"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "addLead",
      "options": [
        {
          "name": "Add Lead",
          "value": "addLead",
          "action": "Add a lead to campaign",
          "description": "Add a lead to a campaign for automated outreach"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate a lead magnet",
          "description": "Generate a personalized lead magnet"
        },
        {
          "name": "Get Status",
          "value": "getStatus",
          "action": "Get lead magnet status",
          "description": "Retrieve the status of a lead magnet generation job"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "leadMagnet"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Lead",
      "value": "addLead",
      "action": "Add a lead to campaign",
      "description": "Add a lead to a campaign for automated outreach",
      "resource": "campaign"
    },
    {
      "name": "Generate",
      "value": "generate",
      "action": "Generate a lead magnet",
      "description": "Generate a personalized lead magnet",
      "resource": "leadMagnet"
    },
    {
      "name": "Get Status",
      "value": "getStatus",
      "action": "Get lead magnet status",
      "description": "Retrieve the status of a lead magnet generation job",
      "resource": "leadMagnet"
    }
  ]

npm_readme:
  # n8n-nodes-magnetite

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

  This is an n8n community node for [Magnetite](https://magnetite.ai). It lets you generate AI-powered, personalized lead magnets directly in your n8n workflows.

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

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

  ## Installation

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

  1. Go to **Settings > Community Nodes**.
  2. Select **Install**.
  3. Enter `n8n-nodes-magnetite` in **Enter npm package name**.
  4. Agree to the risks of installing unverified code from a public source.
  5. Select **Install**.

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

  ## Operations

  ### Lead Magnet

  - **Generate**: Create a personalized lead magnet for a lead
  - **Get Status**: Retrieve the status of a lead magnet generation job

  ## Credentials

  This node requires a Magnetite API key. You can obtain this from your Magnetite dashboard:

  1. Log in to your [Magnetite dashboard](https://app.magnetite.ai)
  2. Go to **Project Settings** → **API & Integrations**
  3. Copy your API key

  Configure the credentials in n8n:
  - **API Key**: Your Magnetite API key
  - **Base URL**: `https://app.magnetite.ai` (default)

  ## Compatibility

  - Minimum n8n version: 0.198.0
  - Tested up to n8n version: 1.98.1

  ## Usage

  ### Basic Lead Magnet Generation

  1. Add the **Magnetite** node to your workflow
  2. Set **Operation** to **Generate**
  3. Configure the required fields:
     - **Project ID**: Your Magnetite project ID
     - **Email**: Lead's email address
  4. Optionally add lead information:
     - Full Name, Company, Domain, Industry, etc.
  5. Add custom fields as JSON if your project requires them

  ### Checking Generation Status

  1. Use the **Get Status** operation
  2. Provide the **Job ID** from a previous generation request
  3. The node returns the current status and results when complete

  ### Example Workflow

  ```json
  {
    "nodes": [
      {
        "name": "Magnetite",
        "type": "n8n-nodes-magnetite.magnetite",
        "parameters": {
          "operation": "generate",
          "projectId": "proj_abc123",
          "email": "{{$json.email}}",
          "leadData": {
            "fullName": "{{$json.name}}",
            "company": "{{$json.company}}"
          }
        }
      }
    ]
  }
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Magnetite help](https://help.magnetite.ai)
  - [Magnetite API documentation](https://app.magnetite.ai/docs)

  ## Version history

  ### 1.0.4
  - Updated API docs url to https://app.magnetite.ai/docs

  ### 1.0.2
  - Fixed credential test endpoint
  - Improved connection reliability

  ### 1.0.1
  - Updated GitHub repository URL
  - Documentation improvements

  ### 1.0.0
  - Initial release
  - Generate lead magnets
  - Check generation status
  - Support for all standard lead fields
  - Custom fields support via JSON
  - Webhook notifications support

  ## License

  [MIT](https://github.com/MagnetiteAI/n8n-nodes-magnetite/blob/main/LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n community node enables users to generate AI-powered, personalized lead magnets directly within n8n workflows and track the status of ongoing generation jobs.","capabilities":["Generate personalized lead magnets for specific leads","Retrieve status of lead magnet generation jobs","Support for standard lead fields (Full Name, Company, Domain, Industry)","Custom field support via JSON configuration","Webhook notifications support"],"authentication":"API key required","commonUseCases":["Automated personalized outreach campaigns","Lead nurturing with custom content generation","Integrating lead data into Magnetite projects"],"limitations":["Community node (unverified code from public source)","Requires valid Magnetite API key and project ID"],"relatedNodes":["n8n-nodes-core.webhook","n8n-nodes-core.set","n8n-nodes-core.code"]}


node_type: @joai/n8n-nodes-joai.joai
package_name: @joai/n8n-nodes-joai
display_name: JoAi
description: Send messages as a JoAi agent
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: michavie
author_github_url: https://github.com/JoAiHQ/n8n-nodes.git
npm_package_name: @joai/n8n-nodes-joai
npm_version: 0.3.2
community_fetched_at: 2026-07-14T14:40:33.223Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "sendMessageAsUser",
      "options": [
        {
          "name": "Send Message as User",
          "value": "sendMessageAsUser",
          "action": "Send a message as a user to an agent",
          "description": "Send a message as a user to an agent"
        },
        {
          "name": "Send Message as Agent",
          "value": "sendMessageAsAgent",
          "action": "Send a message as an agent to a room",
          "description": "Send a message as an agent to a room"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": false
    }
  ]

operations:
  [
    {
      "name": "Send Message as User",
      "value": "sendMessageAsUser",
      "action": "Send a message as a user to an agent",
      "description": "Send a message as a user to an agent"
    },
    {
      "name": "Send Message as Agent",
      "value": "sendMessageAsAgent",
      "action": "Send a message as an agent to a room",
      "description": "Send a message as an agent to a room"
    }
  ]

npm_readme:
  # @joai/n8n-nodes-joai

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

  This is an n8n community node that provides integration with JoAi (AI Agent Platform). It allows you to send messages as AI agents and receive real-time webhooks for agent events.

  [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

  Install using npm:
  ```bash
  npm install @joai/n8n-nodes-joai
  ```

  Or via n8n's community nodes interface:
  1. Go to Settings > Community Nodes
  2. Install package: `@joai/n8n-nodes-joai`

  ## Operations

  ### JoAi Node
  - **Send Message**: Send a message as a JoAi agent to a specific room

  ### JoAi Trigger
  - **Webhook Events**: Receive real-time events from JoAi agents
    - Agent Actions
    - Agent Messages
    - User Messages

  ## Credentials

  This node requires JoAi API credentials. You need:

  1. **API Key**: Your JoAi API authentication key
  2. **Base URL**: The base URL for your JoAi API instance (e.g., `https://api.joai.ai`)

  ### Setting up credentials

  1. In n8n, go to **Settings > Credentials**.
  2. Select **Create New**.
  3. Search for **JoAi API** and select it.
  4. Enter your **API Key** and **Base URL**.
  5. Click **Save**.

  ## Compatibility

  - Minimum n8n version: 0.198.0
  - Tested with n8n version: 1.99.1

  ## Usage

  ### Basic Message Sending

  1. Add a **JoAi** node to your workflow
  2. Select **Send Message** operation
  3. Choose your JoAi credentials
  4. Configure the message parameters:
     - **Agent ID**: The UUID of the agent that will send the message
     - **Message**: The content to send
     - **Room** (optional): Room ID to send to
     - **Additional Fields** (optional): Message type and metadata
  5. Execute the workflow

  ### Setting up Webhooks (Automatic)

  1. Add a **JoAi Trigger** node to your workflow
  2. Configure your **JoAi API credentials** (API Key and Base URL)
  3. Enter the **Agent ID** you want to receive webhooks from
  4. Select the **event types** you want to trigger on (Agent Action, Agent Message, User Message)
  5. **Activate the workflow** - webhooks are automatically created in JoAi!
  6. **Test** by triggering an event in JoAi

  The trigger will automatically:
  - ✅ Create webhooks in JoAi when you activate the workflow
  - ✅ Delete webhooks when you deactivate the workflow
  - ✅ Pass all webhook data to the next node in your workflow

  No manual webhook configuration needed!

  ### Example Workflow

  Here's a simple workflow that logs webhook data:

  1. **JoAi Trigger** - Receives webhook from JoAi
  2. **Code Node** - Processes the webhook data:
     ```javascript
     // All webhook data is available in $input.item.json
     const webhookData = $input.item.json;

     return {
       json: {
         event: webhookData.event,
         data: webhookData.data,
         receivedAt: new Date().toISOString()
       }
     };
     ```
  3. **Add other nodes** as needed for your specific use case

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [JoAi API Documentation](https://docs.joai.ai)
  - [GitHub Repository](https://github.com/JoAiHQ/n8n-nodes)

  ## Version history

  ## Support

  If you encounter any issues or have questions:

  1. Check the [GitHub Issues](https://github.com/JoAiHQ/n8n-nodes/issues)
  2. Create a new issue if your problem isn't already reported
  3. Provide as much detail as possible including n8n version, node version, and error messages

  ## Contributing

  Contributions are welcome! Please read our contributing guidelines before submitting pull requests.

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with the JoAi AI Agent Platform, allowing users to send messages as agents and receive real-time webhook events for agent actions and messages.","capabilities":["Send messages as a JoAi agent to a specific room","Receive real-time webhook events for Agent Actions","Receive real-time webhook events for Agent Messages","Receive real-time webhook events for User Messages","Automatically create and delete webhooks in JoAi based on workflow activation status"],"authentication":"API Key required (JoAi API Key and Base URL)","commonUseCases":["Automated messaging from AI agents to specific rooms","Real-time monitoring of agent interactions and user messages","Building chatbot workflows with event-driven triggers"],"limitations":["Requires manual installation of the npm package or use of n8n community nodes interface","Minimum n8n version required is 0.198.0","Webhook functionality requires workflow activation to create webhooks in JoAi"],"relatedNodes":["Code Node","Webhook Node","Trigger Node"]}


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

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

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

npm_readme:
  # n8n-nodes-scrape-creators

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

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

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

  ## How to install

  ### Community Nodes

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

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

  ## Credentials

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

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

  3. Create new credential in n8n

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

  ## Resources

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

  ## Version history

  0.1.5 - Initial Release

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


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

updated_at: 2026-07-14 14:40:33
author_name: telli-com
author_github_url: https://github.com/telli-ai/n8n-telli.git
npm_package_name: n8n-nodes-telli
npm_version: 1.2.0
community_fetched_at: 2026-07-14T14:40:33.225Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "contact",
      "options": [
        {
          "name": "Agent",
          "value": "agent"
        },
        {
          "name": "Call",
          "value": "call"
        },
        {
          "name": "Contact",
          "value": "contact"
        },
        {
          "name": "Contact Property",
          "value": "contactProperty"
        },
        {
          "name": "Deprecated",
          "value": "deprecated"
        },
        {
          "name": "Phone Number",
          "value": "phoneNumber"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list-agents-v2",
      "options": [
        {
          "name": "Get Agent",
          "value": "get-agent-v2",
          "action": "Get an agent",
          "description": "Get an agent by ID"
        },
        {
          "name": "List Agents",
          "value": "list-agents-v2",
          "action": "List agents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "agent"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "schedule-telli-call",
      "options": [
        {
          "name": "Get Call",
          "value": "get-call-v1",
          "action": "Get a call",
          "description": "Get call details by call ID"
        },
        {
          "name": "Initiate Call",
          "value": "initiate-call-v1",
          "action": "Initiate a call",
          "description": "Immediately initiate an outbound call"
        },
        {
          "name": "Remove From Auto Dialer",
          "value": "remove-from-auto-dialer",
          "action": "Remove a contact from auto dialer",
          "description": "Remove a contact from the auto dialer queue"
        },
        {
          "name": "Remove From Auto Dialer (Batch)",
          "value": "remove-from-auto-dialer-batch-v1",
          "action": "Remove contacts from auto dialer in batch"
        },
        {
          "name": "Schedule Call",
          "value": "schedule-telli-call",
          "action": "Schedule a call with telli",
          "description": "Schedule a call with telli"
        },
        {
          "name": "Schedule Calls (Batch)",
          "value": "schedule-calls-batch-v1",
          "action": "Schedule calls in batch",
          "description": "Schedule multiple calls in one request"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "call"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list-contacts-v2",
      "options": [
        {
          "name": "Create Contact",
          "value": "create-contact-v2",
          "action": "Create a contact",
          "description": "Create a contact using the v2 API"
        },
        {
          "name": "Delete Contact",
          "value": "delete-contact-v2",
          "action": "Delete a contact",
          "description": "Delete a contact using the v2 API"
        },
        {
          "name": "Get Contact",
          "value": "get-contact-v2",
          "action": "Get a contact",
          "description": "Get a contact by ID using the v2 API"
        },
        {
          "name": "Get Contact by External ID",
          "value": "get-contact-by-external-id-v2",
          "action": "Get a contact by external ID",
          "description": "Get a contact by external ID using the v2 API"
        },
        {
          "name": "List Contacts",
          "value": "list-contacts-v2",
          "action": "List contacts",
          "description": "List contacts using the v2 API"
        },
        {
          "name": "Update Contact",
          "value": "update-contact-v2",
          "action": "Update a contact",
          "description": "Update a contact using the v2 API"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contact"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list-contact-properties-v2",
      "options": [
        {
          "name": "Create Contact Property",
          "value": "create-contact-property-v2",
          "action": "Create a contact property",
          "description": "Create a contact property"
        },
        {
          "name": "Get Contact Property",
          "value": "get-contact-property-v2",
          "action": "Get a contact property",
          "description": "Get a contact property by key"
        },
        {
          "name": "List Contact Properties",
          "value": "list-contact-properties-v2",
          "action": "List contact properties"
        },
        {
          "name": "Update Contact Property",
          "value": "update-contact-property-v2",
          "action": "Update a contact property",
          "description": "Update a contact property"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contactProperty"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "add-telli-contact",
      "options": [
        {
          "name": "Add Contact",
          "value": "add-telli-contact",
          "action": "Add a new contact to telli",
          "description": "Add a contact using the v1 endpoint"
        },
        {
          "name": "Add Contacts (Batch)",
          "value": "add-telli-contacts-batch",
          "action": "Add contacts in batch",
          "description": "Add multiple contacts using the v1 batch endpoint"
        },
        {
          "name": "Get Contact",
          "value": "get-telli-contact",
          "action": "Get a contact",
          "description": "Get a contact by ID using the v1 endpoint"
        },
        {
          "name": "Get Contact by External ID",
          "value": "get-contact-by-external-id",
          "action": "Get contact by external ID",
          "description": "Get a contact by external ID using the v1 endpoint"
        },
        {
          "name": "Get Contacts (Batch)",
          "value": "get-telli-contacts-batch",
          "action": "Get contacts in batch",
          "description": "Get multiple contacts using the v1 batch endpoint"
        },
        {
          "name": "Update Contact",
          "value": "update-telli-contact",
          "action": "Update a contact in telli",
          "description": "Update a contact using the v1 endpoint"
        },
        {
          "name": "Update Contacts (Batch)",
          "value": "update-telli-contacts-batch",
          "action": "Update contacts in batch",
          "description": "Update multiple contacts using the v1 batch endpoint"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "deprecated"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list-phone-numbers-v1",
      "options": [
        {
          "name": "Delete Phone Number",
          "value": "delete-phone-number-v1",
          "action": "Delete a phone number",
          "description": "Delete a phone number"
        },
        {
          "name": "Import Phone Number",
          "value": "import-phone-number-v1",
          "action": "Import a phone number",
          "description": "Import a phone number via SIP trunk"
        },
        {
          "name": "List Phone Numbers",
          "value": "list-phone-numbers-v1",
          "action": "List phone numbers",
          "description": "List active phone numbers"
        },
        {
          "name": "Replace Phone Number",
          "value": "replace-phone-number-v1",
          "action": "Replace a phone number",
          "description": "Replace a phone number with a new one"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "phoneNumber"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Agent",
      "value": "get-agent-v2",
      "action": "Get an agent",
      "description": "Get an agent by ID",
      "resource": "agent"
    },
    {
      "name": "List Agents",
      "value": "list-agents-v2",
      "action": "List agents",
      "resource": "agent"
    },
    {
      "name": "Get Call",
      "value": "get-call-v1",
      "action": "Get a call",
      "description": "Get call details by call ID",
      "resource": "call"
    },
    {
      "name": "Initiate Call",
      "value": "initiate-call-v1",
      "action": "Initiate a call",
      "description": "Immediately initiate an outbound call",
      "resource": "call"
    },
    {
      "name": "Remove From Auto Dialer",
      "value": "remove-from-auto-dialer",
      "action": "Remove a contact from auto dialer",
      "description": "Remove a contact from the auto dialer queue",
      "resource": "call"
    },
    {
      "name": "Remove From Auto Dialer (Batch)",
      "value": "remove-from-auto-dialer-batch-v1",
      "action": "Remove contacts from auto dialer in batch",
      "resource": "call"
    },
    {
      "name": "Schedule Call",
      "value": "schedule-telli-call",
      "action": "Schedule a call with telli",
      "description": "Schedule a call with telli",
      "resource": "call"
    },
    {
      "name": "Schedule Calls (Batch)",
      "value": "schedule-calls-batch-v1",
      "action": "Schedule calls in batch",
      "description": "Schedule multiple calls in one request",
      "resource": "call"
    },
    {
      "name": "Create Contact",
      "value": "create-contact-v2",
      "action": "Create a contact",
      "description": "Create a contact using the v2 API",
      "resource": "contact"
    },
    {
      "name": "Delete Contact",
      "value": "delete-contact-v2",
      "action": "Delete a contact",
      "description": "Delete a contact using the v2 API",
      "resource": "contact"
    },
    {
      "name": "Get Contact",
      "value": "get-contact-v2",
      "action": "Get a contact",
      "description": "Get a contact by ID using the v2 API",
      "resource": "contact"
    },
    {
      "name": "Get Contact by External ID",
      "value": "get-contact-by-external-id-v2",
      "action": "Get a contact by external ID",
      "description": "Get a contact by external ID using the v2 API",
      "resource": "contact"
    },
    {
      "name": "List Contacts",
      "value": "list-contacts-v2",
      "action": "List contacts",
      "description": "List contacts using the v2 API",
      "resource": "contact"
    },
    {
      "name": "Update Contact",
      "value": "update-contact-v2",
      "action": "Update a contact",
      "description": "Update a contact using the v2 API",
      "resource": "contact"
    },
    {
      "name": "Create Contact Property",
      "value": "create-contact-property-v2",
      "action": "Create a contact property",
      "description": "Create a contact property",
      "resource": "contactProperty"
    },
    {
      "name": "Get Contact Property",
      "value": "get-contact-property-v2",
      "action": "Get a contact property",
      "description": "Get a contact property by key",
      "resource": "contactProperty"
    },
    {
      "name": "List Contact Properties",
      "value": "list-contact-properties-v2",
      "action": "List contact properties",
      "resource": "contactProperty"
    },
    {
      "name": "Update Contact Property",
      "value": "update-contact-property-v2",
      "action": "Update a contact property",
      "description": "Update a contact property",
      "resource": "contactProperty"
    },
    {
      "name": "Add Contact",
      "value": "add-telli-contact",
      "action": "Add a new contact to telli",
      "description": "Add a contact using the v1 endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Add Contacts (Batch)",
      "value": "add-telli-contacts-batch",
      "action": "Add contacts in batch",
      "description": "Add multiple contacts using the v1 batch endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Get Contact",
      "value": "get-telli-contact",
      "action": "Get a contact",
      "description": "Get a contact by ID using the v1 endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Get Contact by External ID",
      "value": "get-contact-by-external-id",
      "action": "Get contact by external ID",
      "description": "Get a contact by external ID using the v1 endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Get Contacts (Batch)",
      "value": "get-telli-contacts-batch",
      "action": "Get contacts in batch",
      "description": "Get multiple contacts using the v1 batch endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Update Contact",
      "value": "update-telli-contact",
      "action": "Update a contact in telli",
      "description": "Update a contact using the v1 endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Update Contacts (Batch)",
      "value": "update-telli-contacts-batch",
      "action": "Update contacts in batch",
      "description": "Update multiple contacts using the v1 batch endpoint",
      "resource": "deprecated"
    },
    {
      "name": "Delete Phone Number",
      "value": "delete-phone-number-v1",
      "action": "Delete a phone number",
      "description": "Delete a phone number",
      "resource": "phoneNumber"
    },
    {
      "name": "Import Phone Number",
      "value": "import-phone-number-v1",
      "action": "Import a phone number",
      "description": "Import a phone number via SIP trunk",
      "resource": "phoneNumber"
    },
    {
      "name": "List Phone Numbers",
      "value": "list-phone-numbers-v1",
      "action": "List phone numbers",
      "description": "List active phone numbers",
      "resource": "phoneNumber"
    },
    {
      "name": "Replace Phone Number",
      "value": "replace-phone-number-v1",
      "action": "Replace a phone number",
      "description": "Replace a phone number with a new one",
      "resource": "phoneNumber"
    }
  ]

npm_readme:
  # n8n-nodes-telli

  This is an n8n community node. It lets you use telli AI phone call platform in your n8n workflows.

  telli is an AI phone calling platform that lets you automate phone call operations and perform custom tasks.

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

  - [Installation](#installation)  
  - [Actions](#actions)  
  - [Credentials](#credentials)  
  - [Compatibility](#compatibility)  
  - [Usage](#usage)  
  - [Resources](#resources)  
  - [Development](#development)  

  ## Repository Structure

  - `credentials/`: Contains credential definitions
    - `TelliApi.credentials.ts`: Defines the API key authentication for telli API

  - `nodes/`: Contains the actual node implementations
    - `Telli/`: The telli node folder
      - `Telli.node.ts`: Main implementation of the telli node with all operations
      - `telli.svg`: Icon for the node in n8n

  - `dist/`: Generated folder containing compiled JavaScript code (created after running `npm run build`)

  - `package.json`: Defines package dependencies and n8n node registration information

  ## Installation

  ### Option 1: Install from npm

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

  ```bash
  npm install n8n-nodes-telli
  ```

  ### Option 2: Manual installation

  1. Clone this repository to your local machine
  2. Install dependencies: `npm install`
  3. Build the code: `npm run build`
  4. Create a custom directory in your n8n installation: `mkdir -p ~/.n8n/custom`
  5. Create a package.json file in the custom directory:
  ```json
  {
    "name": "n8n-custom-nodes",
    "version": "0.1.0",
    "private": true,
    "dependencies": {
      "n8n-nodes-telli": "file:///path/to/cloned/n8n-nodes-telli"
    }
  }
  ```
  6. Install the dependency: `cd ~/.n8n/custom && npm install`
  7. Restart n8n

  ## Actions

  The telli node provides the following operations, grouped by resource:

  ### Contact

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | Create Contact | Create a new contact with name, phone number, email, and custom properties | [Docs](https://docs.telli.com/v2/endpoint/create-contact) |
  | Get Contact | Retrieve a contact by ID | [Docs](https://docs.telli.com/v2/endpoint/get-contact) |
  | Get Contact by External ID | Retrieve a contact using your external system's ID | [Docs](https://docs.telli.com/v2/endpoint/get-contact-by-external-id) |
  | List Contacts | List contacts with pagination and optional "Return All" toggle | [Docs](https://docs.telli.com/v2/endpoint/list-contacts) |
  | Update Contact | Update an existing contact. Only provided fields are changed | [Docs](https://docs.telli.com/v2/endpoint/update-contact) |
  | Delete Contact | Soft-delete a contact and anonymize all PII data | [Docs](https://docs.telli.com/v2/endpoint/delete-contact) |

  ### Agent

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | Get Agent | Retrieve an agent by selecting from a dropdown or specifying an ID | [Docs](https://docs.telli.com/v2/endpoint/get-agent) |
  | List Agents | List agents with pagination and optional "Return All" toggle | [Docs](https://docs.telli.com/v2/endpoint/list-agents) |

  ### Call

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | Schedule Call | Schedule an AI phone call at the earliest opportunity within the dialer window | [Docs](https://docs.telli.com/endpoint/schedule-call) |
  | Schedule Calls (Batch) | Schedule multiple calls in one request (max 50 per request) | [Docs](https://docs.telli.com/endpoint/schedule-calls-batch) |
  | Get Call | Retrieve call details including transcript and analysis by call ID | [Docs](https://docs.telli.com/endpoint/get-call) |
  | Initiate Call | Immediately initiate an outbound call (not recommended — prefer Schedule Call) | [Docs](https://docs.telli.com/endpoint/initiate-call) |
  | Remove From Auto Dialer | Remove a contact from the auto dialer queue | [Docs](https://docs.telli.com/endpoint/remove-from-dialer) |
  | Remove From Auto Dialer (Batch) | Remove multiple contacts from the auto dialer queue (max 50 per request) | [Docs](https://docs.telli.com/endpoint/remove-from-dialer-batch) |

  ### Contact Property

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | Create Contact Property | Define a new custom property for contacts (text, number, select, etc.) | [Docs](https://docs.telli.com/v2/endpoint/create-contact-property) |
  | Get Contact Property | Retrieve a contact property by key | [Docs](https://docs.telli.com/v2/endpoint/get-contact-property) |
  | List Contact Properties | List all contact properties for the account | [Docs](https://docs.telli.com/v2/endpoint/list-contact-properties) |
  | Update Contact Property | Update an existing contact property's label, description, or options | [Docs](https://docs.telli.com/v2/endpoint/update-contact-property) |

  ### Phone Number

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | List Phone Numbers | List all active phone numbers for the account | [Docs](https://docs.telli.com/endpoint/list-phone-numbers) |
  | Import Phone Number | Import a phone number from your own SIP trunk provider | [Docs](https://docs.telli.com/endpoint/import-phone-number) |
  | Replace Phone Number | Replace a phone number with a new one (old number stays active for callbacks for 30 days) | [Docs](https://docs.telli.com/endpoint/replace-phone-number) |
  | Delete Phone Number | Schedule a phone number for deletion (stays active for callbacks for 30 days) | [Docs](https://docs.telli.com/endpoint/delete-phone-number) |

  ### Deprecated (v1)

  These operations use the legacy v1 API and are kept for backward compatibility with existing workflows. Use the Contact resource above for new workflows.

  | Operation | Description | API Docs |
  | --- | --- | --- |
  | Add Contact | Add a contact using the v1 endpoint | [Docs](https://docs.telli.com/endpoint/add-contact) |
  | Add Contacts (Batch) | Add multiple contacts using the v1 batch endpoint | [Docs](https://docs.telli.com/endpoint/add-contacts-batch) |
  | Get Contact | Get a contact by ID using the v1 endpoint | [Docs](https://docs.telli.com/endpoint/get-contact) |
  | Get Contact by External ID | Get a contact by external ID using the v1 endpoint | [Docs](https://docs.telli.com/endpoint/get-contact-by-external-id) |
  | Get Contacts (Batch) | Get multiple contacts using the v1 batch endpoint | [Docs](https://docs.telli.com/endpoint/get-contacts-batch) |
  | Update Contact | Update a contact using the v1 endpoint | [Docs](https://docs.telli.com/endpoint/update-contact) |
  | Update Contacts (Batch) | Update multiple contacts using the v1 batch endpoint | [Docs](https://docs.telli.com/endpoint/update-contacts-batch) |

  ## Credentials

  To use the telli nodes, you need to authenticate with the telli API:

  1. Sign up for an account at [telli.com](https://telli.com/)
  2. Navigate to your account settings
  3. Create an API key with the necessary permissions
  4. Use this API key in the telli API credentials in n8n

  ## Compatibility

  This node has been tested with n8n version 0.171.0 and higher.

  ## Usage

  ### Create Contact Example

  1. Add the telli node to your workflow
  2. Select the **Contact** resource and **Create Contact** operation
  3. Fill in the required fields (First Name, Last Name, Phone Number)
  4. Optionally add email, external ID, salutation, timezone, and custom properties
  5. Properties can be added using the field editor or as a JSON array: `[{"key": "company", "value": "Acme"}]`

  ### Schedule Call Example

  1. Add the telli node to your workflow
  2. Select the **Call** resource and **Schedule Call** operation
  3. Enter the Contact ID and select an Agent from the dropdown
  4. Optionally set max retry days and override the from number
  5. The call will be scheduled at the earliest opportunity within the agent's dialer window

  ### List Contacts with Pagination

  1. Add the telli node to your workflow
  2. Select the **Contact** resource and **List Contacts** operation
  3. Toggle **Return All** to fetch every contact, or set a **Limit** for a single page

  ### Manage Contact Properties

  1. Add the telli node to your workflow
  2. Select the **Contact Property** resource
  3. Use **Create Contact Property** to define new fields (e.g., a "Company" text field or a "Status" select field)
  4. For `select` and `multi_select` types, add options using the field editor or as JSON: `[{"value": "a", "label": "Option A"}]`

  ### Delete Contact Example

  1. Add the telli node to your workflow
  2. Select the **Contact** resource and **Delete Contact** operation
  3. Enter the Contact ID
  4. **Warning**: This soft-deletes the contact and anonymizes all PII data

  ### Remove from Auto Dialer Example

  1. Add the telli node to your workflow
  2. Select the **Call** resource and **Remove From Auto Dialer** operation
  3. Enter the Contact ID
  4. This stops the contact from receiving automated calls without deleting their data

  ## Resources

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

  ## Development

  ### Making Changes and Rebuilding Locally

  Refer to the n8n docs on how to run nodes locally: [docs](https://docs.n8n.io/integrations/creating-nodes/test/run-node-locally/)

  1. Make your changes to the code (e.g., in `nodes/Telli/Telli.node.ts`)

  2. Build the project:
  ```bash
  npm run build
  ```

  3. Copy the built files to your n8n custom directory:
  ```bash
  cp -r dist/* ~/.n8n/custom/n8n-nodes-telli/ # or wherever your custom directory is
  ```

  4. Restart n8n to see your changes:
  ```bash
  # First kill the current n8n process (Ctrl+C), then run:
  n8n start
  ```

  ### Development Workflow Tips

  - Use `npm run dev` to continuously build the code as you make changes
  - Check for linting errors with `npm run lint`
  - Format code with `npm run format`

  ### Troubleshooting

  If you don't see your changes after rebuilding and restarting n8n:

  1. Check if there are any errors in the n8n logs
  2. Verify that the files were correctly copied to the custom directory
  3. Make sure n8n was properly restarted
  4. Clear your browser cache or open n8n in an incognito window

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of AI phone call operations by interacting with the telli API to manage contacts and schedule calls.","capabilities":["Add contacts with customizable attributes","Update existing contact information","Delete contacts permanently","Remove contacts from auto-dialer queue","Schedule AI phone calls with customizable messages and questions"],"authentication":"API key required","commonUseCases":["Automated customer outreach campaigns","Appointment scheduling automation","Lead qualification via phone calls","Contact management in CRM workflows"],"limitations":["Delete operation is irreversible and cannot be undone","Requires separate telli account and API key setup","Compatible only with n8n version 0.171.0 and higher"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.webhook"]}


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

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

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

npm_readme:
  # n8n-nodes-supadata

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

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

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

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

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

  ## Installation

  Community Node Installation

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

  Manual Installation

  - To install this node manually

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

  ## Operations

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

  ## Credentials

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

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

  ## Usage

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

  ## Resources

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

  ## License

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

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


node_type: @paloaltonetworks/n8n-nodes-prisma-airs.prismaAirs
package_name: @paloaltonetworks/n8n-nodes-prisma-airs
display_name: Prisma AIRS
description: Scan AI prompts and responses for security threats using Prisma AIRS
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  {
  "type": "main"
  }
  ]

updated_at: 2026-07-14 14:40:33
author_name: btorresgil
author_github_url: https://github.com/jroberts2600/n8n-nodes-prisma-airs.git
npm_package_name: @paloaltonetworks/n8n-nodes-prisma-airs
npm_version: 0.2.2
community_fetched_at: 2026-07-14T14:40:33.227Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "promptScan",
      "options": [
        {
          "name": "Batch Scan",
          "value": "batchScan",
          "action": "Perform batch scanning of multiple items",
          "description": "Scan multiple items in a single operation (up to 5)"
        },
        {
          "name": "Dual Scan",
          "value": "dualScan",
          "action": "Perform dual scanning of prompt and response",
          "description": "Scan both prompt and response in sequence"
        },
        {
          "name": "Mask Data",
          "value": "maskData",
          "action": "Scan and mask sensitive data",
          "description": "Scan and mask sensitive data in content"
        },
        {
          "name": "Prompt Scan",
          "value": "promptScan",
          "action": "Scan a prompt for security threats",
          "description": "Scan user input/prompts for security threats"
        },
        {
          "name": "Response Scan",
          "value": "responseScan",
          "action": "Scan a response for policy violations",
          "description": "Scan AI-generated responses for policy violations"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Batch Scan",
      "value": "batchScan",
      "action": "Perform batch scanning of multiple items",
      "description": "Scan multiple items in a single operation (up to 5)"
    },
    {
      "name": "Dual Scan",
      "value": "dualScan",
      "action": "Perform dual scanning of prompt and response",
      "description": "Scan both prompt and response in sequence"
    },
    {
      "name": "Mask Data",
      "value": "maskData",
      "action": "Scan and mask sensitive data",
      "description": "Scan and mask sensitive data in content"
    },
    {
      "name": "Prompt Scan",
      "value": "promptScan",
      "action": "Scan a prompt for security threats",
      "description": "Scan user input/prompts for security threats"
    },
    {
      "name": "Response Scan",
      "value": "responseScan",
      "action": "Scan a response for policy violations",
      "description": "Scan AI-generated responses for policy violations"
    }
  ]

npm_readme:
  # Prisma AIRS n8n Community Node

  A production-ready n8n community node for integrating with Palo Alto Networks Prisma AIRS (AI Runtime Security) API. This node enables you to scan AI prompts and responses for security threats directly within your n8n workflows.

  ## Features

  - **Multiple Scan Operations**: Prompt scanning, response scanning, dual scanning, batch scanning, and data masking
  - **Batch Processing**: Scan up to 5 items in a single operation for efficiency
  - **Data Masking**: Automatically detect and mask sensitive data in content
  - **Contextual Grounding**: Validate AI responses against provided context (up to 100K characters)
  - **Dynamic Profile Selection**: Override security profiles per scan using profile name or UUID
  - **Sync & Async Support**: Both synchronous (2MB limit) and asynchronous (5MB limit) scanning
  - **Regional Support**: US, EU (Germany), India, and Custom region endpoints
  - **Flexible Profile Management**: Use API key with linked profile or specify profile name/UUID
  - **Attribution Metadata**: Automatic n8n workflow context (workflowId, workflowName, executionId, executionMode) 
  - **Production-Ready**: Comprehensive error handling, retry logic, and timeout management
  - **Security-First**: Secure credential storage and API key management
  - **Real-time Monitoring**: Async scan polling with exponential backoff

  ## Installation

  ### Prerequisites

  - n8n instance (version 1.0+)
  - Prisma AIRS API access with valid API key
  - Access to Strata Cloud Manager to configure AI security profiles

  ### For End Users

  #### Option 1: Install via n8n Community Nodes (Recommended)
  1. Open your n8n instance
  2. Go to **Settings** → **Community Nodes**
  3. Search for `prisma airs`
  4. Click **Install**
  5. Restart n8n

  #### Option 2: Install via npm
  ```bash
  npm install @paloaltonetworks/n8n-nodes-prisma-airs
  ```

  ### For Developers & Testing

  #### Local Development Setup
  1. **Clone and Build**
     ```bash
     git clone https://github.com/PaloAltoNetworks/n8n-nodes-prisma-airs.git
     cd n8n-nodes-prisma-airs
     npm install
     npm run build
     ```

  2. **Link to n8n**
     ```bash
     # For local n8n installation
     ln -s $(pwd) ~/.n8n/custom/n8n-nodes-prisma-airs
     
     # For Docker n8n - add volume mount:
     # -v /path/to/n8n-nodes-prisma-airs:/home/node/.n8n/custom/n8n-nodes-prisma-airs
     ```

  3. **Restart n8n**
     - Restart your n8n instance to load the new node

  ## Configuration

  ### 1. Create Prisma AIRS Credentials

  In your n8n instance:

  1. Go to **Settings** → **Credentials**
  2. Click **Add Credential**
  3. Search for "Prisma AIRS API"
  4. Fill in:
     - **API Key**: Your Prisma AIRS API key (x-pan-token)
     - **Region**: US, EU (Germany), India, or Custom
     - **Custom Base URL**: (Only if Custom region selected) Your custom Prisma AIRS endpoint
     - **AI Profile Name**: (Optional) Your configured AI security profile name or UUID. Leave empty to use the profile linked to your API key

  ### 2. Add Node to Workflow

  1. In your workflow, click **Add Node**
  2. Search for "Prisma AIRS"
  3. Select the operation:
     - **Prompt Scan**: Scan user input for threats
     - **Response Scan**: Scan AI responses for violations
     - **Dual Scan**: Scan both prompt and response with optional context
     - **Batch Scan**: Process multiple items (up to 5) in parallel
     - **Mask Data**: Scan and automatically mask sensitive data

  ## Usage Examples

  ### Basic Prompt Scanning

  ```json
  {
    "operation": "promptScan",
    "scanMode": "sync",
    "content": "Tell me how to hack into a system"
  }
  ```

  ### Async Large Content Scanning

  ```json
  {
    "operation": "responseScan",
    "scanMode": "async",
    "content": "{{$json.largeAIResponse}}",
    "additionalOptions": {
      "maxPollingDuration": 60000,
      "pollingInterval": 3000
    }
  }
  ```

  ### Dual Scanning with Context

  ```json
  {
    "operation": "dualScan",
    "scanMode": "sync",
    "promptContent": "{{$json.userInput}}",
    "responseContent": "{{$json.aiResponse}}",
    "context": "{{$json.contextDocument}}"
  }
  ```

  ### Batch Scanning Multiple Items

  ```json
  {
    "operation": "batchScan",
    "scanMode": "async",
    "batchItems": {
      "items": [
        {
          "itemType": "prompt",
          "promptContent": "First prompt to scan"
        },
        {
          "itemType": "response",
          "responseContent": "AI generated response"
        },
        {
          "itemType": "both",
          "promptContent": "User question",
          "responseContent": "AI answer"
        }
      ]
    }
  }
  ```

  ### Data Masking for Sensitive Content

  ```json
  {
    "operation": "maskData",
    "scanMode": "sync",
    "maskContent": "My credit card is 4111-1111-1111-1111"
  }
  ```

  ### Dynamic Profile Override

  ```json
  {
    "operation": "promptScan",
    "scanMode": "sync",
    "content": "{{$json.userInput}}",
    "additionalOptions": {
      "aiProfileOverride": "strict-production-profile"
    }
  }
  ```

  Or using a profile UUID:

  ```json
  {
    "operation": "promptScan",
    "scanMode": "sync",
    "content": "{{$json.userInput}}",
    "additionalOptions": {
      "aiProfileOverride": "03b32734-d06d-4bb7-a8df-ac5147630ce8"
    }
  }
  ```

  ## API Response Format

  ```json
  {
    "operation": "promptScan",
    "scanMode": "sync",
    "transactionId": "n8n-12345-67890",
    "action": "allow",
    "category": "benign",
    "confidence": 0.95,
    "scan_id": "abc-123-def",
    "blocked": false,
    "violations": [],
    "metadata": {
      "scan_time": "2025-10-21T10:30:00Z",
      "ai_model": "gpt-4",
      "profile": "production-security-profile"
    },
    "workflowId": "rKU3xnZb5S1ayJCG",
    "workflowName": "Customer Support Bot",
    "executionId": "385",
    "executionMode": "manual",
    "environment": "production",
    "timestamp": "2025-10-21T10:30:00Z"
  }
  ```

  ### Attribution Metadata

  The node automatically enriches all outputs with n8n workflow context for enhanced attribution and tracking:

  - **workflowId**: Unique identifier for the workflow
  - **workflowName**: Human-readable workflow name
  - **executionId**: Unique ID for this specific execution
  - **executionMode**: How the workflow was triggered (`manual`, `webhook`, `trigger`, `cli`)
  - **environment**: Optional environment identifier (if configured)

  This metadata is ideal for:
  - **AI Gateway Integration**: Pass to upstream services 
  - **Cost Attribution**: Track usage by workflow or execution
  - **Audit Trails**: Correlate security scans with workflow runs
  - **Multi-tenant Tracking**: Identify which workflows generated requests

  ## Configuration Options

  ### Required Parameters

  - **Content**: Text to scan (for single operations)
  - **Prompt Content**: Prompt text (for dual scan)
  - **Response Content**: Response text (for dual scan)
  - **Batch Items**: Array of items (for batch scan)
  - **Mask Content**: Content to mask (for mask data operation)

  ### Optional Parameters

  - **Context**: Grounding context for dual scan (up to 100K characters)
  - **AI Profile Override**: Override default profile (name or UUID)
  - **Transaction ID**: Custom tracking identifier
  - **AI Model**: Model identifier for metadata (default: 'n8n-integration')
  - **Application Name**: Source application name. Defaults to 'n8n'. If you provide a custom name (e.g., 'testapp'), it will be formatted as 'n8n-testapp'
  - **User ID**: End user identifier (default: 'n8n-user')
  - **Environment**: Optional environment tag for output tracking (e.g., 'production', 'staging', 'development')
    - Note: This field is for workflow-level tracking only and appears in the output
    - The actual environment used by Prisma AIRS is configured in Strata Cloud Manager at the application level
  - **Timeout**: Request timeout (default: 30000ms)
  - **Max Retries**: Retry attempts (default: 3, max: 6)
  - **Polling Interval**: Async polling frequency (default: 2000ms, min: 1000ms)
  - **Max Polling Duration**: Async timeout (default: 300000ms)

  ## Error Handling

  The node includes comprehensive error handling:

  - **Retry Logic**: Exponential backoff for transient failures
  - **Timeout Management**: Configurable timeouts for all operations
  - **Content Validation**: Size limits enforced (2MB sync, 5MB async)
  - **API Error Handling**: Proper HTTP status code handling
  - **Circuit Breaker**: Prevents cascading failures

  ## Testing

  ### Unit Tests

  ```bash
  npm test
  ```

  ### Integration Testing

  1. Configure valid Prisma AIRS credentials
  2. Create test workflows in n8n
  3. Test all operations (sync/async, prompt/response/dual)
  4. Validate error scenarios



  ## Development

  ### Building

  ```bash
  npm run build
  ```

  ### Linting

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

  ### Watching for Changes

  ```bash
  npm run dev
  ```

  ## Security Considerations

  - API keys are encrypted using n8n's credential system
  - No content is logged or stored by the node
  - All communication uses HTTPS/TLS
  - Proper error handling prevents information leakage

  ## Support

  For issues and questions:

  1. Check the [troubleshooting guide](https://pan.dev/prisma-airs/scan/api/)
  2. Review n8n community node documentation
  3. Contact your Prisma AIRS administrator

  ## License

  MIT License - See LICENSE file for details

  ## Contributing

  Contributions are welcome! To contribute:

  1. Fork the repository
  2. Create feature branches from `main`
  3. Test thoroughly with real Prisma AIRS API
  4. Submit pull requests for review
  5. Ensure all tests and linting pass before merging

  ## Changelog

  ### Version 0.2.1 (Upcoming)
  - **New**: AI Profile is now optional - use API key with linked profile or specify profile name/UUID
  - **New**: Smart application name formatting - defaults to 'n8n', custom names are prefixed (e.g., 'testapp' → 'n8n-testapp')
  - Credential test now validates API key connectivity without requiring profile specification

  ### Version 0.2.0
  - **New**: Automatic attribution metadata (workflowId, workflowName, executionId, executionMode) in all outputs
  - **New**: Custom region support for future Prisma AIRS deployments
  - **New**: Optional environment tag field for workflow-level tracking in outputs
  - **New**: India region support
  - **Fixed**: Better handling of UUID vs profile name in credentials
  - Fully backward compatible with v0.1.x

  ### Version 0.1.1
  - Bug fixes and stability improvements

  ### Version 0.1.0
  - Initial implementation
  - All core features implemented
  - Production-ready with comprehensive error handling
  - Support for sync/async operations
  - Regional endpoint support (US, EU)
  - Full TypeScript implementation

ai_documentation_summary:
  {"purpose":"Scans AI prompts and responses for security threats using Palo Alto Networks Prisma AIRS API within n8n workflows.","capabilities":["Prompt scanning","Response scanning","Dual scanning (prompt and response)","Batch scanning (up to 5 items)","Data masking for sensitive content","Contextual grounding (up to 100K characters)","Synchronous scanning (2MB limit)","Asynchronous scanning (5MB limit)","Dynamic profile selection via name or UUID","Regional endpoint support (US, EU, India, Custom)"],"authentication":"API Key (Prisma AIRS x-pan-token)","commonUseCases":["Security compliance for AI-generated content","Preventing prompt injection attacks","Automated data masking in AI workflows","Real-time threat detection in customer support bots","Batch processing of AI interactions for security audits"],"limitations":["Synchronous mode limited to 2MB content","Async mode limited to 5MB content","Batch operations limited to 5 items per request","Context validation limited to 100K characters","Requires Strata Cloud Manager access to configure security profiles"],"relatedNodes":["n8n HTTP Request","n8n Code Node","n8n Credential Manager"]}


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-07-14 14:40:33
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-07-14T14:40:33.228Z
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-parallel.parallel
package_name: n8n-nodes-parallel
display_name: Parallel
description: Highest accuracy web search tools for AI agents
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: janwilmake
author_github_url: https://github.com/parallel-web/paralllel-n8n-nodes.git
npm_package_name: n8n-nodes-parallel
npm_version: 0.1.0
community_fetched_at: 2026-07-14T14:40:33.229Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "webEnrichment",
      "options": [
        {
          "name": "Sync Web Enrichment",
          "value": "webEnrichment",
          "action": "Sync Web Enrichment",
          "description": "Execute a Task with the Parallel Task API and retrieve its result."
        },
        {
          "name": "Async Web Enrichment",
          "value": "asyncWebEnrichment",
          "action": "Async Web Enrichment",
          "description": "Create a Task with the Parallel Task API and retrieve its Run ID for async retrieval."
        },
        {
          "name": "Web Search",
          "value": "webSearch",
          "action": "Web Search",
          "description": "Search the web with the Parallel Search API and retrieve a list of results with excerpts."
        },
        {
          "name": "Web Chat",
          "value": "webChat",
          "action": "Web Chat",
          "description": "AI-powered chat completions API with web access (<5 seconds)"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Sync Web Enrichment",
      "value": "webEnrichment",
      "action": "Sync Web Enrichment",
      "description": "Execute a Task with the Parallel Task API and retrieve its result."
    },
    {
      "name": "Async Web Enrichment",
      "value": "asyncWebEnrichment",
      "action": "Async Web Enrichment",
      "description": "Create a Task with the Parallel Task API and retrieve its Run ID for async retrieval."
    },
    {
      "name": "Web Search",
      "value": "webSearch",
      "action": "Web Search",
      "description": "Search the web with the Parallel Search API and retrieve a list of results with excerpts."
    },
    {
      "name": "Web Chat",
      "value": "webChat",
      "action": "Web Chat",
      "description": "AI-powered chat completions API with web access (<5 seconds)"
    }
  ]

npm_readme:
  # n8n-nodes-parallel

  This is an n8n community node for [Parallel Web Systems](https://parallel.ai/) - the AI-powered web research platform. Transform your n8n workflows with intelligent data extraction, competitive analysis, lead enrichment, and automated research capabilities.

  Try Parallel in the [playground](https://platform.parallel.ai/play) before integrating into your workflows.

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

  ## Installation

  Install this community node package in n8n:

  ```bash
  npm install n8n-nodes-parallel
  ```

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

  ### Prerequisites

  1. **Get API Access**: Sign up at [platform.parallel.ai](https://platform.parallel.ai/) and generate an API key
  2. **Add Credentials**: In n8n, create new credentials of type "Parallel API" and enter your API key
  3. **Webhook Secret**: In your Parallel n8n credential, include a webhook secret (created via [Platform Settings](https://platform.parallel.ai/settings)) in order to be notified when an Async Web Enrichment Task is completed

  ## Available Nodes

  This package provides two powerful nodes for your n8n workflows:

  ### 🔍 **Parallel Node** - Multi-Purpose AI Research

  The main Parallel node offers four distinct operations:

  #### **1. Sync Web Enrichment** - [Task API](https://docs.parallel.ai/task-api/task-quickstart.md)

  Execute tasks synchronously and get immediate results (up to 5 minutes):

  - **Lead Enrichment**: Company profiles, contact information, financials
  - **Competitive Analysis**: Product features, pricing, market positioning
  - **Content Research**: Article summaries, fact-checking, data validation
  - **Market Intelligence**: Industry trends, company updates, regulatory changes

  **Available Processors**: `lite`, `base`, `core`

  #### **2. Async Web Enrichment** - [Task API](https://docs.parallel.ai/task-api/task-quickstart.md)

  Start long-running research tasks asynchronously (up to 30 minutes):

  - Complex multi-source research
  - Deep competitive intelligence
  - Comprehensive due diligence
  - Large-scale data enrichment

  **Available Processors**: `lite`, `base`, `core`, `pro`, `ultra`, `ultra2x`, `ultra4x`, `ultra8x`
  Learn about each Parallel Task API Processor [here](https://docs.parallel.ai/task-api/core-concepts/choose-a-processor).

  #### **3. Web Search** - [Search API](https://docs.parallel.ai/search-api/search-quickstart.md)

  Intelligent web search with AI-powered processing:

  - Natural language search objectives
  - Traditional keyword queries
  - Domain filtering for trusted sources
  - Structured results with excerpts and citations

  **Available Processors**: `base`, `pro`
  Learn about each Parallel Search API Processor [here](https://docs.parallel.ai/search-api/processors).

  #### **4. Web Chat**

  AI-powered chat completions with web access (< 5 seconds):

  - Real-time web-informed responses
  - Fact-checking and verification
  - Current events and news queries
  - Research-backed conversations

  Read the Parallel Chat API documentation [here](https://docs.parallel.ai/chat-api/chat-quickstart).

  ### 🔔 **Parallel Task Run Completion Trigger**

  Automatically trigger workflows when Parallel tasks complete, best paired with Async Web Enrichment:

  - **Real-time notifications**: Instant updates when async tasks finish
  - **Automatic result fetching**: Retrieves full task results automatically
  - **Webhook security**: Built-in signature validation for secure webhooks
  - **Flexible filtering**: Option to trigger only on successful completions

  Perfect for long-running research workflows where you want to process results as soon as they're ready.

  ## Key Features

  ### **Flexible Output Schemas**

  - **Text**: Single text output field with evidence and citations
  - **JSON**: [Custom structured schemas](https://docs.parallel.ai/task-api/core-concepts/specify-a-task.md) for precise data extraction
  - **Auto**: AI-optimized JSON output with nested citations (Pro+ processors only)

  ### **Research Quality & Transparency**

  Every result includes [confidence scores and evidence](https://docs.parallel.ai/task-api/core-concepts/access-research-basis.md) with source citations, so you can validate and trust your automated research.

  ### **Source Control**

  Use [source policies](https://docs.parallel.ai/features/source-policy.md) to include trusted domains (like Wikipedia, Reuters) or exclude unreliable ones.

  ### **Smart Polling & Async Support**

  - Automatically handles long-running research tasks with intelligent retry logic
  - Webhook triggers for immediate notification when async tasks complete
  - No manual polling required

  ## Quick Start Examples

  ### Example 1: Company Research Workflow

  ```text
  1. HTTP Request node → Get company domain from CRM
  2. Parallel node (Sync Web Enrichment) → Enrich company data
  3. Set node → Format results  
  4. HTTP Request node → Update CRM with enriched data
  ```

  ### Example 2: Async Research with Webhook

  ```text
  1. Parallel node (Async Web Enrichment) → Start deep research task
  2. Parallel Task Run Completion Trigger → Wait for completion
  3. Code node → Process comprehensive results
  4. Email node → Send research report
  ```

  ### Example 3: Web Search Pipeline

  ```text
  1. Manual Trigger → Input search query
  2. Parallel node (Web Search) → Search with AI processing
  3. Code node → Extract top results
  4. HTTP Request → Post to knowledge base
  ```

  ## Getting Started

  1. **Install**: `npm install n8n-nodes-parallel`
  2. **Get API Access**: Sign up at [platform.parallel.ai](https://platform.parallel.ai/) and generate an API key
  3. **Try the Playground**: Test your research tasks at [platform.parallel.ai/play](https://platform.parallel.ai/play)
  4. **Add Credentials**: Configure your API key in n8n's credential manager  
  5. **Build Workflows**: Start with simple enrichment tasks and scale to complex research pipelines

  ## Processor Selection Guide

  Choose the right processor based on your use case complexity and timing needs:

  | Processor | Latency | Max Fields | Cost | Best For |
  |-----------|---------|------------|------|----------|
  | **Lite** | 5s-60s | 2 | $5/1000 | Basic metadata, quick lookups |
  | **Base** | 15s-100s | 5 | $10/1000 | Standard enrichment, reliable data |
  | **Core** | 1-5min | 10 | $25/1000 | Cross-referenced research |
  | **Pro** | 3-9min | 20 | $100/1000 | Exploratory research, analysis |
  | **Ultra** | 5-25min | 20 | $300/1000 | Advanced multi-source research |
  | **Ultra 2x** | 5-25min | 25 | $600/1000 | Difficult research tasks |
  | **Ultra 4x** | 8-30min | 25 | $1200/1000 | Very difficult research |
  | **Ultra 8x** | 8-30min | 25 | $2400/1000 | Most complex research |

  > **Note**: Sync operations support up to Core level. Async operations support all processor levels.

  ## n8n Workflow Use Cases

  ### **Sales & CRM Automation**

  - **Lead Scoring**: Enrich incoming leads with company data, funding, employee count
  - **Account Research**: Deep dive on prospects before sales calls
  - **Contact Discovery**: Find decision-makers and their contact information
  - **Competitive Intelligence**: Monitor competitor product updates and pricing

  ### **Content & Marketing**

  - **Content Research**: Gather supporting data and citations for articles
  - **Fact-Checking**: Validate claims and statistics in real-time
  - **Trend Analysis**: Monitor industry trends and news for content ideas
  - **SEO Research**: Find trending topics and keyword opportunities

  ### **Operations & Monitoring**

  - **Vendor Research**: Evaluate potential suppliers and partners
  - **Risk Assessment**: Monitor companies for regulatory changes or news
  - **Market Intelligence**: Track industry developments and competitor moves
  - **Due Diligence**: Comprehensive background checks for business decisions

  ### **Customer Support Enhancement**

  - **Real-time Information**: Answer customer questions with current web data
  - **Documentation**: Auto-generate help articles from web research
  - **Competitive Comparisons**: Provide accurate competitor information

  ## Advanced Configuration

  ### Webhook Setup for Async Tasks

  When using async enrichment with the trigger node:

  1. Add a **Parallel Task Run Completion Trigger** to your workflow
  2. Copy the webhook URL from the trigger node
  3. In the **Parallel node** (Async Web Enrichment), paste the URL in the "Webhook URL" field
  4. Enable "Validate Webhook Signatures" for security (recommended)

  ### JSON Schema Examples

  For structured data extraction, use JSON schemas in the output configuration:

  ```json
  {
    "type": "object",
    "properties": {
      "company_name": {
        "type": "string", 
        "description": "Official company name from recent filings or website."
      },
      "ceo_name": {
        "type": "string",
        "description": "Current CEO full name from company website or recent news."
      },
      "employee_count": {
        "type": "string", 
        "description": "Number of employees as range (e.g., '500-1000') or exact number."
      }
    },
    "required": ["company_name", "ceo_name", "employee_count"],
    "additionalProperties": false
  }
  ```

  ### Source Policies

  Control which websites are used for research:

  - **Include domains**: `wikipedia.org, reuters.com, bloomberg.com`
  - **Exclude domains**: `reddit.com, quora.com`

  ## Resources

  - [Parallel Documentation](https://docs.parallel.ai/)
  - [Task API Quickstart](https://docs.parallel.ai/task-api/task-quickstart.md)
  - [Search API Quickstart](https://docs.parallel.ai/search-api/search-quickstart.md)
  - [Processor Selection Guide](https://docs.parallel.ai/task-api/core-concepts/choose-a-processor.md)
  - [Understanding Task Specifications](https://docs.parallel.ai/task-api/core-concepts/specify-a-task.md)
  - [Webhook Configuration](https://docs.parallel.ai/task-api/features/webhooks)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)

  ## Support & Community

  - **Issues**: [GitHub Issues](https://github.com/parallel-web/parallel-n8n-nodes/issues)
  - **Documentation**: [docs.parallel.ai](https://docs.parallel.ai/)
  - **Platform**: [platform.parallel.ai](https://platform.parallel.ai/)

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"A community n8n node that integrates with Parallel Web Systems to perform AI-powered web research, including lead enrichment, competitive analysis, and intelligent web search.","capabilities":["Sync Web Enrichment for immediate results","Async Web Enrichment for long-running complex research","AI-powered web search with natural language processing","Web Chat for real-time, web-informed responses","Lead enrichment (company profiles, contacts, financials)","Competitive analysis (product features, pricing, market positioning)","Content research (summaries, fact-checking, data validation)","Market intelligence (trends, regulatory changes)","Custom JSON schema output","Webhook-based task completion triggers"],"authentication":"API key required (entered in n8n credentials)","commonUseCases":["Automated lead enrichment and CRM updates","Competitive intelligence gathering","Market research and trend analysis","Real-time fact-checking and verification","Automated research reporting via email"],"limitations":["Sync Web Enrichment has a maximum execution time of 5 minutes","Async Web Enrichment has a maximum execution time of 30 minutes","Web Chat responses take less than 5 seconds but may be limited by API rate limits","Some advanced features like Auto JSON output require Pro+ processors","Processor availability varies by operation (e.g., 'pro' processor not available for Sync Web Enrichment)"],"relatedNodes":["HTTP Request","Set","Code","Email","Manual Trigger"]}


node_type: n8n-nodes-visualping.visualpingTrigger
package_name: n8n-nodes-visualping
display_name: Visualping Trigger
description: Triggers workflow on Visualping job events
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: ccomparon
author_github_url: https://github.com/webmonitoring/
npm_package_name: n8n-nodes-visualping
npm_version: 1.0.2
community_fetched_at: 2026-07-14T14:40:33.230Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-visualping

  This is an n8n community node that integrates [Visualping](https://visualping.io) with your n8n workflows, allowing you to trigger workflows when website changes are detected.

  [Visualping](https://visualping.io) is a web monitoring service that tracks changes on websites and sends notifications, while [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform that allows you to connect various services.

  ## Table of contents

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

  ## Installation

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

  ## Operations

  This node provides a trigger operation for Visualping.

  ### Triggers
  - **Visualping Trigger**: Automatically starts an n8n workflow when a Visualping job detects changes on a monitored website
    - Configure webhook notifications for specific Visualping jobs
    - Receive change detection events in real-time
    - Supports job selection from list or by ID

  ## Credentials

  To use this node, you need to authenticate with your Visualping account:

  1. **Email and Password Authentication**
     - Configure your Visualping account credentials in the n8n credentials section under `Visualping Credentials API`
     - Provide your Visualping account email and password

  ## Compatibility

  This node has been tested with n8n version 1.57.0 and requires Node.js version 20.15 or higher.

  ## Usage

  1. **Create a Visualping Job**: Set up a new monitoring job on [Visualping](https://visualping.io) to track changes on your target website.
  2. **Set up a workflow**: Create a new workflow in n8n.
  3. **Add the Visualping Trigger node**: Insert the Visualping Trigger node into your workflow.
  4. **Configure credentials**: Enter your Visualping account email and password.
  5. **Select a job**: Choose the Visualping job you want to monitor for changes.
  6. **Configure the trigger**: The node will automatically set up webhook notifications for the selected job.
  7. **Execute the workflow**: The workflow will trigger whenever Visualping detects changes on the monitored website.

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Visualping API Documentation](https://api.visualping.io/doc.html)
  - [Visualping Authentication Guide](https://api.visualping.io/doc.html#section/Authentication)

  ## Version history

  Track changes and updates to the node here.

  ## Troubleshooting

  ### Common issues

  1. **Authentication errors**
     - Verify your Visualping email and password are correct
     - Ensure your Visualping account is active

  2. **Job not found**
     - Verify the job ID format (should be numeric)
     - Check if the job exists in your Visualping account
     - Ensure you have access to the job

  3. **Webhook configuration issues**
     - Check that your n8n instance is accessible from the internet
     - Verify the webhook URL is correctly configured
     - Review Visualping job settings for webhook notifications

  ### Getting help

  If you encounter issues:
  1. Check the [Visualping API documentation](https://api.visualping.io/doc.html)
  2. Review the [n8n Community Nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  3. Open an issue in the [GitHub repository](https://github.com/webmonitoring/n8n-nodes-visualping)

ai_documentation_summary:
  {"purpose":"Triggers an n8n workflow automatically when Visualping detects changes on a monitored website.","capabilities":["Starts n8n workflow on Visualping job events","Receives change detection events in real-time","Supports job selection by ID or from a list","Configures webhook notifications for specific Visualping jobs"],"authentication":"Email and Password","commonUseCases":["Website change monitoring","Real-time alerts for content updates","Automated responses to site modifications"],"limitations":["Requires n8n version 1.57.0 or higher","Requires Node.js version 20.15 or higher","Requires active Visualping account with access to the monitored job"],"relatedNodes":["n8n-nodes-visualping.visualpingJob","n8n-nodes-visualping.visualpingJobList","n8n-nodes-visualping.visualpingJobStatus"]}


node_type: n8n-nodes-taddy.taddyApi
package_name: n8n-nodes-taddy
display_name: Taddy API
description: Interact with Taddy Podcast API - Search 4M+ podcasts and 180M+ episodes
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: jksr194
author_github_url: https://github.com/Julian194/n8n-taddy.git
npm_package_name: n8n-nodes-taddy
npm_version: 0.1.2
community_fetched_at: 2026-07-14T14:40:33.231Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Episode",
          "value": "episode"
        },
        {
          "name": "Latest Episode",
          "value": "latest"
        },
        {
          "name": "Podcast",
          "value": "podcast"
        },
        {
          "name": "Popular Content",
          "value": "popular"
        },
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Top Chart",
          "value": "topCharts"
        },
        {
          "name": "Transcript",
          "value": "transcript"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchContent",
      "options": [
        {
          "name": "Search",
          "value": "searchContent",
          "action": "Search podcasts and episodes",
          "description": "Search across podcasts, episodes, comics, and creators"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDetails",
      "options": [
        {
          "name": "Get",
          "value": "getDetails",
          "action": "Get a podcast",
          "description": "Get detailed information about a specific podcast"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "podcast"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getDetails",
      "options": [
        {
          "name": "Get",
          "value": "getDetails",
          "action": "Get an episode",
          "description": "Get detailed information about a specific episode"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "episode"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getPopular",
      "options": [
        {
          "name": "Get",
          "value": "getPopular",
          "action": "Get popular podcasts",
          "description": "Get popular/trending podcasts"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "popular"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getLatest",
      "options": [
        {
          "name": "Get",
          "value": "getLatest",
          "action": "Get latest episodes",
          "description": "Get latest episodes from multiple podcasts"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "latest"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTranscript",
      "options": [
        {
          "name": "Get",
          "value": "getTranscript",
          "action": "Get a transcript",
          "description": "Get transcript for a specific episode"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "transcript"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getByCountry",
      "options": [
        {
          "name": "Get by Country",
          "value": "getByCountry",
          "action": "Get top charts by country",
          "description": "Get Apple Podcasts top charts by country"
        },
        {
          "name": "Get by Genre",
          "value": "getByGenres",
          "action": "Get top charts by genre",
          "description": "Get Apple Podcasts top charts by genre"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "topCharts"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search",
      "value": "searchContent",
      "action": "Search podcasts and episodes",
      "description": "Search across podcasts, episodes, comics, and creators",
      "resource": "search"
    },
    {
      "name": "Get",
      "value": "getDetails",
      "action": "Get a podcast",
      "description": "Get detailed information about a specific podcast",
      "resource": "podcast"
    },
    {
      "name": "Get",
      "value": "getDetails",
      "action": "Get an episode",
      "description": "Get detailed information about a specific episode",
      "resource": "episode"
    },
    {
      "name": "Get",
      "value": "getPopular",
      "action": "Get popular podcasts",
      "description": "Get popular/trending podcasts",
      "resource": "popular"
    },
    {
      "name": "Get",
      "value": "getLatest",
      "action": "Get latest episodes",
      "description": "Get latest episodes from multiple podcasts",
      "resource": "latest"
    },
    {
      "name": "Get",
      "value": "getTranscript",
      "action": "Get a transcript",
      "description": "Get transcript for a specific episode",
      "resource": "transcript"
    },
    {
      "name": "Get by Country",
      "value": "getByCountry",
      "action": "Get top charts by country",
      "description": "Get Apple Podcasts top charts by country",
      "resource": "topCharts"
    },
    {
      "name": "Get by Genre",
      "value": "getByGenres",
      "action": "Get top charts by genre",
      "description": "Get Apple Podcasts top charts by genre",
      "resource": "topCharts"
    }
  ]

npm_readme:
  # n8n-nodes-taddy

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

  Taddy provides access to over 4 million podcasts and 180+ million episodes through a comprehensive GraphQL API. Search for podcast content, get detailed podcast and episode information, discover popular content, find latest episodes, and access transcripts.

  [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 package name: `n8n-nodes-taddy`

  ## Operations

  ### Search Content
  - **Full-text search** across podcasts and episodes with advanced filtering
  - **Field selection** - Choose which data fields to include in results
  - **Content type filtering** - Search podcasts, episodes, or both
  - **Advanced filters** - Language, country, genre, date ranges, duration, and more
  - **Exclude terms** - Exclude specific terms from search results
  - **Sorting options** - Sort by popularity or exactness
  - **Match types** - Exact phrase, all terms, or most terms matching

  ### Podcast Details
  - Get detailed podcast information by UUID, name, iTunes ID, or RSS URL
  - Includes episode list, metadata, genres, and statistics

  ### Episode Details
  - Get detailed episode information by UUID, GUID, or name
  - Includes podcast series information, transcript data, and chapters

  ### Popular Content
  - Discover trending podcasts with optional language and genre filtering
  - Pagination support for browsing popular content

  ### Latest Episodes
  - Get recent episodes from specific podcasts or RSS feeds
  - Filter by podcast UUIDs or RSS URLs with pagination

  ### Transcript
  - Retrieve episode transcripts in multiple formats (text, SRT, VTT, JSON)
  - Support for on-demand transcript generation

  ### Top Charts
  - Get Apple Podcasts top charts by country with filtering options
  - Get top charts by genre with optional country filtering
  - Support for both podcast series and episode content types

  ## Credentials

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

  ### Prerequisites
  1. Sign up for a Taddy API account at [taddy.org](https://taddy.org)
  2. Obtain your API credentials from the Taddy dashboard

  ### Setting up credentials in n8n
  1. In n8n, go to **Settings** > **Credentials**
  2. Click **Create New** and search for "Taddy API"
  3. Enter your credentials:
     - **X-USER-ID**: Your Taddy user identifier
     - **X-API-KEY**: Your Taddy API key
  4. Test the connection and save

  ### Authentication Method
  The node uses header-based authentication, automatically adding the required `X-USER-ID` and `X-API-KEY` headers to all API requests.

  ## Compatibility

  - **Minimum n8n version**: 0.174.0
  - **Tested with**: n8n 0.174.0 - 1.0.0+
  - **Node.js version**: 16+ (matches n8n requirements)

  This node follows n8n community node standards and should be compatible with all modern n8n versions.

  ## Usage

  ### Basic Search Example
  1. Add the Taddy API node to your workflow
  2. Select **Search Content** operation
  3. Enter a search term (e.g., "technology podcasts")
  4. Configure optional filters like language or date range
  5. Choose which fields to include in the response
  6. Execute to get search results with metadata

  ### Working with Results
  - **Search results** include pagination metadata as the first item for easy access to `totalCount` and `pagesCount`
  - **Episode results** automatically include podcast series information (name, UUID) by default
  - **Field selection** is content-type aware - episode-only fields are filtered out for podcast searches

  ### Advanced Features
  - **Exclude terms**: Use the dedicated "Exclude Terms" field to filter out unwanted content
  - **Response fields**: Select only the data fields you need to optimize response size
  - **Pagination**: Use the metadata from search results to implement pagination workflows
  - **Date filtering**: Supports precise date ranges with automatic epoch timestamp conversion

  ### Common Workflows
  - **Content Discovery**: Search → Filter → Extract podcast information for subscriptions
  - **Content Analysis**: Search with transcripts → Get transcript → Analyze content
  - **Monitoring**: Search for specific topics → Check for new episodes → Send notifications
  - **Trend Analysis**: Get top charts by country/genre → Track popular podcast trends

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Taddy API Documentation](https://taddy.org) - Official API documentation and guides
  * [GraphQL API Reference](https://taddy.org/developers/graphql) - Complete API schema and examples
  * [Node Testing Guide](./docs/testing-guide.md) - Comprehensive testing procedures for this node

  ## Version History


  ### 0.1.2 (2025-07-29)
  - Repository Url fixed

  ### 0.1.1 (2025-07-29)
  - n8n guidelines checklist
  ### 0.1.0 (Initial Release)
  - Full Taddy API integration with 7 resource types
  - Advanced search with field selection and filtering
  - Podcast and episode detail operations
  - Popular content discovery
  - Latest episodes retrieval
  - Transcript access with multiple formats
  - Top charts by country and genre
  - Comprehensive error handling and validation
  - Production-ready with extensive testing coverage

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the Taddy Podcast API to search millions of podcasts and episodes, retrieve detailed content information, access transcripts, and discover trending content.","capabilities":["Full-text search across podcasts and episodes with advanced filtering","Field selection to optimize response data","Search by content type (podcast, episode, or both)","Filter by language, country, genre, date ranges, and duration","Exclude specific terms from search results","Sort results by popularity or exactness","Retrieve podcast details by UUID, name, iTunes ID, or RSS URL","Retrieve episode details including transcripts and chapters","Discover trending podcasts with pagination","Retrieve latest episodes from podcasts or RSS feeds"],"authentication":"API key required (X-USER-ID and X-API-KEY headers)","commonUseCases":["Content discovery and podcast subscription management","Content analysis using episode transcripts","Monitoring new episodes for specific topics","Trend analysis of popular podcast content"],"limitations":["Community node (not official n8n node)","Requires separate Taddy API account and credentials"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-http-request","n8n-nodes-ai-text-to-speech"]}


node_type: n8n-nodes-webmetic.webmetic
package_name: n8n-nodes-webmetic
display_name: Webmetic
description: Get company visits data from Webmetic with date range filtering
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: webmetic
author_github_url: https://github.com/webmetic-gmbh/
npm_package_name: n8n-nodes-webmetic
npm_version: 0.4.1
community_fetched_at: 2026-07-14T14:40:33.232Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "newVisits",
      "options": [
        {
          "name": "New Visits",
          "value": "newVisits",
          "description": "Get companies that have visited a domain for the first time"
        },
        {
          "name": "Intensive Visits",
          "value": "intensiveVisits",
          "description": "Get companies that have had intensive visits to a domain"
        },
        {
          "name": "Returning Visits",
          "value": "returningVisits",
          "description": "Get companies that have visited a domain multiple times"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get new visits",
          "routing": {
            "request": {
              "url": "/new-visits",
              "method": "GET"
            }
          },
          "description": "Get a list of companies that have visited the specified domain for the first time"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "newVisits"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get intensive visits",
          "routing": {
            "request": {
              "url": "/intensive-visits",
              "method": "GET"
            }
          },
          "description": "Get a list of companies that have had intensive visits to the specified domain"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "intensiveVisits"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get returning visits",
          "routing": {
            "request": {
              "url": "/returning-visits",
              "method": "GET"
            }
          },
          "description": "Get a list of companies that have visited the specified domain multiple times"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "returningVisits"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get",
      "value": "get",
      "action": "Get new visits",
      "routing": {
        "request": {
          "url": "/new-visits",
          "method": "GET"
        }
      },
      "description": "Get a list of companies that have visited the specified domain for the first time",
      "resource": "newVisits"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get intensive visits",
      "routing": {
        "request": {
          "url": "/intensive-visits",
          "method": "GET"
        }
      },
      "description": "Get a list of companies that have had intensive visits to the specified domain",
      "resource": "intensiveVisits"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get returning visits",
      "routing": {
        "request": {
          "url": "/returning-visits",
          "method": "GET"
        }
      },
      "description": "Get a list of companies that have visited the specified domain multiple times",
      "resource": "returningVisits"
    }
  ]

npm_readme:
  # n8n-nodes-webmetic

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

  [Webmetic](https://webmetic.de) provides company visitor tracking data for sales and marketing teams.

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

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

  ## Installation

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

  ## Operations

  * **New Visits**
    * Get: Retrieve a list of companies that have visited a specified domain for the first time
  * **Intensive Visits**
    * Get: Retrieve a list of companies that have had intensive visits to a specified domain
  * **Returning Visits**
    * Get: Retrieve a list of companies that have visited a specified domain multiple times

  ## Credentials

  To use this node, you need:

  1. A Webmetic API key - Get yours from [Webmetic](https://webmetic.de)
  2. Configure the API key in n8n's credentials

  ## Compatibility

  * Requires n8n version 0.172.0 or later
  * Tested with n8n version 1.0.0+

  ## Usage

  1. Add the Webmetic node to your workflow
  2. Create new Webmetic API credentials:
     - Enter your API key (starts with `wmtc_`)
  3. Configure the node:
     - Select "New Visits", "Intensive Visits", or "Returning Visits" as the resource
     - Select "Get" as the operation
     - Enter the domain you want to track (e.g., `example.com`)
     - Optional: Configure additional fields for date filtering:
       - **From Date**: Start date or relative time period (default: "-30 days")
       - **To Date**: End date or "now" for current date (default: "now")
  4. Execute the node to retrieve company visitor data

  The node returns valuable sales intelligence about companies and their visiting behavior on your domain.

  ### Date Format Examples:
  - **Relative times**: `-30 days`, `-12 hours`, `-45 minutes`, `-7 days`
  - **Absolute dates**: `2023-01-01`, `2023-12-31`  
  - **Current**: `now`
  - **Minutes**: `-15 minutes`, `-30 minutes`, `-90 minutes`

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Webmetic API documentation](https://hub.webmetic.de/docs)

ai_documentation_summary:
  {"purpose":"Retrieves company visitor tracking data from Webmetic for sales and marketing teams, including new, intensive, and returning visits to specified domains.","capabilities":["Retrieve new company visits to a domain","Retrieve companies with intensive visits to a domain","Retrieve companies with multiple returning visits to a domain","Filter results by date range using relative times or absolute dates","Return company visitor data as JSON"],"authentication":"API key required","commonUseCases":["Sales intelligence gathering","Marketing campaign tracking","Lead generation from domain visits","Competitor analysis via visitor data"],"limitations":["Requires valid Webmetic API key","Requires n8n version 0.172.0 or later","Data access depends on Webmetic API availability and permissions"],"relatedNodes":["n8n-nodes-webmetic.webmetic","n8n-nodes-http.request","n8n-nodes-webhook"]}


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

updated_at: 2026-07-14 14:40:33
author_name: bruno-farias-ar
author_github_url: https://github.com/pdfgeneratorapi/n8n-nodes-pdf-generator-api.git
npm_package_name: @pdfgeneratorapi/n8n-nodes-pdf-generator-api
npm_version: 0.4.0
community_fetched_at: 2026-07-14T14:40:33.233Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Generate PDFs, manage templates, convert HTML/URLs to PDF, and perform PDF operations like watermarking, encryption, and optimization

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

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

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

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

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

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

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

  ## Installation

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

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

  ## Operations

  This node supports the following operations organized by resource:

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

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

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

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

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

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

  ## Credentials

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

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

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

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

  ## Compatibility

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

  ## Usage

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

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

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

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

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

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

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

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

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

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

  ## Resources

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

  ## Version history

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

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

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

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

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

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

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

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


node_type: n8n-nodes-winston-ai.winstonAi
package_name: n8n-nodes-winston-ai
display_name: Winston AI
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: philippe_vincent_dev
author_github_url: https://github.com/gowinston-ai/winston-ai-n8n.git
npm_package_name: n8n-nodes-winston-ai
npm_version: 1.0.8
community_fetched_at: 2026-07-14T14:40:33.234Z
ai_summary_generated_at: 2026-03-25 22:51:43
description:
  AI detector with industry leading accuracy rates in detecting use of AI in text and images. The Winston AI tools also offers a robust plagiarism checker to help maintain integrity.

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "aiTextDetection",
      "options": [
        {
          "name": "AI Text Detection",
          "value": "aiTextDetection"
        },
        {
          "name": "AI Image Detection",
          "value": "aiImageDetection"
        },
        {
          "name": "Plagiarism",
          "value": "plagiarism"
        },
        {
          "name": "Text Compare",
          "value": "textCompare"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scan-ai-text",
      "options": [
        {
          "name": "Scan AI Generated Text",
          "value": "scan-ai-text",
          "action": "Scan AI generated text",
          "routing": {
            "request": {
              "url": "/v2/ai-content-detection",
              "method": "POST"
            }
          },
          "description": "Analyze text to detect AI-generated content. The Human Score we give is a metric used by Winston AI to estimate the likelihood that a given piece of content was generated by an AI tool versus being written by a human."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiTextDetection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scan-ai-image",
      "options": [
        {
          "name": "Scan AI Generated Image",
          "value": "scan-ai-image",
          "action": "Scan AI generated image",
          "routing": {
            "request": {
              "url": "/v2/image-detection",
              "method": "POST"
            }
          },
          "description": "Our image detection feature enables AI-generated image detection by verifying image metadata and using a machine learning system trained to differentiate between human and AI-generated images"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "aiImageDetection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scan-plagiarism",
      "options": [
        {
          "name": "Scan for Plagiarism",
          "value": "scan-plagiarism",
          "action": "Scan for plagiarism",
          "routing": {
            "request": {
              "url": "/v2/plagiarism",
              "method": "POST"
            }
          },
          "description": "Winston AI’s plagiarism API is a powerful tool designed to check text for plagiarism by scouring the internet for similar content. It queries multiple websites and compares the input text with the content found on these websites. This can be particularly useful in academic settings, content creation, legal scenarios or any other situation where originality of content is required."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "plagiarism"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "compare-texts",
      "options": [
        {
          "name": "Compare Texts",
          "value": "compare-texts",
          "action": "Compare texts",
          "routing": {
            "request": {
              "url": "/v2/text-compare",
              "method": "POST"
            }
          },
          "description": "Compare two texts to find similarities and differences between them. This endpoint analyzes both texts and returns detailed information about matching content, word counts, and similarity scores."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "textCompare"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Scan AI Generated Text",
      "value": "scan-ai-text",
      "action": "Scan AI generated text",
      "routing": {
        "request": {
          "url": "/v2/ai-content-detection",
          "method": "POST"
        }
      },
      "description": "Analyze text to detect AI-generated content. The Human Score we give is a metric used by Winston AI to estimate the likelihood that a given piece of content was generated by an AI tool versus being written by a human.",
      "resource": "aiTextDetection"
    },
    {
      "name": "Scan AI Generated Image",
      "value": "scan-ai-image",
      "action": "Scan AI generated image",
      "routing": {
        "request": {
          "url": "/v2/image-detection",
          "method": "POST"
        }
      },
      "description": "Our image detection feature enables AI-generated image detection by verifying image metadata and using a machine learning system trained to differentiate between human and AI-generated images",
      "resource": "aiImageDetection"
    },
    {
      "name": "Scan for Plagiarism",
      "value": "scan-plagiarism",
      "action": "Scan for plagiarism",
      "routing": {
        "request": {
          "url": "/v2/plagiarism",
          "method": "POST"
        }
      },
      "description": "Winston AI’s plagiarism API is a powerful tool designed to check text for plagiarism by scouring the internet for similar content. It queries multiple websites and compares the input text with the content found on these websites. This can be particularly useful in academic settings, content creation, legal scenarios or any other situation where originality of content is required.",
      "resource": "plagiarism"
    },
    {
      "name": "Compare Texts",
      "value": "compare-texts",
      "action": "Compare texts",
      "routing": {
        "request": {
          "url": "/v2/text-compare",
          "method": "POST"
        }
      },
      "description": "Compare two texts to find similarities and differences between them. This endpoint analyzes both texts and returns detailed information about matching content, word counts, and similarity scores.",
      "resource": "textCompare"
    }
  ]

npm_readme:
  # n8n-nodes-winston-ai ⚡️

  [![CI](https://github.com/gowinston-ai/winston-ai-n8n/actions/workflows/CI.yml/badge.svg)](https://github.com/gowinston-ai/winston-ai-n8n/actions/workflows/CI.yml)
  ![TypeScript](https://img.shields.io/badge/code-TypeScript-blue?logo=typescript)

  This is an n8n community node that lets you access all Winston AI analysis endpoints in your n8n workflows.

  [Winston AI](https://gowinston.ai/) provides industry-leading tools to:

  * Detect whether a text was generated by AI or written by a human
  * Detect AI-generated images
  * Scan content for plagiarism on the public web
  * Compare two texts for similarity

  [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 n8n [community-nodes installation guide](https://docs.n8n.io/integrations/community-nodes/installation/)


  ## Operations 🕹️

  | Resource           | Operation (value)      | Description |
  |--------------------|------------------------|-------------|
  | AI Text Detection  | Scan AI generated text (`scan-ai-text`) | Analyse a text and return Winston AI’s *Human Score* plus optional sentence-level scores. |
  | AI Image Detection | Scan AI generated image (`scan-ai-image`) | Determine the likelihood that an image was generated by AI, plus metadata such as EXIF, MIME type and watermark detection. |
  | Plagiarism         | Scan for plagiarism (`scan-plagiarism`) | Check text for plagiarism by searching the web for matching content. Optional language / country filtering and source exclusion supported. |
  | Text Compare       | Compare texts (`compare-texts`) | Compare two texts and return a similarity score and detailed match information. |

  ## Credentials 🔐

  The node requires a Winston AI API key.

  1. Sign in to the [Winston AI dashboard](https://dev.gowinston.ai/) and generate an API key.
  2. In n8n, create new **Winston AI API** credentials:
     * Field **API Key** → paste your key.
  3. Use these credentials in any Winston AI node. The key will be sent in the `Authorization` header as `Bearer <token>`.

  ## Compatibility

  * Minimum n8n version: **1.0.0** (tested on 1.24)
  * Requires Node.js **≥ 20.15**

  ## Usage 📊

  1. Add the **Winston AI** node to your workflow.
  2. Choose a *Resource* and *Operation*.
  3. Configure the mandatory fields (e.g. *Text*, *Image URL*, *First Text*, *Second Text*).
  4. Execute the node. The JSON response from the Winston AI API is returned in the output data.

  Example: Detect AI-generated text
  ```text
  Resource: AI Text Detection
  Operation: Scan AI generated text
  Text: "This paragraph was written by ChatGPT…"
  → Returns score, sentence-level analysis, attack detection flags, credits info, etc.
  ```

  ## Resources

  * Winston AI API Docs: 
    * [AI text detection](https://docs.gowinston.ai/api-reference/v2/ai-content-detection/post)
    * [AI image detection](https://docs.gowinston.ai/api-reference/v2/image-detection/post)
    * [Plagiarism](https://docs.gowinston.ai/api-reference/v2/plagiarism/post)
    * [Text compare](https://docs.gowinston.ai/api-reference/v2/text-compare/post)
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)

  ## Version history

  | Version | Date       | Notes |
  |---------|------------|-------|
  | 1.0.0   | 2025-07-25 | Initial release with text detection, image detection, plagiarism scan and text compare. |

ai_documentation_summary:
  {"purpose":"Analyze text, images, and content for AI generation, plagiarism, and similarity using Winston AI's industry-leading detection tools.","capabilities":["Detect AI-generated text with human score and sentence-level analysis","Detect AI-generated images with EXIF, MIME type, and watermark analysis","Scan text for plagiarism against the public web","Compare two texts for similarity with detailed match information","Return attack detection flags and credits information"],"authentication":"API key required (Bearer token in Authorization header)","commonUseCases":["Verify if content was written by AI or a human","Ensure image authenticity in content moderation","Check for plagiarism in academic or professional writing","Compare document similarity for duplicate detection"],"limitations":["Requires Winston AI API key for all operations","Requires Node.js version 20.15 or higher","Minimum n8n version is 1.0.0 (tested on 1.24)"],"relatedNodes":["HTTP Request","Credentials (Winston AI API)"]}


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

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

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

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

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

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

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

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

  ---

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

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

  ---

  ## Installation (quick installation)

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

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

  ---

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

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

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

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

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

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


node_type: @deutschlandgpt/n8n-nodes-deutschlandgpt.deutschlandgpt
package_name: @deutschlandgpt/n8n-nodes-deutschlandgpt
display_name: DeutschlandGPT
description: Work with the DeutschlandGPT API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: alexanderberkov
author_github_url: https://github.com/deutschlandgpt/deutschlandgpt-n8n.git
npm_package_name: @deutschlandgpt/n8n-nodes-deutschlandgpt
npm_version: 0.1.2
community_fetched_at: 2026-07-14T14:40:33.236Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Model",
          "value": "model"
        },
        {
          "name": "Chat",
          "value": "chat"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "fetch_models",
      "options": [
        {
          "name": "Fetch Models",
          "value": "fetch_models",
          "action": "Fetch models",
          "routing": {
            "request": {
              "url": "v1/models",
              "method": "GET"
            }
          },
          "description": "Fetch Models from DeutschlandGPT"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "model"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "send_chat_message",
      "options": [
        {
          "name": "Send Chat Message",
          "value": "send_chat_message",
          "action": "Send chat message",
          "routing": {
            "request": {
              "url": "v1/chat/completions",
              "body": {
                "model": "={{$parameter[\"model\"]}}",
                "messages": [
                  {
                    "role": "user",
                    "content": "={{$parameter[\"user_message\"]}}"
                  }
                ]
              },
              "json": true,
              "method": "POST"
            }
          },
          "description": "Send a message to the chat"
        },
        {
          "name": "Send Chat Message with System Prompt",
          "value": "send_chat_message_with_system_prompt",
          "action": "Send chat message with system prompt",
          "routing": {
            "request": {
              "url": "v1/chat/completions",
              "body": {
                "model": "={{$parameter[\"model\"]}}",
                "messages": [
                  {
                    "role": "system",
                    "content": "={{$parameter[\"system_prompt\"]}}"
                  },
                  {
                    "role": "user",
                    "content": "={{$parameter[\"user_message\"]}}"
                  }
                ]
              },
              "json": true,
              "method": "POST"
            }
          },
          "description": "Send a message to the chat with a system prompt"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Fetch Models",
      "value": "fetch_models",
      "action": "Fetch models",
      "routing": {
        "request": {
          "url": "v1/models",
          "method": "GET"
        }
      },
      "description": "Fetch Models from DeutschlandGPT",
      "resource": "model"
    },
    {
      "name": "Send Chat Message",
      "value": "send_chat_message",
      "action": "Send chat message",
      "routing": {
        "request": {
          "url": "v1/chat/completions",
          "body": {
            "model": "={{$parameter[\"model\"]}}",
            "messages": [
              {
                "role": "user",
                "content": "={{$parameter[\"user_message\"]}}"
              }
            ]
          },
          "json": true,
          "method": "POST"
        }
      },
      "description": "Send a message to the chat",
      "resource": "chat"
    },
    {
      "name": "Send Chat Message with System Prompt",
      "value": "send_chat_message_with_system_prompt",
      "action": "Send chat message with system prompt",
      "routing": {
        "request": {
          "url": "v1/chat/completions",
          "body": {
            "model": "={{$parameter[\"model\"]}}",
            "messages": [
              {
                "role": "system",
                "content": "={{$parameter[\"system_prompt\"]}}"
              },
              {
                "role": "user",
                "content": "={{$parameter[\"user_message\"]}}"
              }
            ]
          },
          "json": true,
          "method": "POST"
        }
      },
      "description": "Send a message to the chat with a system prompt",
      "resource": "chat"
    }
  ]

npm_readme:
  # n8n-nodes-deutschlandgpt

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

  DeutschlandGPT is an AI Platform where different LLMs can be used GDPR compliant without risks of losing data.

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

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

  ## Installation

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

  ## Operations

  - Fetch Models: Query all available models in the DeutschlandGPT API.
  - Send Chat Message: Send a chat message to a certain model.
  - Send Chat Message with System Prompt: Send a chat message to a certain model with a defined system prompt.

  ## Credentials

  To register the node you'll need an API Key. You can create an API Key at the [DeutschlandGPT Platform](https://platform.deutschlandgpt.de/). For this you'll need to sign up and provide a payment method. You can then set up the credentials inside of n8n.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [DeutschlandGPT documentation](https://platform.deutschlandgpt.de/docs)

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with the DeutschlandGPT API to interact with GDPR-compliant LLMs in workflow automation.","capabilities":["Fetch available models from the API","Send chat messages to specific models","Send chat messages with custom system prompts"],"authentication":"API key required (must be obtained from DeutschlandGPT Platform with payment method)","commonUseCases":["GDPR-compliant AI chat interactions","Enterprise data processing with secure LLMs","Workflow automation using compliant AI models"],"limitations":["Requires payment method setup on the platform","Community node (may have fewer features than official nodes)"],"relatedNodes":["n8n HTTP Request","n8n Code","n8n Text"]}


node_type: @ekyte/n8n-nodes-ekyte.eKyteAction
package_name: @ekyte/n8n-nodes-ekyte
display_name: eKyte
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: lucassebold
author_github_url: https://github.com/ekyte/n8n-nodes-ekyte.git
npm_package_name: @ekyte/n8n-nodes-ekyte
npm_version: 1.2.2
community_fetched_at: 2026-07-14T14:40:33.237Z
ai_summary_generated_at: 2026-05-02 08:57:17
description:
  Create and retrieve data from eKyte (tasks, projects, tickets, boards, workspaces, notes, notifications)

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Artifact",
          "value": "artifacts"
        },
        {
          "name": "Board",
          "value": "board"
        },
        {
          "name": "Insertion Order",
          "value": "PI"
        },
        {
          "name": "Note",
          "value": "note"
        },
        {
          "name": "Notification",
          "value": "notifications"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Task Form",
          "value": "taskForm"
        },
        {
          "name": "Ticket",
          "value": "ticket"
        },
        {
          "name": "Workspace",
          "value": "workspaces"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createBoard",
      "options": [
        {
          "name": "Create",
          "value": "createBoard",
          "action": "Create board",
          "description": "Create a new board for organizing notes and planning content"
        },
        {
          "name": "Get All",
          "value": "getBoards",
          "action": "Get all boards",
          "description": "Retrieve all boards accessible to the authenticated user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "board"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createNote",
      "options": [
        {
          "name": "Create",
          "value": "createNote",
          "action": "Create note",
          "description": "Create a new note inside a board with title, content, and category"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "note"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createProject",
      "options": [
        {
          "name": "Create",
          "value": "createProject",
          "action": "Create project",
          "description": "Create a new project to group related tasks and track progress"
        },
        {
          "name": "Get All",
          "value": "getProjects",
          "action": "Get all projects",
          "description": "Retrieve all projects accessible to the authenticated user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createTask",
      "options": [
        {
          "name": "Create",
          "value": "createTask",
          "action": "Create task",
          "description": "Create a new task in eKyte with title, dates, priority, and assignment"
        },
        {
          "name": "Get",
          "value": "getTask",
          "action": "Get task",
          "description": "Retrieve a single task by its unique ID"
        },
        {
          "name": "Get Many (with Filters)",
          "value": "getManyTasks",
          "action": "Get many tasks with filters",
          "description": "Search and filter tasks by title, status, workspace, executor, squad, project, or date range"
        },
        {
          "name": "Get Recent",
          "value": "getTasks",
          "action": "Get recent tasks",
          "description": "Get tasks created or updated in the last 15 minutes (basic info)"
        },
        {
          "name": "Get Recent (with Phase)",
          "value": "getTasksPhase",
          "action": "Get recent tasks with phase",
          "description": "Get tasks created or updated in the last 15 minutes including current phase/stage information"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getManyTaskForms",
      "options": [
        {
          "name": "Get Many (with Filters)",
          "value": "getManyTaskForms",
          "action": "Get many task forms with filters",
          "description": "Search and filter task forms by form type, name, or form ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "taskForm"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createTicket",
      "options": [
        {
          "name": "Create",
          "value": "createTicket",
          "action": "Create ticket",
          "description": "Create a new ticket with subject, type, priority, and requester information"
        },
        {
          "name": "Get Many (with Filters)",
          "value": "getManyTickets",
          "action": "Get many tickets with filters",
          "description": "Search and filter tickets by workspace, executor, requester, type, status, phase, start date, end date, and concluded date start/end"
        },
        {
          "name": "Get Concluded",
          "value": "getTicketsClosed",
          "action": "Get concluded tickets",
          "description": "Get tickets that were concluded/closed in the last 15 minutes"
        },
        {
          "name": "Get Updated",
          "value": "getTicketsChanged",
          "action": "Get updated tickets",
          "description": "Get tickets that had any changes/updates in the last 15 minutes"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "ticket"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getNotifications",
      "options": [
        {
          "name": "Get All",
          "value": "getNotifications",
          "action": "Get all notifications",
          "description": "Retrieve all unread notifications for the specified user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "notifications"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "createWorkspace",
      "options": [
        {
          "name": "Create",
          "value": "createWorkspace",
          "action": "Create workspace",
          "description": "Create a new workspace for a team or department"
        },
        {
          "name": "Get All",
          "value": "getWorkspaces",
          "action": "Get all workspaces",
          "description": "Retrieve all workspaces accessible to the authenticated user"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workspaces"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "addArtifact",
      "options": [
        {
          "name": "Create",
          "value": "addArtifact",
          "action": "Create artifact",
          "description": "Create a new artifact to be attached to a ticket"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "artifacts"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getPerson",
      "options": [
        {
          "name": "Create",
          "value": "createPerson",
          "action": "Create insertion order person",
          "description": "Create an insertion order person record"
        },
        {
          "name": "Create Address",
          "value": "createPersonAddress",
          "action": "Create person address",
          "description": "Create an address record for a person"
        },
        {
          "name": "Create Bank Data",
          "value": "createPersonBankData",
          "action": "Create person bank data",
          "description": "Create a bank data record for a person"
        },
        {
          "name": "Create Contact",
          "value": "createPersonContact",
          "action": "Create person contact",
          "description": "Create a contact record for a person"
        },
        {
          "name": "Get",
          "value": "getPerson",
          "action": "Get person",
          "description": "Retrieve a person by ID"
        },
        {
          "name": "Get Many",
          "value": "getManyPersons",
          "action": "Get many persons",
          "description": "Retrieve persons by filter"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "PI"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "createBoard",
      "action": "Create board",
      "description": "Create a new board for organizing notes and planning content",
      "resource": "board"
    },
    {
      "name": "Get All",
      "value": "getBoards",
      "action": "Get all boards",
      "description": "Retrieve all boards accessible to the authenticated user",
      "resource": "board"
    },
    {
      "name": "Create",
      "value": "createNote",
      "action": "Create note",
      "description": "Create a new note inside a board with title, content, and category",
      "resource": "note"
    },
    {
      "name": "Create",
      "value": "createProject",
      "action": "Create project",
      "description": "Create a new project to group related tasks and track progress",
      "resource": "project"
    },
    {
      "name": "Get All",
      "value": "getProjects",
      "action": "Get all projects",
      "description": "Retrieve all projects accessible to the authenticated user",
      "resource": "project"
    },
    {
      "name": "Create",
      "value": "createTask",
      "action": "Create task",
      "description": "Create a new task in eKyte with title, dates, priority, and assignment",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "getTask",
      "action": "Get task",
      "description": "Retrieve a single task by its unique ID",
      "resource": "task"
    },
    {
      "name": "Get Many (with Filters)",
      "value": "getManyTasks",
      "action": "Get many tasks with filters",
      "description": "Search and filter tasks by title, status, workspace, executor, squad, project, or date range",
      "resource": "task"
    },
    {
      "name": "Get Recent",
      "value": "getTasks",
      "action": "Get recent tasks",
      "description": "Get tasks created or updated in the last 15 minutes (basic info)",
      "resource": "task"
    },
    {
      "name": "Get Recent (with Phase)",
      "value": "getTasksPhase",
      "action": "Get recent tasks with phase",
      "description": "Get tasks created or updated in the last 15 minutes including current phase/stage information",
      "resource": "task"
    },
    {
      "name": "Get Many (with Filters)",
      "value": "getManyTaskForms",
      "action": "Get many task forms with filters",
      "description": "Search and filter task forms by form type, name, or form ID",
      "resource": "taskForm"
    },
    {
      "name": "Create",
      "value": "createTicket",
      "action": "Create ticket",
      "description": "Create a new ticket with subject, type, priority, and requester information",
      "resource": "ticket"
    },
    {
      "name": "Get Many (with Filters)",
      "value": "getManyTickets",
      "action": "Get many tickets with filters",
      "description": "Search and filter tickets by workspace, executor, requester, type, status, phase, start date, end date, and concluded date start/end",
      "resource": "ticket"
    },
    {
      "name": "Get Concluded",
      "value": "getTicketsClosed",
      "action": "Get concluded tickets",
      "description": "Get tickets that were concluded/closed in the last 15 minutes",
      "resource": "ticket"
    },
    {
      "name": "Get Updated",
      "value": "getTicketsChanged",
      "action": "Get updated tickets",
      "description": "Get tickets that had any changes/updates in the last 15 minutes",
      "resource": "ticket"
    },
    {
      "name": "Get All",
      "value": "getNotifications",
      "action": "Get all notifications",
      "description": "Retrieve all unread notifications for the specified user",
      "resource": "notifications"
    },
    {
      "name": "Create",
      "value": "createWorkspace",
      "action": "Create workspace",
      "description": "Create a new workspace for a team or department",
      "resource": "workspaces"
    },
    {
      "name": "Get All",
      "value": "getWorkspaces",
      "action": "Get all workspaces",
      "description": "Retrieve all workspaces accessible to the authenticated user",
      "resource": "workspaces"
    },
    {
      "name": "Create",
      "value": "addArtifact",
      "action": "Create artifact",
      "description": "Create a new artifact to be attached to a ticket",
      "resource": "artifacts"
    },
    {
      "name": "Create",
      "value": "createPerson",
      "action": "Create insertion order person",
      "description": "Create an insertion order person record",
      "resource": "PI"
    },
    {
      "name": "Create Address",
      "value": "createPersonAddress",
      "action": "Create person address",
      "description": "Create an address record for a person",
      "resource": "PI"
    },
    {
      "name": "Create Bank Data",
      "value": "createPersonBankData",
      "action": "Create person bank data",
      "description": "Create a bank data record for a person",
      "resource": "PI"
    },
    {
      "name": "Create Contact",
      "value": "createPersonContact",
      "action": "Create person contact",
      "description": "Create a contact record for a person",
      "resource": "PI"
    },
    {
      "name": "Get",
      "value": "getPerson",
      "action": "Get person",
      "description": "Retrieve a person by ID",
      "resource": "PI"
    },
    {
      "name": "Get Many",
      "value": "getManyPersons",
      "action": "Get many persons",
      "description": "Retrieve persons by filter",
      "resource": "PI"
    }
  ]

npm_readme:
  # n8n-nodes-ekyte

  This is an n8n community node that lets you integrate with the eKyte API to manage tasks, projects, tickets, boards, workspaces, notes, notifications, artifacts, task forms, and insertion orders (persons, addresses, contacts, bank data).

  eKyte is a Digital Marketing Management Platform for High Performance.

  ## AI Tool Support

  This node is configured with `usableAsTool: true`, which means it can be used as a tool by AI agents in n8n. All operations and parameters have detailed descriptions to help AI understand and use each field correctly.

  ## Installation

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `@ekyte/n8n-nodes-ekyte` in **Enter npm package name**
  4. Agree to the risks of using community nodes
  5. Select **Install**

  After installation, the eKyte node will be available in your n8n workflows.

  ### Manual Installation

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

  ## Credentials

  You'll need to configure the eKyte API credentials:

  1. **API Key**: Your eKyte API key
  2. **Company ID**: Your eKyte company identifier

  To obtain these credentials:

  1. Log into your eKyte account
  2. Navigate to your API settings
  3. Generate an API key if you don't have one
  4. Note your Company ID

  ## Resources and Operations

  The eKyte node is organized by resources, each with specific operations.

  ### Artifact

  - **Create**: Create a new artifact to be attached to a ticket (supports binary file upload)

  ### Board

  - **Create**: Create a new board for organizing notes and planning content
  - **Get All**: Retrieve all boards accessible to the authenticated user

  ### Insertion Order

  Manages person records and their sub-entities (addresses, contacts, bank data) for insertion orders (PIs).

  - **Create**: Create an insertion order person record
  - **Create Address**: Create an address record for a person
  - **Create Bank Data**: Create a bank data record for a person
  - **Create Contact**: Create a contact record for a person
  - **Get**: Retrieve a person by ID
  - **Get Many**: Retrieve persons by filter

  ### Note

  - **Create**: Create a new note inside a board with title, content, and category

  ### Notification

  - **Get All**: Retrieve all unread notifications for the specified user

  ### Project

  - **Create**: Create a new project to group related tasks and track progress
  - **Get All**: Retrieve all projects accessible to the authenticated user

  ### Task

  - **Create**: Create a new task with title, dates, priority, and assignment
  - **Get**: Retrieve a single task by its unique ID
  - **Get Many (with Filters)**: Search and filter tasks by title, status, workspace, executor, squad, project, or date range
  - **Get Recent**: Retrieve tasks created or updated in the last 15 minutes (basic info)
  - **Get Recent (with Phase)**: Retrieve tasks created or updated in the last 15 minutes including current phase/stage information

  ### Task Form

  - **Get Many (with Filters)**: Search and filter task forms by form type, name, or form ID

  ### Ticket

  - **Create**: Create a new ticket with subject, type, priority, and requester information
  - **Get Concluded**: Retrieve tickets that were concluded/closed in the last 15 minutes
  - **Get Many (with Filters)**: Search and filter tickets by workspace, executor, requester, type, status, phase, start/end date, and concluded date range
  - **Get Updated**: Retrieve tickets that had any changes/updates in the last 15 minutes

  ### Workspace

  - **Create**: Create a new workspace for a team or department
  - **Get All**: Retrieve all workspaces accessible to the authenticated user

  ## Node Usage

  1. Add the eKyte node to your workflow
  2. Configure your eKyte API credentials
  3. Select the desired resource
  4. Choose the operation for the selected resource
  5. Provide the required user email (when applicable)
  6. Configure operation-specific parameters
  7. Execute the workflow

  ## API Reference

  This node integrates with the eKyte API. The default base URL is `https://api.ekyte.com/n8n` (configurable via a hidden `baseUrl` parameter on the node).

  For detailed API documentation, visit the [eKyte integration guide](https://www.ekyte.com/guide/pt-br/suporte/integracao-com-n8n/).

  ## Rate Limiting

  This node implements rate limiting to prevent excessive calls and backend overload:

  - **Get operations**: have a 5-minute rate limit per operation to avoid excessive calls. The state is persisted in `workflow.staticData` across executions.
  - **Create operations**: no rate limiting applied, allowing unrestricted resource creation.

  ## Error Handling

  - HTTP errors from the eKyte API are thrown as `NodeApiError`, preserving the HTTP status code and the API response body in the n8n error panel.
  - Validation and logic errors (unsupported operation, rate-limit hit, missing parameters) are thrown as `NodeOperationError`.
  - When the API returns an error body in the form `{ "error": { "id": "...", "message": "..." } }`, the message is surfaced directly in the n8n UI, prefixed with the error id when available.

  ## Requirements

  - n8n version 1.0.0 or higher
  - Node.js 20.15 or higher
  - Valid eKyte account with API access

  ## Support

  For issues, questions, or feature requests:

  - Create an issue in the [GitHub repository](https://github.com/ekyte/n8n-nodes-ekyte)
  - Contact the eKyte support team at atendimento@ekyte.com

  ## License

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

  ## Contributing

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

ai_documentation_summary:
  {"purpose":"Integrates with the eKyte Digital Marketing Management Platform to manage tasks, projects, tickets, boards, workspaces, notes, and notifications via its API.","capabilities":["Create boards for organizing notes and content planning","Retrieve all accessible boards","Create notes within boards with title, content, and category","Create projects to group related tasks","Retrieve all accessible projects","Create tasks with title, dates, priority, and assignment","Retrieve single tasks by ID","Search and filter tasks by title, status, workspace, executor, squad, project, or date range","Retrieve recent tasks created or updated in the last 15 minutes","Retrieve recent tasks with phase/stage information"],"authentication":"API key and Company ID required","commonUseCases":["Automating task creation and tracking for marketing campaigns","Managing support tickets and retrieving recent updates","Organizing content planning through boards and notes","Retrieving recent activity and notifications for team monitoring"],"limitations":["Get operations have a 5-minute rate limit for the same operation","Create operations have no rate limiting applied","Requires n8n version 1.0.0 or higher and Node.js 20.15 or higher"],"relatedNodes":[]}


node_type: n8n-nodes-skyvern.skyvern
package_name: n8n-nodes-skyvern
display_name: Skyvern
description: Node to interact with Skyvern
category: Community
development_style: declarative
version: 1
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: skyvernnodejs
author_github_url: https://github.com/Skyvern-AI/skyvern-n8n.git
npm_package_name: n8n-nodes-skyvern
npm_version: 0.0.11
community_fetched_at: 2026-07-14T14:40:33.238Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Workflow",
          "value": "workflow"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    }
  ]

npm_readme:
  <!-- START doctoc generated TOC please keep comment here to allow auto update -->
  <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

  - [n8n-nodes-skyvern](#n8n-nodes-skyvern)
    - [Installation](#installation)
    - [Operations](#operations)
    - [Credentials](#credentials)
    - [Resources](#resources)

  <!-- END doctoc generated TOC please keep comment here to allow auto update -->

  # n8n-nodes-skyvern

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

  [Skyvern](https://www.skyvern.com/) is an [open-source](https://github.com/Skyvern-AI/skyvern) product. It automates browser-based workflows using LLMs and computer vision. It provides a simple API endpoint to fully automate manual workflows on a large number of websites, replacing brittle or unreliable automation solutions.

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

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

  ## Installation

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

  ## Operations

  - Task: interact with Skyvern task
  - Workflow: interact with Skyvern workflow

  ## Credentials

  - API Token: Skyvern API token. You can get it from the Skyvern UI
  - Base URL: The endpoint for your Skyvern service. Default is Skyvern Cloud Service, you can also set it to your self-host Skyvern.


  ## Resources

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

  * [n8n integration code](https://github.com/Skyvern-AI/skyvern-n8n)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of browser-based workflows using Skyvern's API, which combines LLMs and computer vision to automate manual tasks on websites.","capabilities":["Interact with Skyvern tasks","Interact with Skyvern workflows","Automate browser-based workflows using LLMs and computer vision","Replace brittle or unreliable automation solutions"],"authentication":"API Token (Skyvern API token) and Base URL (Skyvern Cloud Service or self-hosted endpoint)","commonUseCases":["Automating manual workflows on websites","Replacing brittle automation scripts","Handling large-scale website automation tasks"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-hubbi.hubbi
package_name: n8n-nodes-hubbi
display_name: Hubbi
description: Get data from the Hubbi services
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: hubbi.parts
author_github_url: https://github.com/Hubbiparts/
npm_package_name: n8n-nodes-hubbi
npm_version: 1.0.1
community_fetched_at: 2026-07-14T14:40:33.239Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "part",
      "options": [
        {
          "name": "Stock",
          "value": "stock",
          "description": "Operations related to your stock"
        },
        {
          "name": "Autopart",
          "value": "part",
          "description": "Operations related to autoparts"
        },
        {
          "name": "Vehicle",
          "value": "vehicle",
          "description": "Operations related to vehicles"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "resource",
      "type": "options",
      "default": "part",
      "options": [
        {
          "name": "Autopart",
          "value": "part",
          "description": "Operations related to autoparts"
        },
        {
          "name": "Vehicle",
          "value": "vehicle",
          "description": "Operations related to vehicles"
        }
      ],
      "displayName": "Resource",
      "displayOptions": {
        "show": {
          "userType": [
            "buyer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listParts",
      "options": [
        {
          "name": "Create Autopart in Stock",
          "value": "createPart",
          "action": "Create autopart in stock",
          "routing": {
            "request": {
              "url": "=erps/parts/",
              "body": [
                {
                  "code": "={{$parameter.code}}",
                  "name": "={{$parameter.name}}",
                  "price": "={{$parameter.price}}",
                  "stock": "={{$parameter.stock}}",
                  "erp_id": "={{$parameter.erpId}}"
                }
              ],
              "method": "POST"
            }
          },
          "description": "Create a new autopart",
          "displayOptions": {
            "show": {
              "userType": [
                "dealer"
              ]
            }
          }
        },
        {
          "name": "Delete Stock",
          "value": "deletePart",
          "action": "Delete autopart",
          "routing": {
            "request": {
              "url": "=erps/parts/{{$parameter.id}}/",
              "method": "DELETE"
            }
          },
          "description": "Delete an autopart by ID",
          "displayOptions": {
            "show": {
              "userType": [
                "dealer"
              ]
            }
          }
        },
        {
          "name": "Get Autopart in Stock",
          "value": "getPart",
          "action": "Get autopart",
          "routing": {
            "request": {
              "url": "=erps/parts/{{$parameter.id}}/",
              "method": "GET"
            }
          },
          "description": "Get a specific autopart by ID",
          "displayOptions": {
            "show": {
              "userType": [
                "dealer"
              ]
            }
          }
        },
        {
          "name": "List Stock",
          "value": "listParts",
          "action": "List autoparts",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "results"
                  }
                }
              ]
            },
            "request": {
              "url": "=erps/parts/",
              "method": "GET"
            }
          },
          "description": "List all available autoparts",
          "displayOptions": {
            "show": {
              "userType": [
                "dealer"
              ]
            }
          }
        },
        {
          "name": "Update Stock",
          "value": "updatePart",
          "action": "Update autopart",
          "routing": {
            "request": {
              "url": "=erps/parts/{{$parameter.id}}/",
              "body": {
                "code": "={{$parameter.code}}",
                "name": "={{$parameter.name}}",
                "price": "={{$parameter.price}}",
                "stock": "={{$parameter.stock}}",
                "erp_id": "={{$parameter.erpId}}"
              },
              "method": "PATCH"
            }
          },
          "description": "Update an existing autopart by ID",
          "displayOptions": {
            "show": {
              "userType": [
                "dealer"
              ]
            }
          }
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "stock"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchPart",
      "options": [
        {
          "name": "Search Autopart",
          "value": "searchPart",
          "action": "Search for autoparts",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "results"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "sku": "={{$parameter[\"partNumber\"]}}",
                "limit": 96,
                "stock": "={{$parameter[\"inStock\"] ? \"true\" : \"false\"}}",
                "offset": 0,
                "search": "={{$parameter[\"partName\"]}}",
                "barcode": "={{$parameter[\"barcode\"]}}",
                "state_uf": "={{Array.isArray($parameter[\"uf\"]) ? $parameter[\"uf\"].join(\",\") : $parameter[\"uf\"]}}",
                "positions": "={{Array.isArray($parameter[\"position\"]) ? $parameter[\"position\"].join(\",\") : $parameter[\"position\"]}}",
                "application": "={{$parameter[\"vehicle\"]}}"
              },
              "url": "/catalog/filter/",
              "method": "GET"
            }
          },
          "description": "Retrieve details of a part"
        },
        {
          "name": "Part Specifications",
          "value": "partSpecs",
          "action": "Get part specifications",
          "routing": {
            "request": {
              "qs": {
                "nome_fabricante": "={{$parameter[\"brandName\"]}}",
                "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
              },
              "url": "/public/api/v1/catalog/part/technical-specs",
              "method": "GET"
            }
          },
          "description": "Retrieve specifications of a part"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "part"
          ],
          "userType": [
            "buyer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchPart",
      "options": [
        {
          "name": "Search Autopart",
          "value": "searchPart",
          "action": "Search for autoparts",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "results"
                  }
                }
              ]
            },
            "request": {
              "qs": {
                "sku": "={{$parameter[\"partNumber\"]}}",
                "limit": 96,
                "stock": "={{$parameter[\"inStock\"] ? \"true\" : \"false\"}}",
                "offset": 0,
                "search": "={{$parameter[\"partName\"]}}",
                "barcode": "={{$parameter[\"barcode\"]}}",
                "state_uf": "={{Array.isArray($parameter[\"uf\"]) ? $parameter[\"uf\"].join(\",\") : $parameter[\"uf\"]}}",
                "positions": "={{Array.isArray($parameter[\"position\"]) ? $parameter[\"position\"].join(\",\") : $parameter[\"position\"]}}",
                "application": "={{$parameter[\"vehicle\"]}}"
              },
              "url": "/catalog/filter/",
              "method": "GET"
            }
          },
          "description": "Retrieve details of a part"
        },
        {
          "name": "Part Specifications",
          "value": "partSpecs",
          "action": "Get part specifications",
          "routing": {
            "request": {
              "qs": {
                "nome_fabricante": "={{$parameter[\"brandName\"]}}",
                "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
              },
              "url": "/public/api/v1/catalog/part/technical-specs",
              "method": "GET"
            }
          },
          "description": "Retrieve specifications of a part"
        },
        {
          "name": "Part Quotation",
          "value": "partQuotation",
          "action": "Get part quotation",
          "routing": {
            "request": {
              "qs": {
                "nome_fabricante": "={{$parameter[\"brandName\"]}}",
                "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
              },
              "url": "/public/api/v1/catalog/part/quotation",
              "method": "GET"
            }
          },
          "description": "Retrieve quotation details for a part"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "part"
          ],
          "userType": [
            "dealer"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "vehicleByPlate",
      "options": [
        {
          "name": "Get Vehicle by Plate",
          "value": "vehicleByPlate",
          "action": "Get vehicle by license plate",
          "routing": {
            "request": {
              "qs": {
                "plate": "={{$parameter[\"plate\"]}}"
              },
              "url": "/platesearch/vehicle-info/",
              "method": "GET"
            }
          },
          "description": "Retrieve vehicle description by plate number"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "vehicle"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Autopart in Stock",
      "value": "createPart",
      "action": "Create autopart in stock",
      "routing": {
        "request": {
          "url": "=erps/parts/",
          "body": [
            {
              "code": "={{$parameter.code}}",
              "name": "={{$parameter.name}}",
              "price": "={{$parameter.price}}",
              "stock": "={{$parameter.stock}}",
              "erp_id": "={{$parameter.erpId}}"
            }
          ],
          "method": "POST"
        }
      },
      "description": "Create a new autopart",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "resource": "stock"
    },
    {
      "name": "Delete Stock",
      "value": "deletePart",
      "action": "Delete autopart",
      "routing": {
        "request": {
          "url": "=erps/parts/{{$parameter.id}}/",
          "method": "DELETE"
        }
      },
      "description": "Delete an autopart by ID",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "resource": "stock"
    },
    {
      "name": "Get Autopart in Stock",
      "value": "getPart",
      "action": "Get autopart",
      "routing": {
        "request": {
          "url": "=erps/parts/{{$parameter.id}}/",
          "method": "GET"
        }
      },
      "description": "Get a specific autopart by ID",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "resource": "stock"
    },
    {
      "name": "List Stock",
      "value": "listParts",
      "action": "List autoparts",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "results"
              }
            }
          ]
        },
        "request": {
          "url": "=erps/parts/",
          "method": "GET"
        }
      },
      "description": "List all available autoparts",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "resource": "stock"
    },
    {
      "name": "Update Stock",
      "value": "updatePart",
      "action": "Update autopart",
      "routing": {
        "request": {
          "url": "=erps/parts/{{$parameter.id}}/",
          "body": {
            "code": "={{$parameter.code}}",
            "name": "={{$parameter.name}}",
            "price": "={{$parameter.price}}",
            "stock": "={{$parameter.stock}}",
            "erp_id": "={{$parameter.erpId}}"
          },
          "method": "PATCH"
        }
      },
      "description": "Update an existing autopart by ID",
      "displayOptions": {
        "show": {
          "userType": [
            "dealer"
          ]
        }
      },
      "resource": "stock"
    },
    {
      "name": "Search Autopart",
      "value": "searchPart",
      "action": "Search for autoparts",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "results"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "sku": "={{$parameter[\"partNumber\"]}}",
            "limit": 96,
            "stock": "={{$parameter[\"inStock\"] ? \"true\" : \"false\"}}",
            "offset": 0,
            "search": "={{$parameter[\"partName\"]}}",
            "barcode": "={{$parameter[\"barcode\"]}}",
            "state_uf": "={{Array.isArray($parameter[\"uf\"]) ? $parameter[\"uf\"].join(\",\") : $parameter[\"uf\"]}}",
            "positions": "={{Array.isArray($parameter[\"position\"]) ? $parameter[\"position\"].join(\",\") : $parameter[\"position\"]}}",
            "application": "={{$parameter[\"vehicle\"]}}"
          },
          "url": "/catalog/filter/",
          "method": "GET"
        }
      },
      "description": "Retrieve details of a part",
      "resource": "part"
    },
    {
      "name": "Part Specifications",
      "value": "partSpecs",
      "action": "Get part specifications",
      "routing": {
        "request": {
          "qs": {
            "nome_fabricante": "={{$parameter[\"brandName\"]}}",
            "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
          },
          "url": "/public/api/v1/catalog/part/technical-specs",
          "method": "GET"
        }
      },
      "description": "Retrieve specifications of a part",
      "resource": "part"
    },
    {
      "name": "Search Autopart",
      "value": "searchPart",
      "action": "Search for autoparts",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "results"
              }
            }
          ]
        },
        "request": {
          "qs": {
            "sku": "={{$parameter[\"partNumber\"]}}",
            "limit": 96,
            "stock": "={{$parameter[\"inStock\"] ? \"true\" : \"false\"}}",
            "offset": 0,
            "search": "={{$parameter[\"partName\"]}}",
            "barcode": "={{$parameter[\"barcode\"]}}",
            "state_uf": "={{Array.isArray($parameter[\"uf\"]) ? $parameter[\"uf\"].join(\",\") : $parameter[\"uf\"]}}",
            "positions": "={{Array.isArray($parameter[\"position\"]) ? $parameter[\"position\"].join(\",\") : $parameter[\"position\"]}}",
            "application": "={{$parameter[\"vehicle\"]}}"
          },
          "url": "/catalog/filter/",
          "method": "GET"
        }
      },
      "description": "Retrieve details of a part",
      "resource": "part"
    },
    {
      "name": "Part Specifications",
      "value": "partSpecs",
      "action": "Get part specifications",
      "routing": {
        "request": {
          "qs": {
            "nome_fabricante": "={{$parameter[\"brandName\"]}}",
            "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
          },
          "url": "/public/api/v1/catalog/part/technical-specs",
          "method": "GET"
        }
      },
      "description": "Retrieve specifications of a part",
      "resource": "part"
    },
    {
      "name": "Part Quotation",
      "value": "partQuotation",
      "action": "Get part quotation",
      "routing": {
        "request": {
          "qs": {
            "nome_fabricante": "={{$parameter[\"brandName\"]}}",
            "codigo_fabricante": "={{$parameter[\"partNumber\"]}}"
          },
          "url": "/public/api/v1/catalog/part/quotation",
          "method": "GET"
        }
      },
      "description": "Retrieve quotation details for a part",
      "resource": "part"
    },
    {
      "name": "Get Vehicle by Plate",
      "value": "vehicleByPlate",
      "action": "Get vehicle by license plate",
      "routing": {
        "request": {
          "qs": {
            "plate": "={{$parameter[\"plate\"]}}"
          },
          "url": "/platesearch/vehicle-info/",
          "method": "GET"
        }
      },
      "description": "Retrieve vehicle description by plate number",
      "resource": "vehicle"
    }
  ]

npm_readme:
  # n8n-nodes-hubbi

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

  Hubbi is a B2B marketplace platform that connects corporate consumers with auto parts suppliers. Using BigData technologies, it enables an agile and assertive quotation, purchase and sale process.

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

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

  ## Installation

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

  ## Operations

  - Vehicle Operations: get detailed information about a vehicle by it's license plate.
  - Stock Operations: List, create, update and delete your stock at Hubbi.
  - Part Operations: Get detailed technical speficiation for an autopart, search for parts in Hubbi's catalog and see the lowest quotation for auto parts.

  ## Credentials

  To use this node, you need to have a Hubbi account and valid API keys.

  1. **Create a Hubbi Account:**  
     Sign up at [Hubbi](https://hubbi.app) if you don't already have an account.

  2. **Generate API Keys:**  
     After logging in, navigate to your account settings to generate your API keys.

  3. **Configure Credentials in n8n:**  
     In n8n, add a new set of credentials for the Hubbi node and enter your API keys.

  These credentials will allow the node to authenticate and interact with Hubbi services securely.

  ## Compatibility

  This node is compatible with n8n version 1.93.0 and onwards.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Hubbi](https://hubbi.app)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows to interact with Hubbi, a B2B marketplace connecting corporate consumers with auto parts suppliers.","capabilities":["Retrieve detailed vehicle information by license plate","List stock inventory","Create stock entries","Update stock entries","Delete stock entries","Retrieve detailed technical specifications for auto parts","Search parts in Hubbi's catalog","Retrieve lowest quotations for auto parts"],"authentication":"API key required","commonUseCases":["Automating purchase order creation for auto parts","Tracking vehicle maintenance records via license plate lookup","Managing inventory levels for corporate auto parts suppliers"],"limitations":["Requires a separate Hubbi account and API keys","Compatible only with n8n version 1.93.0 and newer"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.set"]}


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

updated_at: 2026-07-14 14:40:33
author_name: superchat-ben
author_github_url: https://github.com/super-chat/
npm_package_name: n8n-nodes-superchat
npm_version: 0.5.0
community_fetched_at: 2026-07-14T14:40:33.240Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Receive and send messages from WhatsApp, Instagram, Messenger, E-Mail, SMS, via Live Chat and Telegram.

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

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

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

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

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

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

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

  ---

  ## Installation

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

  ---

  ## Operations

  This node supports operations on the following six resources:

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

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

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

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

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

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

  ---

  ## Credentials

  **Superchat API**

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

  ---

  ## Compatibility

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

  ---

  ## Usage

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

  ---

  ## Resources

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

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


node_type: @exploriumai/n8n-nodes-explorium-ai.exploriumApiNode
package_name: @exploriumai/n8n-nodes-explorium-ai
display_name: Explorium API
description: Streamlined interface for Explorium API operations
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: omerkurtz
author_github_url: https://github.com/explorium-ai/n8n-nodes-explorium-api.git
npm_package_name: @exploriumai/n8n-nodes-explorium-ai
npm_version: 1.2.4
community_fetched_at: 2026-07-14T14:40:33.241Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Match",
          "value": "match",
          "description": "Find and match businesses or prospects to get their Explorium IDs"
        },
        {
          "name": "Enrich",
          "value": "enrich",
          "description": "Add additional data to existing records"
        },
        {
          "name": "Fetch",
          "value": "fetch",
          "description": "Retrieve records with filters and pagination"
        },
        {
          "name": "Events",
          "value": "events",
          "description": "Get business or prospect events"
        },
        {
          "name": "Autocomplete",
          "value": "autocomplete",
          "description": "Get field suggestions and autocomplete values"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Match",
      "value": "match",
      "description": "Find and match businesses or prospects to get their Explorium IDs"
    },
    {
      "name": "Enrich",
      "value": "enrich",
      "description": "Add additional data to existing records"
    },
    {
      "name": "Fetch",
      "value": "fetch",
      "description": "Retrieve records with filters and pagination"
    },
    {
      "name": "Events",
      "value": "events",
      "description": "Get business or prospect events"
    },
    {
      "name": "Autocomplete",
      "value": "autocomplete",
      "description": "Get field suggestions and autocomplete values"
    }
  ]

npm_readme:
  # n8n-nodes-explorium-ai

  [![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
  [![n8n Community Node](https://img.shields.io/badge/n8n-Community%20Node-green)](https://n8n.io)

  This project provides n8n community nodes for seamless integration with explorium.ai's powerful data enrichment and AI capabilities. With minimal setup required, you can leverage Explorium's features directly in your n8n workflows.

  ## Features

  ### 1. Explorium API Node
  Access all Explorium Agent Source API functions. Seamless integration with n8n workflows

  ### 2. Explorium MCP Node
  Direct integration with OpenAI through Explorium's Model Context Protocol (MCP)


  ## Prerequisites

  - n8n instance (self-hosted or cloud)
  - Explorium API Key
  - OpenAI API Key (for MCP node only)

  ## Installation

  1. Follow the [n8n community nodes installation guide](https://docs.n8n.io/integrations/community-nodes/installation/)
  2. Install this package in your n8n instance
  3. Configure the required environment variables

  ### Environment Variables

  Both nodes require the following environment variables:
  - `EXPLORIUM_API_KEY`: Your Explorium API key

  The MCP node additionally requires:
  - `OPENAI_API_KEY`: Your OpenAI API key

  ## Usage

  ### Getting Your API Keys

     - Visit [Explorium Developer Portal](https://developers.explorium.ai/reference/quick-starts)
     - Follow the steps to obtain your API key

     ![Get the Explorium api key](./assets/get-explorium-api-key.png)

  ### Node Configuration

  Example of configuring the node for Firmographic enrichment:
  ![Explorium MCP use example](./assets/api-config.png)

  ### Workflow Example

  Here's how to use the node in your workflow:
  ![Explorium MCP use example](./assets/use-the-node.png)


  ## Templates

  Find ready-to-use templates on the Explorium n8n Creator page and in our integrations-templates repository.

  Explorium n8n Creator page: https://n8n.io/creators/explorium/

  Integrations Templates GitHub repo: https://github.com/explorium-ai/integrations-templates

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Explorium Developer Documentation](https://developers.explorium.ai/)
  - [Model Context Protocol Documentation](https://modelcontextprotocol.io/docs/)
  - [AgentSource MCP Documentation](https://developers.explorium.ai/mcp-docs/agentsource-mcp)

  ## License

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

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

ai_documentation_summary:
  {"purpose":"A n8n community node package providing integration with Explorium's AI capabilities for data enrichment and Model Context Protocol (MCP) operations.","capabilities":["Access Explorium Agent Source API functions","Firmographic data enrichment","Model Context Protocol (MCP) integration with OpenAI","Seamless n8n workflow integration"],"authentication":"API Key required (EXPLORIUM_API_KEY); OpenAI API Key required for MCP node only","commonUseCases":["Data enrichment workflows","AI-powered data processing","MCP-based agent interactions","Firmographic information gathering"],"limitations":["Requires self-hosted or cloud n8n instance","MCP node specifically requires OpenAI API key"],"relatedNodes":["n8n Community Nodes","OpenAI Node","MCP Node"]}


node_type: @enginemailer/n8n-nodes-enginemailer.enginemailer
package_name: @enginemailer/n8n-nodes-enginemailer
display_name: Enginemailer
description: Consume Enginemailer API
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: enginemailer
author_github_url: https://github.com/Enginemailer-Official/n8n-nodes-enginemailer.git
npm_package_name: @enginemailer/n8n-nodes-enginemailer
npm_version: 1.0.1
community_fetched_at: 2026-07-14T14:40:33.242Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-enginemailer

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

  Enginemailer is an all-in-one email marketing platform offering lead generation, marketing, transactional and automation features.

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

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

  ## Installation

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

  ## Operations

  - Subscriber
    - Add or update a subscriber
    - Deactivate a subscriber
    - Delete a subscriber
    - Find a subscriber
    - Send email
    - Tag a subscriber to subcategory
    - Untag a subscriber from subcategory

  ## Events

  - Subscriber
    - On autoresponder completed
    - On autoresponder triggered
    - On subscribed
    - On subscriber deleted
    - On subscriber's fields updated
    - On tagged with subcategory
    - On unsubscribed
    - On untagged with subcategory

  ## Credentials

  You can use these credentials to authenticate the following nodes:

  - Enginemailer
  - Enginemailer Trigger

  ### Prerequisites

  Create an [Enginemailer](https://www.enginemailer.com/) account.

  ### Supported authentication methods

  - API key

  ### Related resources

  Refer to [Enginemailer's API documentation](https://connect.enginemailer.com/n8n/index.html) for more information about the service.

  ### Using API Key

  To configure this credential, you'll need:

  - An **API Key**: Generate an API key from the **Enginemailer** account -> API Keys. Refer to the [API Authentication documentation](https://enginemailer.zendesk.com/hc/en-us/articles/360057634711-Manage-API-keys-for-your-account) for more detailed instructions.

  ## Compatibility

  - Tested against n8n version 1.103.2

  ### Node parameters

  Use these parameters to configure your node.

  #### Poll Times

  n8n's Enginemailer trigger node uses polling for check for updates on configured Enginemailer resources. The **Poll Times** parameter configures the querying frequency:

  - Every Minute
  - Every Hour
  - Every Day
  - Every Week
  - Every Month
  - Every X: Check for updates every given number of minutes or hours.
  - Custom: Customize the polling interval by providing a cron expression.
    Use the **Add Poll Time** button to add more polling intervals.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Enginemailer's API documentation](https://connect.enginemailer.com/n8n/index.html)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows with Enginemailer, an all-in-one email marketing platform, allowing users to manage subscribers and send emails programmatically.","capabilities":["Add or update email subscribers","Deactivate or delete subscribers","Search for specific subscribers","Send transactional emails","Tag and untag subscribers into subcategories","Trigger workflows on subscriber events (subscription, deletion, field updates, tagging, unsubscribing)"],"authentication":"API key","commonUseCases":["Automated lead generation and nurturing","Transactional email delivery (password resets, receipts)","Marketing campaign automation","Subscriber lifecycle management"],"limitations":["Community node (not official n8n node)","Requires separate Enginemailer account and API key setup"],"relatedNodes":["Enginemailer Trigger"]}


node_type: n8n-nodes-documentero.documentero
package_name: n8n-nodes-documentero
display_name: Documentero
description: Generate Word, Excel or PDF Document based on Document Template. Get API Key from Documentero APP
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: documentero
author_github_url: https://github.com/documentero/
npm_package_name: n8n-nodes-documentero
npm_version: 1.0.4
community_fetched_at: 2026-07-14T14:40:33.243Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate Document",
          "value": "generate",
          "action": "Generate document"
        },
        {
          "name": "Generate Document and Send as Email Attachment",
          "value": "generateAndEmail",
          "action": "Generate document and send as email attachment"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Document",
      "value": "generate",
      "action": "Generate document"
    },
    {
      "name": "Generate Document and Send as Email Attachment",
      "value": "generateAndEmail",
      "action": "Generate document and send as email attachment"
    }
  ]

npm_readme:
  # n8n-nodes-documentero

  An n8n community node that integrates the **Documentero API - Document Generation** into your workflows.

  [Documentero – Document Generation](https://documentero.com) is a cloud-based document generation service. Generate Word, Excel, and PDF documents from ****.docx/.xlsx templates** via API. Templates support dynamic fields, tables, formulas, conditional sections, images, HTML, Markdown, and QR codes.

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

  ## Table of contents

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

  ## Installation

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

  ## Operations

  Supported operations:

  - **Generate Document** — Populate a .xlsx or .docx template and generate a document.
  - **Generate and Email Document** — Populate a .xlsx or .docx template and send the generated document as an email attachment.

  Response fields:

  - **data (binary)** — The generated document as a binary file (.docx / .pdf / .xlsx). JSON metadata from the API response is returned alongside the binary; base64 content is removed.

  ## Credentials

  Obtain your API key for Documentero:

  1. Log in: https://app.documentero.com/login
  2. Open Account Settings: https://app.documentero.com/admin/account
  3. Copy the API key assigned to your account.
     
  	![Documentero API Key Location](assets/documenteroapikey.png)

  4. Use this API key when creating the n8n credentials for the node.
     
  	![Documentero n8n Connection](assets/n8napikey.png)

  ## Usage

  - Create or upload template(s) (.docx/.xlsx) in your Documentero account: https://app.documentero.com
    
  	![Documentero Sample Template](assets/documenterosample.png)

  - Optional: After adding the template, set the output format and default filename on the template overview page in Documentero.
  - Add a Documentero node to your workflow.
    
  	![Documentero Workflow](assets/n8nflow.png)

  - Choose an operation:
  	- Generate Document — pass the generated file to downstream nodes (e.g., OneDrive, Google Drive, Outlook).
  	- Generate and Email Document — let Documentero email the generated file for you.
  - Select the template to use from the “Document Template” dropdown.
  - In Documentero (Template Overview → API/JSON), copy the JSON structure and paste it into the node’s Data (JSON) field, then fill in values.
    
  	![Documentero Template Overview](assets/documenterodef.png)

  - Run the workflow.
  - The node outputs the generated file under binary > data for further processing (.docx / .pdf / .xlsx).

  	![Documentero Flow](assets/n8nnodesample.png)

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Documentero Homepage](https://documentero.com)
  * [Documentero App](https://app.documentero.com)
  * [Documentero Docs](https://docs.documentero.com)

  ## License

  MIT © Documentero

ai_documentation_summary:
  {"purpose":"This n8n community node integrates the Documentero API to generate Word, Excel, or PDF documents from templates populated with dynamic data.","capabilities":["Generate documents from .docx or .xlsx templates","Output documents in Word, Excel, or PDF formats","Support dynamic fields, tables, formulas, conditional sections, images, HTML, Markdown, and QR codes in templates","Generate and email documents directly as attachments","Return generated files as binary data for downstream processing"],"authentication":"API key required (obtained from Documentero app account settings)","commonUseCases":["Automated invoice or contract generation","Creating personalized marketing materials","Generating reports with dynamic data","Sending document attachments via email workflows"],"limitations":["Limited to document generation; no direct editing of existing documents","Templates must be pre-uploaded to Documentero account","Requires external API key management"],"relatedNodes":["n8n-nodes-base.binary","n8n-nodes-base.email","n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: n8n-nodes-cloudinary.cloudinary
package_name: n8n-nodes-cloudinary
display_name: Cloudinary
category: Community
development_style: declarative
version: 2
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: const-cloudinary
author_github_url: https://github.com/cloudinary/
npm_package_name: n8n-nodes-cloudinary
npm_version: 0.2.1
community_fetched_at: 2026-07-14T14:40:33.250Z
ai_summary_generated_at: 2026-03-25 22:47:20
description:
  Upload images and videos, build optimized transformation and delivery URLs, generate video players, and manage, search, tag, and edit metadata in your Cloudinary media library

properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "upload",
      "options": [
        {
          "name": "Upload",
          "value": "upload",
          "description": "Upload new assets from a URL or binary file data"
        },
        {
          "name": "Transform",
          "value": "transform",
          "description": "Build delivery and transformation URLs for images and videos (no upload, no API call)"
        },
        {
          "name": "Asset",
          "value": "asset",
          "description": "Work with existing assets by asset ID: get, search, delete, update tags/metadata"
        },
        {
          "name": "Widget",
          "value": "widget",
          "description": "Generate Cloudinary widgets and embeds, such as the Video Player (no upload, no API call)"
        },
        {
          "name": "Library",
          "value": "admin",
          "description": "Account-level lookups: list tags and structured-metadata field definitions"
        },
        {
          "name": "Asset (Legacy, by Public ID)",
          "value": "updateAsset",
          "description": "Deprecated — prefer the Asset resource. Public-ID-based tag and metadata updates."
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "uploadUrl",
      "options": [
        {
          "name": "Upload File",
          "value": "uploadFile",
          "action": "Upload an asset from file data",
          "description": "Upload an asset from file data"
        },
        {
          "name": "Upload From URL",
          "value": "uploadUrl",
          "action": "Upload an asset from URL",
          "description": "Upload an asset from URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "upload"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "optimizeImage",
      "options": [
        {
          "name": "Compose: Combine Transformations",
          "value": "combineTransformations",
          "action": "Compose: Combine Transformations",
          "description": "Build a delivery URL that chains several transformation steps in order. Outputs secure_url and a reusable transformation string."
        },
        {
          "name": "Compose: Custom Transformation String",
          "value": "customTransformation",
          "action": "Compose: Custom Transformation String",
          "description": "Build a delivery URL from a raw Cloudinary transformation string. Outputs secure_url and a reusable transformation string."
        },
        {
          "name": "Image: Convert Format",
          "value": "convertImage",
          "action": "Image: Convert Format",
          "description": "Build a delivery URL that converts an image to another format. Outputs secure_url and a reusable transformation string."
        },
        {
          "name": "Image: Crop",
          "value": "cropImage",
          "action": "Image: Crop",
          "description": "Build a delivery URL that crops an image to fixed dimensions or an aspect ratio. Outputs secure_url and a reusable transformation string."
        },
        {
          "name": "Image: Optimize",
          "value": "optimizeImage",
          "action": "Image: Optimize",
          "description": "Build a delivery URL that auto-optimizes an image (format + quality). Outputs secure_url and a reusable transformation string."
        },
        {
          "name": "Image: Resize",
          "value": "resizeImage",
          "action": "Image: Resize",
          "description": "Build a delivery URL that resizes an image to a width and/or height. Outputs secure_url and a reusable transformation string."
        },
        {
          "name": "Video: Crop",
          "value": "cropVideo",
          "action": "Video: Crop",
          "description": "Build a delivery URL that crops a video to fixed dimensions or an aspect ratio. Outputs secure_url and a reusable transformation string."
        },
        {
          "name": "Video: Optimize",
          "value": "optimizeVideo",
          "action": "Video: Optimize",
          "description": "Build a delivery URL that auto-optimizes a video (format/codec + quality). Outputs secure_url and a reusable transformation string."
        },
        {
          "name": "Video: Resize",
          "value": "resizeVideo",
          "action": "Video: Resize",
          "description": "Build a delivery URL that resizes a video to a width and/or height. Outputs secure_url and a reusable transformation string."
        },
        {
          "name": "Video: Thumbnail",
          "value": "videoThumbnail",
          "action": "Video: Thumbnail",
          "description": "Build a delivery URL for a still image frame from a video. Outputs secure_url and a reusable transformation string."
        },
        {
          "name": "Video: Trim",
          "value": "trimVideo",
          "action": "Video: Trim",
          "description": "Build a delivery URL that trims a video to a start, end, and/or duration. Outputs secure_url and a reusable transformation string."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "transform"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "videoPlayer",
      "options": [
        {
          "name": "Video Player",
          "value": "videoPlayer",
          "action": "Generate a video player",
          "description": "Generate embed code and config for the Cloudinary Video Player. Outputs embed_url and a player_config JSON string."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "widget"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAsset",
      "options": [
        {
          "name": "Delete Assets",
          "value": "deleteAssets",
          "action": "Delete assets",
          "description": "Delete one or more assets by public ID"
        },
        {
          "name": "Get Asset",
          "value": "getAsset",
          "action": "Get an asset",
          "description": "Get details for a single asset by asset ID"
        },
        {
          "name": "Search Assets",
          "value": "search",
          "action": "Search assets",
          "description": "Search for assets using a Cloudinary search expression"
        },
        {
          "name": "Update Asset Structured Metadata",
          "value": "updateMetadata",
          "action": "Update asset structured metadata",
          "description": "Update structured metadata for an asset by asset ID"
        },
        {
          "name": "Update Asset Tags",
          "value": "updateTags",
          "action": "Update asset tags",
          "description": "Update tags for an asset by asset ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "asset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "updateTags",
      "options": [
        {
          "name": "Update Asset Structured Metadata",
          "value": "updateMetadata",
          "action": "Update asset structured metadata",
          "description": "Deprecated — use the Asset resource instead. Update structured metadata for an existing asset by public ID."
        },
        {
          "name": "Update Asset Tags",
          "value": "updateTags",
          "action": "Update asset tags",
          "description": "Deprecated — use the Asset resource instead. Update tags for an existing asset by public ID."
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "updateAsset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getTags",
      "options": [
        {
          "name": "Get Metadata Fields",
          "value": "getMetadataFields",
          "action": "Get metadata fields definitions",
          "description": "Get all metadata fields definitions"
        },
        {
          "name": "Get Tags",
          "value": "getTags",
          "action": "Get tags for a resource type",
          "description": "Get all tags for a specific resource type"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "admin"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Upload File",
      "value": "uploadFile",
      "action": "Upload an asset from file data",
      "description": "Upload an asset from file data",
      "resource": "upload"
    },
    {
      "name": "Upload From URL",
      "value": "uploadUrl",
      "action": "Upload an asset from URL",
      "description": "Upload an asset from URL",
      "resource": "upload"
    },
    {
      "name": "Compose: Combine Transformations",
      "value": "combineTransformations",
      "action": "Compose: Combine Transformations",
      "description": "Build a delivery URL that chains several transformation steps in order. Outputs secure_url and a reusable transformation string.",
      "resource": "transform"
    },
    {
      "name": "Compose: Custom Transformation String",
      "value": "customTransformation",
      "action": "Compose: Custom Transformation String",
      "description": "Build a delivery URL from a raw Cloudinary transformation string. Outputs secure_url and a reusable transformation string.",
      "resource": "transform"
    },
    {
      "name": "Image: Convert Format",
      "value": "convertImage",
      "action": "Image: Convert Format",
      "description": "Build a delivery URL that converts an image to another format. Outputs secure_url and a reusable transformation string.",
      "resource": "transform"
    },
    {
      "name": "Image: Crop",
      "value": "cropImage",
      "action": "Image: Crop",
      "description": "Build a delivery URL that crops an image to fixed dimensions or an aspect ratio. Outputs secure_url and a reusable transformation string.",
      "resource": "transform"
    },
    {
      "name": "Image: Optimize",
      "value": "optimizeImage",
      "action": "Image: Optimize",
      "description": "Build a delivery URL that auto-optimizes an image (format + quality). Outputs secure_url and a reusable transformation string.",
      "resource": "transform"
    },
    {
      "name": "Image: Resize",
      "value": "resizeImage",
      "action": "Image: Resize",
      "description": "Build a delivery URL that resizes an image to a width and/or height. Outputs secure_url and a reusable transformation string.",
      "resource": "transform"
    },
    {
      "name": "Video: Crop",
      "value": "cropVideo",
      "action": "Video: Crop",
      "description": "Build a delivery URL that crops a video to fixed dimensions or an aspect ratio. Outputs secure_url and a reusable transformation string.",
      "resource": "transform"
    },
    {
      "name": "Video: Optimize",
      "value": "optimizeVideo",
      "action": "Video: Optimize",
      "description": "Build a delivery URL that auto-optimizes a video (format/codec + quality). Outputs secure_url and a reusable transformation string.",
      "resource": "transform"
    },
    {
      "name": "Video: Resize",
      "value": "resizeVideo",
      "action": "Video: Resize",
      "description": "Build a delivery URL that resizes a video to a width and/or height. Outputs secure_url and a reusable transformation string.",
      "resource": "transform"
    },
    {
      "name": "Video: Thumbnail",
      "value": "videoThumbnail",
      "action": "Video: Thumbnail",
      "description": "Build a delivery URL for a still image frame from a video. Outputs secure_url and a reusable transformation string.",
      "resource": "transform"
    },
    {
      "name": "Video: Trim",
      "value": "trimVideo",
      "action": "Video: Trim",
      "description": "Build a delivery URL that trims a video to a start, end, and/or duration. Outputs secure_url and a reusable transformation string.",
      "resource": "transform"
    },
    {
      "name": "Video Player",
      "value": "videoPlayer",
      "action": "Generate a video player",
      "description": "Generate embed code and config for the Cloudinary Video Player. Outputs embed_url and a player_config JSON string.",
      "resource": "widget"
    },
    {
      "name": "Delete Assets",
      "value": "deleteAssets",
      "action": "Delete assets",
      "description": "Delete one or more assets by public ID",
      "resource": "asset"
    },
    {
      "name": "Get Asset",
      "value": "getAsset",
      "action": "Get an asset",
      "description": "Get details for a single asset by asset ID",
      "resource": "asset"
    },
    {
      "name": "Search Assets",
      "value": "search",
      "action": "Search assets",
      "description": "Search for assets using a Cloudinary search expression",
      "resource": "asset"
    },
    {
      "name": "Update Asset Structured Metadata",
      "value": "updateMetadata",
      "action": "Update asset structured metadata",
      "description": "Update structured metadata for an asset by asset ID",
      "resource": "asset"
    },
    {
      "name": "Update Asset Tags",
      "value": "updateTags",
      "action": "Update asset tags",
      "description": "Update tags for an asset by asset ID",
      "resource": "asset"
    },
    {
      "name": "Update Asset Structured Metadata",
      "value": "updateMetadata",
      "action": "Update asset structured metadata",
      "description": "Deprecated — use the Asset resource instead. Update structured metadata for an existing asset by public ID.",
      "resource": "updateAsset"
    },
    {
      "name": "Update Asset Tags",
      "value": "updateTags",
      "action": "Update asset tags",
      "description": "Deprecated — use the Asset resource instead. Update tags for an existing asset by public ID.",
      "resource": "updateAsset"
    },
    {
      "name": "Get Metadata Fields",
      "value": "getMetadataFields",
      "action": "Get metadata fields definitions",
      "description": "Get all metadata fields definitions",
      "resource": "admin"
    },
    {
      "name": "Get Tags",
      "value": "getTags",
      "action": "Get tags for a resource type",
      "description": "Get all tags for a specific resource type",
      "resource": "admin"
    }
  ]

npm_readme:
  # Cloudinary node

  Use the Cloudinary node to automate work in Cloudinary, and integrate Cloudinary with other applications. n8n has built-in support for a wide range of Cloudinary features, including uploading assets, managing tags, and updating metadata.

  On this page, you'll find a list of operations the Cloudinary node supports.

  ## Operations

  * Asset
  	* Upload from URL/file
  	* Update asset tags
  	* Update asset metadata fields
  	* Get tags
  	* Get structured metadata definitions
  	* Search assets
  * Transform (builds a delivery URL — no API call)
  	* Image: Optimize, Resize, Crop, Convert
  	* Video: Optimize, Resize, Crop, Trim, Thumbnail
  	* Custom Transformation (raw transformation string)
  	* Compose: Combine Transformations (multi-step, in one node)
  * Widget
  	* Video Player (builds an embed URL + player config)

  ### Search assets

  Uses the [Cloudinary Search API](https://cloudinary.com/documentation/search_api) to find assets by tag, folder, metadata, or any supported expression (e.g. `tags=cat AND uploaded_at>1d`, `folder:products/*`, `tags="back to school"`).

  The node emits **one n8n item per matching asset**, so downstream nodes can map over results directly without a Split Out step.

  - **Resource Types** — Cloudinary's Search API defaults to image-only when no `resource_type:` clause is in the expression. This node injects the clause automatically based on the Resource Types you select (defaults to `image`). To search across all types, select all three. If your expression already contains a `resource_type:` clause, the selection is ignored.
  - **Return All** — when enabled, the node automatically paginates through Cloudinary's `next_cursor` until all matching assets have been returned. When disabled, only the first page (up to *Max Results*, capped at 500) is returned.
  - **Rate limits** — the node surfaces `429`/`420` responses with a clear "rate limit exceeded" error including the server's `Retry-After`.
  - **Eventual consistency** — newly uploaded assets may take a few seconds to appear in search results. Avoid searching for something you just uploaded in the same workflow without a delay.

  ### Transformations and chaining

  A **transformation** is the instruction string Cloudinary applies when delivering an asset — for example `c_fill,w_400` (crop to 400px wide) or `f_auto/q_auto` (auto format and quality). Each Transform operation builds one and returns it on the output as **`transformation`**, alongside the finished `secure_url`.

  Real edits usually need several transformations applied in sequence ("first crop, then optimize"). In Cloudinary's URL these are **components joined with `/`**, applied left to right — each acts on the output of the one before it. For example `c_fill,w_400/f_auto/q_auto` means *crop, then auto-format, then auto-quality*. There are three ways to build a chain with this node, from simplest to most flexible:

  1. **One operation.** A single Transform op (e.g. *Image: Resize*) when one step is all you need.

  2. **Combine Transformations (one node).** The *Compose → Combine Transformations* operation takes an ordered, reorderable list of steps and chains them inside a single node. Best when the whole recipe is known up front and lives in one place.

  3. **Continue From Transformation (across nodes).** Every chainable Transform op has an optional **Continue From Transformation** field. This is the bridge that makes chaining work across separate nodes, and it relies on one property mapping:

     > The upstream op's **`transformation`** output → the downstream op's **Continue From Transformation** input.

     Wire it with an expression: set *Continue From Transformation* to `{{ $json.transformation }}`. The node prepends that incoming string before the current op's own transformation, so the two compound into one delivery URL. Example — a *Resize* node outputs `transformation: "c_fill,w_400"`; feed it into an *Optimize* node's *Continue From Transformation*, and the Optimize node delivers `c_fill,w_400/f_auto/q_auto`.

     This field is available on all single-purpose Transform ops. It is intentionally **not** offered on *Custom Transformation* (you already control the entire string there) or *Combine Transformations* (which chains its own steps internally).

  **Tip:** *Resize* and *Crop* don't auto-optimize. To also get `f_auto/q_auto`, either add an *Optimize* step in *Combine Transformations*, or chain an *Optimize* node after them via *Continue From Transformation*.

  ### Video Player (Widget)

  The *Widget → Video Player* operation builds a [Cloudinary Video Player](https://cloudinary.com/documentation/video_player_quickstart_guide) embed URL plus a player config. Its **Transformation** field applies to the **played video stream** (it accepts the same `transformation` string the Transform ops emit, so you can wire `{{ $json.transformation }}` here too). A few constraints worth knowing:

  - **Use video-capable transforms.** Image-only effects (e.g. `e_grayscale`) are silently ignored on video and have no visible effect. See [video effects](https://cloudinary.com/documentation/video_effects_and_enhancements).
  - **Adaptive streaming vs. format selection.** If you select an adaptive-streaming **Source Type** (HLS or MPEG-DASH), the transformation must **not** pin a delivery format (an `f_` component such as `f_auto:video`, which an *Optimize* step adds). The two are incompatible — Cloudinary can't apply a streaming profile to a fixed non-streaming format. The node detects this and fails with a clear message; for adaptive streaming, keep the transformation to resize/crop/trim only.
  - **Aspect Ratio crops on top of your Transformation.** Setting an **Aspect Ratio** makes the player re-crop the video to those proportions using the **Crop Mode** field (*Smart*, *Fill*, or *Pad* — default *Smart*). With the default *Smart* mode, that re-crop can't be combined with a Transformation that already crops the video, and the player rejects it. The node fails fast with a clear message; to render either set *Crop Mode* to *Fill* or *Pad*, or clear *Aspect Ratio* and let your Transformation define the framing.

  #### AI-generated content (captions, title, description, chapters)

  The **AI-Generated Content** options let the player generate content on demand — no caption files to author. Toggle **Generate Captions** (auto-transcript shown as toggleable captions), **Generate Title**, **Generate Description**, and/or **Generate Chapters**. The player only generates what doesn't already exist, and transcript generation needs the video's audio to contain dialogue. These options are emitted into the `player_config` (the JS `player.source()` config), not the iframe embed URL. On most accounts these are **enabled by default** under *Settings → Security → Unsigned actions allowed* — so there's nothing to switch on. See the [Video Player customization docs](https://cloudinary.com/documentation/video_player_customization).

  > **Translated subtitles need the Google Translate add-on.** The **Subtitle Languages** field (e.g. `es, fr-FR`) produces AI-*translated* subtitle tracks, which require the **Google Translate** add-on on your account. To enable it:
  > 1. **Register for the add-on** on the [Cloudinary Add-ons page](https://console.cloudinary.com/settings/addons) (Console → *Settings → Add-ons*) — the free tier is enough to try it.
  > 2. Allow it as an unsigned transformation: **Console → *Settings → Security*** → *Unsigned add-on transformations allowed* → enable **Google Translate**.
  >
  > Base captions (the *Generate Captions* toggle, single language) need **no** add-on — only translation into other languages does.

  ## Supported authentication methods

  - API key & API secret

  ## Authentication 
  ### Using API key

  To configure this credential, you'll need a [Cloudinary Account](https://cloudinary.com/users/register_free) and:

  - A **Cloud name**
  - An **API Key**
  - An **API Secret**

  If you're a user with a Master admin, Admin, or Technical admin role, you can find your API keys and other credentials on the API Keys page of the Cloudinary Console Settings:

  1. Navigate to the API Keys pages in the [settings page](https://console.cloudinary.com/settings/api-keys).
  2. Click on **+ Generate New API Key**.
  3. Copy the API Key and API Secret.
  4. From the top of the page copy the **Cloud name**.
  5. Enter the cloud name, api key and api secret to your n8n credential.

  #### Private CDN / custom delivery hostname (advanced)

  Most users can skip this. If your organization is on a **Advanced plan** that uses a [private CDN distribution or a custom delivery hostname (CNAME)](https://cloudinary.com/documentation/advanced_url_delivery_options#private_cdns_and_custom_delivery_hostnames_cnames), enable **Private CDN** in the credential and enter your **Custom Delivery Hostname** so the node builds delivery URLs against your private distribution instead of the default `res.cloudinary.com`. Leave these off if you're unsure — they don't apply to standard accounts.


  ## Related resources

  Refer to [Cloudinary's documentation](https://cloudinary.com/documentation/programmable_media_guides) for more information on this service.

ai_documentation_summary:
  {"purpose":"Automates work in Cloudinary by enabling asset uploads, tag management, and metadata updates through n8n workflows.","capabilities":["Upload assets from URL or file","Update asset tags","Update asset metadata fields","Retrieve asset tags","Get structured metadata definitions"],"authentication":"API key & API secret","commonUseCases":["Automating image uploads to Cloudinary","Managing and organizing media assets with tags","Updating metadata for existing assets"],"limitations":[],"relatedNodes":[]}


node_type: n8n-nodes-powerbi.powerBi
package_name: n8n-nodes-powerbi
display_name: Power BI
description: Work with the Power BI API
category: Power BI
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: androcha
author_github_url: https://github.com/And-Rochaa/
npm_package_name: n8n-nodes-powerbi
npm_version: 2.3.13
community_fetched_at: 2026-07-14T14:40:33.251Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "dashboard",
      "options": [
        {
          "name": "Admin",
          "value": "admin"
        },
        {
          "name": "Dashboard",
          "value": "dashboard"
        },
        {
          "name": "Dataflow",
          "value": "dataflow"
        },
        {
          "name": "Dataset",
          "value": "dataset"
        },
        {
          "name": "Gateway",
          "value": "gateway"
        },
        {
          "name": "Group",
          "value": "group"
        },
        {
          "name": "Report",
          "value": "report"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getInfo",
      "options": [
        {
          "name": "Get Workspace Information",
          "value": "getInfo",
          "action": "Get workspace information",
          "description": "Get detailed information from workspaces"
        },
        {
          "name": "Get Scan Result",
          "value": "getScanResult",
          "action": "Get scan result",
          "description": "Get the scan result from a workspace"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "admin"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List a dashboard",
          "description": "List all dashboards"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a dashboard",
          "description": "Get a specific dashboard"
        },
        {
          "name": "Get Tiles",
          "value": "getTiles",
          "action": "Get tiles from a dashboard",
          "description": "Get tiles from a dashboard"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dashboard"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get Dataflow",
          "value": "get",
          "action": "Get dataflow",
          "description": "Exports the specified dataflow definition to a JSON file"
        },
        {
          "name": "Get Dataflow Data Sources",
          "value": "getDatasources",
          "action": "Get dataflow data sources",
          "description": "Returns a list of data sources for the specified dataflow"
        },
        {
          "name": "Get Dataflow Transactions",
          "value": "getTransactions",
          "action": "Get dataflow transactions",
          "description": "Returns a list of transactions for the specified dataflow"
        },
        {
          "name": "Get Dataflows",
          "value": "list",
          "action": "Get dataflows",
          "description": "Returns a list of all dataflows from the specified workspace"
        },
        {
          "name": "Refresh Dataflow",
          "value": "refresh",
          "action": "Refresh dataflow",
          "description": "Triggers a refresh for the specified dataflow"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dataflow"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Add Rows",
          "value": "addRows",
          "action": "Add rows to a dataset",
          "description": "Add rows to a table"
        },
        {
          "name": "Execute Queries",
          "value": "executeQueries",
          "action": "Execute DAX queries on a dataset",
          "description": "Execute DAX queries on a dataset"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a dataset",
          "description": "Get a specific dataset"
        },
        {
          "name": "Get Refresh History",
          "value": "getRefreshHistory",
          "action": "Get refresh history of a dataset",
          "description": "Get the refresh history of a dataset"
        },
        {
          "name": "Get Tables",
          "value": "getTables",
          "action": "Get tables from a dataset",
          "description": "Get tables from a dataset"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List a dataset",
          "description": "List all datasets"
        },
        {
          "name": "Refresh",
          "value": "refresh",
          "action": "Refresh a dataset",
          "description": "Refresh a dataset"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dataset"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get Datasource",
          "value": "getDatasource",
          "action": "Get datasource",
          "description": "Returns the specified datasource from the specified gateway"
        },
        {
          "name": "Get Datasource Status",
          "value": "getDatasourceStatus",
          "action": "Get datasource status",
          "description": "Checks the connectivity status of the specified datasource"
        },
        {
          "name": "Get Datasource Users",
          "value": "getDatasourceUsers",
          "action": "Get datasource users",
          "description": "Returns a list of users who have access to the specified datasource"
        },
        {
          "name": "Get Datasources",
          "value": "getDatasources",
          "action": "Get datasources",
          "description": "Returns a list of datasources from the specified gateway"
        },
        {
          "name": "Get Gateway",
          "value": "get",
          "action": "Get gateway",
          "description": "Returns the specified gateway"
        },
        {
          "name": "List Gateways",
          "value": "list",
          "action": "List gateways",
          "description": "Returns a list of gateways for which the user is an administrator"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "gateway"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get a group",
          "description": "Get a specific group"
        },
        {
          "name": "Get Dashboards",
          "value": "getDashboards",
          "action": "Get dashboards from a group",
          "description": "Get dashboards from a group"
        },
        {
          "name": "Get Datasets",
          "value": "getDatasets",
          "action": "Get datasets from a group",
          "description": "Get datasets from a group"
        },
        {
          "name": "Get Reports",
          "value": "getReports",
          "action": "Get reports from a group",
          "description": "Get reports from a group"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List a group",
          "description": "List all groups (workspaces)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "group"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "List",
          "value": "list",
          "action": "List a report",
          "description": "List all reports"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a report",
          "description": "Get a specific report"
        },
        {
          "name": "Get Pages",
          "value": "getPages",
          "action": "Get pages from a report",
          "description": "Get pages from a report"
        },
        {
          "name": "Export To File",
          "value": "exportToFile",
          "action": "Export report to file",
          "description": "Export report to various file formats"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "report"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Workspace Information",
      "value": "getInfo",
      "action": "Get workspace information",
      "description": "Get detailed information from workspaces",
      "resource": "admin"
    },
    {
      "name": "Get Scan Result",
      "value": "getScanResult",
      "action": "Get scan result",
      "description": "Get the scan result from a workspace",
      "resource": "admin"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List a dashboard",
      "description": "List all dashboards",
      "resource": "dashboard"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a dashboard",
      "description": "Get a specific dashboard",
      "resource": "dashboard"
    },
    {
      "name": "Get Tiles",
      "value": "getTiles",
      "action": "Get tiles from a dashboard",
      "description": "Get tiles from a dashboard",
      "resource": "dashboard"
    },
    {
      "name": "Get Dataflow",
      "value": "get",
      "action": "Get dataflow",
      "description": "Exports the specified dataflow definition to a JSON file",
      "resource": "dataflow"
    },
    {
      "name": "Get Dataflow Data Sources",
      "value": "getDatasources",
      "action": "Get dataflow data sources",
      "description": "Returns a list of data sources for the specified dataflow",
      "resource": "dataflow"
    },
    {
      "name": "Get Dataflow Transactions",
      "value": "getTransactions",
      "action": "Get dataflow transactions",
      "description": "Returns a list of transactions for the specified dataflow",
      "resource": "dataflow"
    },
    {
      "name": "Get Dataflows",
      "value": "list",
      "action": "Get dataflows",
      "description": "Returns a list of all dataflows from the specified workspace",
      "resource": "dataflow"
    },
    {
      "name": "Refresh Dataflow",
      "value": "refresh",
      "action": "Refresh dataflow",
      "description": "Triggers a refresh for the specified dataflow",
      "resource": "dataflow"
    },
    {
      "name": "Add Rows",
      "value": "addRows",
      "action": "Add rows to a dataset",
      "description": "Add rows to a table",
      "resource": "dataset"
    },
    {
      "name": "Execute Queries",
      "value": "executeQueries",
      "action": "Execute DAX queries on a dataset",
      "description": "Execute DAX queries on a dataset",
      "resource": "dataset"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a dataset",
      "description": "Get a specific dataset",
      "resource": "dataset"
    },
    {
      "name": "Get Refresh History",
      "value": "getRefreshHistory",
      "action": "Get refresh history of a dataset",
      "description": "Get the refresh history of a dataset",
      "resource": "dataset"
    },
    {
      "name": "Get Tables",
      "value": "getTables",
      "action": "Get tables from a dataset",
      "description": "Get tables from a dataset",
      "resource": "dataset"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List a dataset",
      "description": "List all datasets",
      "resource": "dataset"
    },
    {
      "name": "Refresh",
      "value": "refresh",
      "action": "Refresh a dataset",
      "description": "Refresh a dataset",
      "resource": "dataset"
    },
    {
      "name": "Get Datasource",
      "value": "getDatasource",
      "action": "Get datasource",
      "description": "Returns the specified datasource from the specified gateway",
      "resource": "gateway"
    },
    {
      "name": "Get Datasource Status",
      "value": "getDatasourceStatus",
      "action": "Get datasource status",
      "description": "Checks the connectivity status of the specified datasource",
      "resource": "gateway"
    },
    {
      "name": "Get Datasource Users",
      "value": "getDatasourceUsers",
      "action": "Get datasource users",
      "description": "Returns a list of users who have access to the specified datasource",
      "resource": "gateway"
    },
    {
      "name": "Get Datasources",
      "value": "getDatasources",
      "action": "Get datasources",
      "description": "Returns a list of datasources from the specified gateway",
      "resource": "gateway"
    },
    {
      "name": "Get Gateway",
      "value": "get",
      "action": "Get gateway",
      "description": "Returns the specified gateway",
      "resource": "gateway"
    },
    {
      "name": "List Gateways",
      "value": "list",
      "action": "List gateways",
      "description": "Returns a list of gateways for which the user is an administrator",
      "resource": "gateway"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a group",
      "description": "Get a specific group",
      "resource": "group"
    },
    {
      "name": "Get Dashboards",
      "value": "getDashboards",
      "action": "Get dashboards from a group",
      "description": "Get dashboards from a group",
      "resource": "group"
    },
    {
      "name": "Get Datasets",
      "value": "getDatasets",
      "action": "Get datasets from a group",
      "description": "Get datasets from a group",
      "resource": "group"
    },
    {
      "name": "Get Reports",
      "value": "getReports",
      "action": "Get reports from a group",
      "description": "Get reports from a group",
      "resource": "group"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List a group",
      "description": "List all groups (workspaces)",
      "resource": "group"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List a report",
      "description": "List all reports",
      "resource": "report"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a report",
      "description": "Get a specific report",
      "resource": "report"
    },
    {
      "name": "Get Pages",
      "value": "getPages",
      "action": "Get pages from a report",
      "description": "Get pages from a report",
      "resource": "report"
    },
    {
      "name": "Export To File",
      "value": "exportToFile",
      "action": "Export report to file",
      "description": "Export report to various file formats",
      "resource": "report"
    }
  ]

npm_readme:
  ![Power BI Logo](https://i.postimg.cc/3hntXFh3/Integra-o-n8n-e-Power-BI.png)

  # n8n-nodes-powerbi

  This package contains nodes for n8n that enable complete integration with Microsoft Power BI REST APIs. These nodes enable automation, integration, and orchestration of data flows with Power BI directly in n8n.

  ## About the Author

  This Community Node was created and made freely available by **Anderson Rocha from Universo Automático** for the community and was designed to simplify and abstract all the complexity of using Power BI APIs.

  ### Social Media

  - Linkedin: [https://www.linkedin.com/in/andersonsantosrocha](https://www.linkedin.com/in/andersonsantosrocha)
  - YouTube: [https://www.youtube.com/@universoautomatico](https://www.youtube.com/@universoautomatico)
  - Instagram: [https://www.instagram.com/universoautomatico/](https://www.instagram.com/universoautomatico/)
  - N8N + Power BI Training: [https://n8npowerbi.com/](https://n8npowerbi.com/)

  ## Table of Contents

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

  ## Features

  This package offers a unified Power BI node with flexible authentication methods:

  ### Power BI Node

  Comprehensive node that supports two authentication methods:

  1. **OAuth2 Authentication**: Interactive authentication with Microsoft Entra ID (formerly Azure AD)
  2. **Bearer Token Authentication**: Direct token authentication for API integrations

  #### Available Features:
  - Managing reports, dashboards, and datasets
  - Workspace (groups) administration
  - DAX query execution
  - Data refresh operations
  - Report export in multiple formats
  - Gateway management
  - Dataflow operations


  ## Available Resources


  ### Administration Resources
  - **Get Workspace Information**: Retrieves complete details about workspaces, including dataset schema, DAX expressions, lineage, and data sources
  - **Get Scan Results**: Retrieves workspace scan results

  ### Dashboard Resources
  - **List Dashboards**: Retrieves all dashboards in a workspace
  - **Get Dashboard**: Retrieves details of a specific dashboard
  - **Get Tiles**: Retrieves tiles from a dashboard

  ### Dataset Resources
  - **List Datasets**: Retrieves all datasets in a workspace
  - **Get Dataset**: Retrieves details of a specific dataset
  - **Refresh Dataset**: Initiates a dataset refresh operation
  - **Get Tables**: Lists all tables in a dataset
  - **Add Rows**: Adds data to a dataset table
  - **Execute DAX Queries**: Performs DAX language queries on a dataset
  - **Get Refresh History**: Retrieves dataset refresh history

  ### Dataflow Resources
  - **List Dataflows**: Retrieves all dataflows in a workspace
  - **Get Dataflow**: Exports the specified dataflow definition to JSON
  - **Get Dataflow Data Sources**: Returns a list of data sources for the specified dataflow
  - **Get Dataflow Transactions**: Returns a list of transactions for the specified dataflow
  - **Refresh Dataflow**: Triggers a refresh for the specified dataflow

  ### Gateway Resources
  - **List Gateways**: Returns a list of gateways for which the user is an administrator
  - **Get Gateway**: Returns the specified gateway details
  - **Get Datasource**: Returns the specified datasource from the specified gateway
  - **Get Datasources**: Returns a list of datasources from the specified gateway
  - **Get Datasource Status**: Checks the connectivity status of the specified datasource
  - **Get Datasource Users**: Returns a list of users who have access to the specified datasource

  ### Group (Workspace) Resources
  - **List Groups**: Retrieves all accessible workspaces
  - **Get Group**: Retrieves details of a specific workspace
  - **Get Reports**: Lists reports in a workspace
  - **Get Dashboards**: Lists dashboards in a workspace
  - **Get Datasets**: Lists datasets in a workspace

  ### Report Resources
  - **List Reports**: Retrieves all reports in a workspace
  - **Get Report**: Retrieves details of a specific report
  - **Get Pages**: Lists pages in a report
  - **Export File**: Exports a report in various formats

  ## Authentication Methods

  This node supports two authentication methods:

  ### 1. OAuth2 Authentication
  - **Use case**: Applications acting on behalf of a user through interactive authentication flow
  - **Credential type**: Power BI OAuth2 API
  - **Token management**: Automatic refresh when tokens expire

  ### 2. Bearer Token Authentication  
  - **Use case**: Direct API integration with pre-obtained tokens
  - **Credential type**: Power BI API
  - **Token management**: Manual token management required

  ### Choosing Authentication Method

  In the node configuration:
  1. Select **Authentication** type (OAuth2 or Bearer Token)
  2. The appropriate credential field will appear automatically
  3. Configure the matching credential type


  ### AI Tools Integration

  The Power BI node has been configured as an AI tool within n8n, allowing it to:

  1. Be easily accessed by n8n's AI assistant
  2. Be used in natural language-driven automations
  3. Appear in the AI tools palette in the flow editor

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

  To use the Power BI node with OAuth2 authentication, you need to register an application in Microsoft Entra ID (formerly Azure AD). Follow the steps below:

  ### 1. Register a New Application

  1. Access the [Azure Portal](https://portal.azure.com).
  2. Navigate to **Microsoft Entra ID** > **App registrations**.
  3. Click **New registration**.
  4. Provide a name for the application, for example "n8n Power BI Integration".
  5. In **Supported account types**, select **Accounts in this organizational directory only**.
  6. In the **Redirect URI** section, select **Web** and enter: `https://your-n8n-domain/rest/oauth2-credential/callback`.
     - For local development environment, use: `http://localhost:5678/rest/oauth2-credential/callback`
  7. Click **Register**.

  ### 2. Configure API Permissions

  1. In the registered application's side menu, click **API permissions**.
  2. Click **Add a permission**.
  3. Select **Power BI Service**.
  4. You can choose between **Delegated permissions** (for OAuth2) or **Application permissions** (for Service Principal):
     
     **For delegated permissions (recommended for most cases):**
     - Dataset.Read.All
     - Dataset.ReadWrite.All
     - Report.Read.All
     - Report.ReadWrite.All
     - Dashboard.Read.All
     - Dashboard.ReadWrite.All
     - Workspace.Read.All
     - Workspace.ReadWrite.All
     - Content.Create
     - Tenant.Read.All (for administrative functions)
     
     **For application permissions (Service Principal):**
     - Dashboard.Read.All
     - Report.Read.All
     - Dataset.Read.All
     - Workspace.Read.All
     - Tenant.Read.All

  5. Click **Add permissions**.
  6. If using Service Principal, you'll need to request an administrator to **Grant admin consent for [your directory]**.

  ### 3. Create the Client Secret

  1. In the side menu, click **Certificates & secrets**.
  2. In the **Client secrets** section, click **New client secret**.
  3. Add a description and select an expiration period.
  4. Click **Add**.
  5. **IMPORTANT**: Immediately copy the generated secret value, as it cannot be viewed again.

  ### 4. Get Configuration Values

  Note the following values that will be needed to configure the node in n8n:

  - **Client ID**: Found in **Overview** > **Application (client) ID**
  - **Client Secret**: The value you copied when creating the client secret
  - **Tenant ID**: Found in **Overview** > **Directory (tenant) ID**

  ## Using the Node

  ### Power BI Node Configuration

  1. Add the Power BI node to your workflow.
  2. **Select Authentication Method**: Choose between OAuth2 or Bearer Token
  3. **Configure Credentials**:

  #### For OAuth2 Authentication:
  1. Create a "Power BI OAuth2 API" credential with:
     - **Client ID**: The registered application ID
     - **Client Secret**: The generated client secret
     - **Scope**: Leave blank or use `https://analysis.windows.net/powerbi/api/.default`

  #### For Bearer Token Authentication:
  1. Create a "Power BI API" credential with:
     - **Bearer Token**: Your API access token

  4. **Select Resource and Operation**: Choose the desired resource (dashboard, report, dataset, etc.) and operation
  5. **Configure Parameters**: Set operation-specific parameters as needed


  ## Limitations and Troubleshooting

  ### Power BI API Limitations

  - **Rate limits**: The Power BI API imposes rate limits that may vary depending on your license and subscription plan. [Learn more](https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedded-capacity)
  - **Permissions**: Many operations require administrative or owner permissions in the workspace
  - **Some operations require Premium license**: Certain operations like programmatic refresh or DAX queries in large volumes may require Premium capacity


  ## Additional Resources

  - [Official Power BI REST API Documentation](https://docs.microsoft.com/en-us/rest/api/power-bi/)
  - [Power BI Developer Center](https://powerbi.microsoft.com/en-us/developers/)
  - [Power BI API FAQ](https://docs.microsoft.com/en-us/power-bi/developer/embedded/embedded-faq)
  - [Power BI Known Limitations](https://docs.microsoft.com/en-us/power-bi/admin/service-admin-portal-about)
  - [n8n Custom Nodes Documentation](https://docs.n8n.io/integrations/creating-nodes/)

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables full integration with Microsoft Power BI REST APIs for automating data workflows, including managing reports, dashboards, datasets, and dataflows.","capabilities":["Manage Power BI reports, dashboards, and datasets","Administer workspaces and groups","Execute DAX queries on datasets","Trigger data refresh operations for datasets and dataflows","Export reports in multiple formats","Manage Power BI gateways and data sources","List and retrieve workspace, dashboard, and dataset information","Add rows to dataset tables","Retrieve workspace scan results and refresh history"],"authentication":"OAuth2 (Microsoft Entra ID/Azure AD) or Bearer Token (manual API token)","commonUseCases":["Automating data refresh schedules in n8n workflows","Executing DAX queries programmatically","Exporting Power BI reports to external systems","Managing Power BI workspace permissions and groups","Integrating Power BI data into AI-driven automations"],"limitations":["OAuth2 requires setting up application registration in Microsoft Entra ID (Azure AD)","Bearer Token requires manual token management and does not auto-refresh","Some advanced features may require specific Power BI admin permissions","README was truncated, so full setup instructions for Azure AD are incomplete"],"relatedNodes":["HTTP Request","Function","AI Tool (n8n AI Assistant)"]}


