# nodes

node_type: n8n-nodes-outgrow.outgrowTrigger
package_name: n8n-nodes-outgrow
display_name: Outgrow Trigger
description: Fetch leads from Outgrow calculators at regular intervals
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: himanshudevgan
author_github_url: https://github.com/deepgaganventurepact/outgrow-n8n.git
npm_package_name: n8n-nodes-outgrow
npm_version: 0.1.10
community_fetched_at: 2026-07-14T14:40:33.277Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # Outgrow Trigger Node for n8n

  [![n8n Community Node](https://img.shields.io/badge/n8n-Community%20Node-green.svg)](https://n8n.io/integrations)

  Trigger node that fetches leads from Outgrow calculators at configurable intervals.


  ## Features

  - 🕒 **Polling API**: Checks for new leads at customizable intervals (default: 5 minutes)
  - 📋 **Calculator Selection**: Dynamic dropdown of available calculators
  - 🔔 **Smart Notifications**: Clear "no leads" messages in the UI
  - ⚙️ **Manual Trigger**: Instant API calls for testing

  ## Prerequisites

  - Outgrow account with API access
  - API key from [Outgrow Settings](https://app.outgrow.co/settings/api)

  ## Installation

  1. Add the node to your n8n instance
  2. Configure Outgrow API credentials:
     - Navigate to **Credentials > Add New > Outgrow API**
     - Enter your API key

  ## Node Configuration

  ### Parameters
  | Field               | Required | Description                                                                 |
  |---------------------|----------|-----------------------------------------------------------------------------|
  | **Calculator**      | Yes      | Select which Outgrow calculator to monitor                                  |
  | **Polling Interval**| No       | Frequency (in minutes) to check for new leads (default: 5)                  |




  ## API Documentation
  [Outgrow API Reference](https://support.outgrow.co/docs)

ai_documentation_summary:
  {"purpose":"A trigger node that fetches new leads from Outgrow calculators at configurable intervals or via manual trigger.","capabilities":["Polling API for checking new leads","Configurable polling intervals","Calculator selection","Manual trigger for instant API calls","Smart notifications for no leads"],"authentication":"API key required","commonUseCases":["Automated lead collection from Outgrow calculators","Periodic lead monitoring workflows","Testing API connectivity with manual triggers"],"limitations":["Requires Outgrow account with API access","Uses polling mechanism rather than real-time webhooks"],"relatedNodes":["Outgrow Webhook","n8n-nodes-outgrow.outgrowWebhook"]}


node_type: @2chat/n8n-nodes-twochat.twoChat
package_name: @2chat/n8n-nodes-twochat
display_name: 2Chat
description: Sends data to 2Chat
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: 2chat_integrations
author_github_url: https://github.com/2ChatCo/2chat-n8n.git
npm_package_name: @2chat/n8n-nodes-twochat
npm_version: 0.4.2
community_fetched_at: 2026-07-14T14:40:33.278Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-twochat

  This is an n8n community node. It lets you use 2Chat WhatsApp API in your n8n workflows.

  2Chat is a conversational commerce automation platform that makes WhatsApp Messenger and WhatsApp Business programmable through a unified API.

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

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

  ## Installation

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

  ```
  npm install n8n-nodes-twochat
  ```

  ## Operations

  ### Message Resource
  - **Send Message**: Send WhatsApp messages to individual contacts
    - Support for text messages
    - Support for media attachments (images, documents, etc.)
    - Support for location pins

  - **Send Message to group**: Send WhatsApp messages to groups
  	- Support for text messages
    - Support for media attachments (images, documents, etc.)
    - Support for location pins

  ### Phone Number Resource
  - **Check Number**: Verify if a phone number is registered on WhatsApp
    - Get detailed information about the number (region, carrier, timezone)
    - Check if the number is a business account
    - Get business profile information when available

  ### WABA Resource
  - **Send Message**: Send WABA messages to individual contacts
  	- Support for text messages

  - **Send Template Message**: Send WABA template messages to individual contacts
    - Support for template messages

  ## Triggers

  - **WhatsApp Message Events:** Listen for message events
    - New Message: Triggers when a new message is either sent or received on 2Chat. Works for messages sent by agents or your users/customers.
    - Message Received: Triggers when a WhatsApp message is received on your 2Chat connected number.
    - Message Sent: Triggers when a WhatsApp message is sent from your 2Chat connected number.
    - New Conversation: Triggers when a new WhatsApp conversation is started within the specified time period.
    - Message Edited: Triggers when a message is edited. It will also trigger for group messages being edited.
    - Reaction Received: Triggers when a WhatsApp message is reacted to.

  - **WhatsApp Business API Events**: Listen for WhatsApp Business API events
  	- WABA Message Received: Triggers when a new WABA message is received
  	- WABA Message Sent: Triggers when a new WABA message is sent

  - **WhatsApp Calls**: Listen for WhatsApp calls events
  	- Call Made: Triggers when a new WhatsApp call is made
  	- Call Received: Triggers when a new WhatsApp call is received or missed on your connected number

  - **WhatsApp group**: Listen for WhatsApp group events
    - Message Received: Triggers when a new WhatsApp Group Message is received on the configured group
    - Participant Join: Triggers when someone joins a group
    - Participant Left: Triggers when someone leaves a group
    - Participant Removed: Triggers when someone is kicked/removed from a group
    - Message Reaction Received: Triggers when a group participant reacts to a message

  - **Phone Calls**: Listen for phone calls events
  	- Incoming completed: Triggers when an incoming phone call is completed (answered or missed)
  	- Oubound Completed: Triggers when an outbound phone call is completed (answered or failed)
  	- Status Update: Triggers when a phone call status changes (e.g., ringing, answered, ended)

  ## Credentials

  You need to create a 2Chat account and get an API key to use this node.

  1. Create a 2Chat account at [2Chat.co](https://2chat.co)
  2. Connect a WhatsApp channel in the channels section
  3. Get an API key from the developers section
  4. Use this API key in the n8n credentials for the 2Chat node

  ## Compatibility

  - Requires n8n version 1.0.0 or later

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [2Chat API Documentation](https://developers.2chat.co/docs/intro)

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with the 2Chat WhatsApp API to send messages, manage phone numbers, handle WABA resources, and listen to various WhatsApp and call events within automated workflows.","capabilities":["Send text messages to individual contacts","Send media attachments (images, documents) to contacts","Send location pins","Send messages to WhatsApp groups","Check if a phone number is registered on WhatsApp","Get detailed phone number information (region, carrier, timezone)","Check if a number is a business account","Retrieve business profile information","Send WABA template messages","Listen for new message events (sent/received/edited)"],"authentication":"API key required (2Chat API key obtained from 2Chat.co developers section)","commonUseCases":["Automated customer support via WhatsApp","E-commerce order notifications and updates","Marketing campaigns and promotional messages","Lead verification and phone number validation","Automated group management and announcements"],"limitations":["Requires a paid 2Chat account and API key","Requires n8n version 1.0.0 or later","Community node status may imply limited official support compared to official nodes"],"relatedNodes":["n8n HTTP Request","n8n Webhook","n8n Function Item"]}


node_type: @telnyx/n8n-nodes-telnyx-ai.telnyxAi
package_name: @telnyx/n8n-nodes-telnyx-ai
display_name: Telnyx AI
description: Interact with Telnyx AI API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: team-telnyx
author_github_url: https://github.com/team-telnyx/n8n-nodes-telnyx-ai.git
npm_package_name: @telnyx/n8n-nodes-telnyx-ai
npm_version: 1.5.5
community_fetched_at: 2026-07-14T14:40:33.279Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "chat",
      "options": [
        {
          "name": "Assistant",
          "value": "assistants"
        },
        {
          "name": "Assistant Event",
          "value": "assistantEvents"
        },
        {
          "name": "Chat",
          "value": "chat"
        },
        {
          "name": "Conversation",
          "value": "conversations"
        },
        {
          "name": "Voice",
          "value": "voice"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many chat models",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                },
                {
                  "type": "setKeyValue",
                  "enabled": "={{$parameter[\"simplify\"]}}",
                  "properties": {
                    "id": "={{$responseItem.id}}",
                    "created": "={{$responseItem.created}}",
                    "owned_by": "={{$responseItem.owned_by}}",
                    "languages": "={{$responseItem.languages}}",
                    "parameters": "={{$responseItem.parameters}}",
                    "context_length": "={{$responseItem.context_length}}"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/models",
              "method": "GET"
            }
          },
          "description": "Returns metadata about many chat models"
        },
        {
          "name": "Create Chat Completion",
          "value": "createChatCompletion",
          "action": "Create chat completion",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v2/ai/chat/completions",
              "method": "POST"
            }
          },
          "description": "Chat a new chat completion with a language model"
        },
        {
          "name": "Summarize File",
          "value": "summarizeFile",
          "action": "Summarize file content",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/summarize",
              "method": "POST"
            }
          },
          "description": "Generate a summary of a file's contents"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many voices",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "voices"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/text-to-speech/voices",
              "method": "GET"
            }
          },
          "description": "Returns metadata about many voices"
        },
        {
          "name": "Text to Speech",
          "value": "textToSpeech",
          "action": "Convert text to speech",
          "routing": {
            "output": {
              "postReceive": [
                null
              ]
            },
            "request": {
              "url": "/v2/text-to-speech/speech",
              "method": "POST",
              "encoding": "arraybuffer",
              "returnFullResponse": true
            }
          },
          "description": "Converts text into speech and returns audio"
        },
        {
          "name": "Speech to Text",
          "value": "speechToText",
          "action": "Transcribe audio",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/v2/ai/audio/transcriptions",
              "method": "POST",
              "headers": {
                "Content-Type": "multipart/form-data"
              }
            }
          },
          "description": "Transcribe an audio file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "voice"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many assistants",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/assistants",
              "method": "GET"
            }
          },
          "description": "Returns a list of many AI Assistants configured by the user"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an assistant",
          "routing": {
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}",
              "method": "GET"
            }
          },
          "description": "Returns a specific AI Assistant by ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assistants"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a scheduled event",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
              "method": "POST"
            }
          },
          "description": "Create a new scheduled event for an assistant"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many events",
          "routing": {
            "send": {
              "paginate": "page_number",
              "property": "page_size"
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
              "method": "GET"
            }
          },
          "description": "Get scheduled events for an assistant with pagination and filtering"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get an event",
          "routing": {
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
              "method": "GET"
            }
          },
          "description": "Retrieve a scheduled event by event ID"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete an event",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "set",
                  "properties": {
                    "value": "={{ { \"deleted\": true } }}"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
              "method": "DELETE",
              "returnFullResponse": true
            }
          },
          "description": "Delete a scheduled event by event ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "assistantEvents"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many conversations",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "/v2/ai/conversations",
              "method": "GET"
            }
          },
          "description": "Returns a list of conversations"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a conversation",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}",
              "method": "GET"
            }
          },
          "description": "Returns a specific conversation by ID"
        },
        {
          "name": "Get Messages",
          "value": "getMessages",
          "action": "Get conversation messages",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/messages",
              "method": "GET"
            }
          },
          "description": "Retrieve messages for a specific conversation, including tool calls made by the assistant"
        },
        {
          "name": "Get Conversation Insights",
          "value": "getConversationInsights",
          "action": "Get insights for a conversation",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/conversations-insights",
              "method": "GET"
            }
          },
          "description": "Retrieve insights for a specific conversation"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "conversations"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many chat models",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            },
            {
              "type": "setKeyValue",
              "enabled": "={{$parameter[\"simplify\"]}}",
              "properties": {
                "id": "={{$responseItem.id}}",
                "created": "={{$responseItem.created}}",
                "owned_by": "={{$responseItem.owned_by}}",
                "languages": "={{$responseItem.languages}}",
                "parameters": "={{$responseItem.parameters}}",
                "context_length": "={{$responseItem.context_length}}"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/models",
          "method": "GET"
        }
      },
      "description": "Returns metadata about many chat models",
      "resource": "chat"
    },
    {
      "name": "Create Chat Completion",
      "value": "createChatCompletion",
      "action": "Create chat completion",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v2/ai/chat/completions",
          "method": "POST"
        }
      },
      "description": "Chat a new chat completion with a language model",
      "resource": "chat"
    },
    {
      "name": "Summarize File",
      "value": "summarizeFile",
      "action": "Summarize file content",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/summarize",
          "method": "POST"
        }
      },
      "description": "Generate a summary of a file's contents",
      "resource": "chat"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many voices",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "voices"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/text-to-speech/voices",
          "method": "GET"
        }
      },
      "description": "Returns metadata about many voices",
      "resource": "voice"
    },
    {
      "name": "Text to Speech",
      "value": "textToSpeech",
      "action": "Convert text to speech",
      "routing": {
        "output": {
          "postReceive": [
            null
          ]
        },
        "request": {
          "url": "/v2/text-to-speech/speech",
          "method": "POST",
          "encoding": "arraybuffer",
          "returnFullResponse": true
        }
      },
      "description": "Converts text into speech and returns audio",
      "resource": "voice"
    },
    {
      "name": "Speech to Text",
      "value": "speechToText",
      "action": "Transcribe audio",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/v2/ai/audio/transcriptions",
          "method": "POST",
          "headers": {
            "Content-Type": "multipart/form-data"
          }
        }
      },
      "description": "Transcribe an audio file",
      "resource": "voice"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many assistants",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/assistants",
          "method": "GET"
        }
      },
      "description": "Returns a list of many AI Assistants configured by the user",
      "resource": "assistants"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an assistant",
      "routing": {
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}",
          "method": "GET"
        }
      },
      "description": "Returns a specific AI Assistant by ID",
      "resource": "assistants"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a scheduled event",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
          "method": "POST"
        }
      },
      "description": "Create a new scheduled event for an assistant",
      "resource": "assistantEvents"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many events",
      "routing": {
        "send": {
          "paginate": "page_number",
          "property": "page_size"
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events",
          "method": "GET"
        }
      },
      "description": "Get scheduled events for an assistant with pagination and filtering",
      "resource": "assistantEvents"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an event",
      "routing": {
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
          "method": "GET"
        }
      },
      "description": "Retrieve a scheduled event by event ID",
      "resource": "assistantEvents"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete an event",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "set",
              "properties": {
                "value": "={{ { \"deleted\": true } }}"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/assistants/{{$parameter[\"assistant\"]}}/scheduled_events/{{$parameter[\"eventId\"]}}",
          "method": "DELETE",
          "returnFullResponse": true
        }
      },
      "description": "Delete a scheduled event by event ID",
      "resource": "assistantEvents"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many conversations",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "/v2/ai/conversations",
          "method": "GET"
        }
      },
      "description": "Returns a list of conversations",
      "resource": "conversations"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a conversation",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}",
          "method": "GET"
        }
      },
      "description": "Returns a specific conversation by ID",
      "resource": "conversations"
    },
    {
      "name": "Get Messages",
      "value": "getMessages",
      "action": "Get conversation messages",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/messages",
          "method": "GET"
        }
      },
      "description": "Retrieve messages for a specific conversation, including tool calls made by the assistant",
      "resource": "conversations"
    },
    {
      "name": "Get Conversation Insights",
      "value": "getConversationInsights",
      "action": "Get insights for a conversation",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/v2/ai/conversations/{{$parameter[\"conversationId\"]}}/conversations-insights",
          "method": "GET"
        }
      },
      "description": "Retrieve insights for a specific conversation",
      "resource": "conversations"
    }
  ]

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

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

  Telnyx Voice AI is a comprehensive platform that provides advanced conversational AI capabilities, including text-to-speech, speech-to-text, chat completions, and voice assistants with real-time interaction 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)  
  [Version history](#version-history)

  ## Installation

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

  You can install this package using npm:

  ```bash
  npm install @telnyx/n8n-nodes-telnyx-ai
  ```

  ## Operations

  This node supports the following resources and operations:

  ### Assistants

  - **Get Many**: Retrieve a list of AI Assistants configured by the user
  - **Get**: Get details of a specific assistant

  ### Assistant Events

  - **Create**: Create a scheduled event for an assistant
  - **Get Many**: Get a list of assistant events
  - **Get**: Get details of a specific event
  - **Delete**: Delete an assistant event

  ### Chat

  - **Get Many Models**: Get metadata about available chat models
  - **Create Chat Completion**: Generate chat completions using AI models
  - **Summarize**: Summarize file content using AI

  ### Conversations

  - **Get Many**: Retrieve a list of conversations
  - **Get**: Get details of a specific conversation
  - **Get Messages**: Get messages from a conversation
  - **Get Insights**: Get AI-generated insights for a conversation

  ### Voice

  - **Get Many Voices**: Get metadata about available voice models
  - **Text to Speech**: Convert text to speech audio
  - **Speech to Text**: Transcribe audio to text

  ## Credentials

  To use this node, you need to authenticate with the Telnyx API using your API key.

  ### Prerequisites

  1. Sign up for a [Telnyx account](https://telnyx.com)
  2. Navigate to your [API Keys page](https://portal.telnyx.com/#/app/api-keys) in the Telnyx Portal
  3. Generate a new API key or use an existing one

  ### Setting up credentials in n8n

  1. In n8n, go to **Credentials** and create new credentials
  2. Search for "Telnyx API" and select it
  3. Enter your Telnyx API key in the **API Key** field
  4. Test the credentials to ensure they work correctly

  For more information about Telnyx API keys, refer to the [official documentation](https://support.telnyx.com/en/articles/4305158-api-keys-and-how-to-use-them).

  ## Compatibility

  - **Minimum n8n version**: 1.0.0
  - **Node.js version**: >=20.15
  - **Tested with**: n8n 1.x.x

  This node is built using n8n's programmatic-style node architecture and follows the latest n8n development best practices.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [Telnyx Voice AI API documentation](https://developers.telnyx.com/docs/api/v2/ai)
  - [Telnyx Portal](https://portal.telnyx.com)
  - [Telnyx Support](https://support.telnyx.com)

  ## Version history

  ### 1.5.5 (Current)

  - Comprehensive Telnyx Voice AI integration
  - Support for Assistants, Chat, Voice, Conversations, and Assistant Events
  - Full CRUD operations for assistant events
  - Text-to-speech and speech-to-text capabilities
  - Chat completions and file summarization
  - Conversation insights and message management

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Telnyx Voice AI to perform conversational AI tasks including text-to-speech, speech-to-text, chat completions, and voice assistant management within n8n workflows.","capabilities":["Retrieve and manage AI Assistants (Get, Get Many)","Create, retrieve, delete, and list Assistant Events","Manage conversations (Get, Get Many, Get Messages, Get Insights)","Generate chat completions using AI models","Summarize file content using AI","Retrieve available chat models and voice models metadata","Perform Text-to-Speech conversion","Perform Speech-to-Text transcription"],"authentication":"API key required","commonUseCases":["Automated customer service interactions using voice assistants","Converting text documents or transcripts to speech for announcements","Transcribing audio recordings for analysis or storage","Integrating AI chatbots into n8n workflows for customer support","Generating summaries from large text files or conversation logs"],"limitations":["Node is a community node and may lack official n8n support updates","Requires valid Telnyx API key and account access"],"relatedNodes":["Telnyx Voice","Telnyx Twilio","Generic HTTP Request","Generic AI"]}


node_type: @lnkbio/n8n-nodes-lnkbio.lnkBio
package_name: @lnkbio/n8n-nodes-lnkbio
display_name: Lnk.Bio
description: Create and manage links on Lnk.Bio
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: lnkbiodevs
author_github_url: https://github.com/gimucco/n8n-nodes-lnkbio.git
npm_package_name: @lnkbio/n8n-nodes-lnkbio
npm_version: 0.2.2
community_fetched_at: 2026-07-14T14:40:33.280Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Link",
          "value": "create",
          "action": "Create a new link",
          "description": "Create a new Lnk"
        },
        {
          "name": "Delete Link",
          "value": "delete",
          "action": "Delete an existing link",
          "description": "Delete an existing Lnk"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Link",
      "value": "create",
      "action": "Create a new link",
      "description": "Create a new Lnk"
    },
    {
      "name": "Delete Link",
      "value": "delete",
      "action": "Delete an existing link",
      "description": "Delete an existing Lnk"
    }
  ]

npm_readme:
  # n8n-nodes-lnkbio

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

  Lnk.Bio is a linkinbio service used by more than 1.5M creators to manage their social media links.

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

  ## Installation

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

  ## Operations

  Lnk.Bio only support 2 Actions: Create a Lnk, and Delete a Lnk.

  There are no triggers, as Lnk.Bio is considered output-only when it comes to automation services.

  ## Credentials

  You need a Client ID and Client Secret from Lnk.Bio to correctly authenticate your API calls.

  1. Register a free account from https://lnk.bio/signup
  2. Verify your email
  3. Navigate to Tools => Developers/API
  4. Create a new Public App to retrieve the Client ID and Client Secret.

  Do note that if you're only looking to automate your own Lnk.Bio account, you won't need to go through app review.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Lnk.Bio help site](https://help.lnk.bio)
  * [Lnk.Bio API specs](https://api.lnk.bio)

  ## Version history

  * 0.2.2 - Added scheduled_from and scheduled_to parameters to align with the latest version of the Lnk.Bio APIs. The new parameters allow users to schedule links in advance and/or set an expiration date.

  * 0.1.9 - Add pairedItem to response handling in LnkBio node

  * 0.1.7 - Updated deprecated requestOAuth2 to httpRequestWithAuthentication; Implemented continueOnFail(); Removed includeCredentialsOnAuthorization and bodyFormat;

  * 0.1.5 - Credentials fix

  * 0.1.3 - Credentials fix

  * 0.1.2 - Lint Fixes

  * 0.1.0 - initial version

ai_documentation_summary:
  {"purpose":"A community node for creating and managing social media links on Lnk.Bio within n8n workflows.","capabilities":["Create new Lnk.Bio links","Delete existing Lnk.Bio links","Schedule links in advance","Set expiration dates for links"],"authentication":"OAuth2 (Client ID and Client Secret required)","commonUseCases":["Automating link-in-bio profile updates","Managing creator social media links","Scheduling temporary link campaigns"],"limitations":["Only supports create and delete actions (no triggers)","Output-only integration type","Requires manual app registration for automation"],"relatedNodes":["n8n HTTP Request node","n8n Schedule node"]}


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

updated_at: 2026-07-14 14:40:33
author_name: bcharleson
author_github_url: https://github.com/Instantly-ai/
npm_package_name: n8n-nodes-instantly
npm_version: 0.1.7543
community_fetched_at: 2026-07-14T14:40:33.281Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "campaign",
      "options": [
        {
          "name": "Account",
          "value": "account"
        },
        {
          "name": "Analytics",
          "value": "analytics"
        },
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Lead",
          "value": "lead"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a campaign",
          "description": "Create a campaign"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a campaign",
          "description": "Delete a campaign"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a campaign",
          "description": "Get a campaign"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many campaigns",
          "description": "Get many campaigns"
        },
        {
          "name": "Launch",
          "value": "launch",
          "action": "Launch a campaign",
          "description": "Launch (activate) a campaign"
        },
        {
          "name": "Pause",
          "value": "pause",
          "action": "Pause a campaign",
          "description": "Pause a campaign"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a campaign",
          "description": "Update a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Add Lead to Campaign",
          "value": "addToCampaign",
          "action": "Add lead to campaign",
          "description": "Create a lead and add to campaign"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a lead",
          "description": "Create a lead"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a lead",
          "description": "Delete a lead"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a lead",
          "description": "Get a lead"
        },
        {
          "name": "Get Many",
          "value": "getMany",
          "action": "Get many leads",
          "description": "Get many leads"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a lead",
          "description": "Update a lead"
        },
        {
          "name": "Update Interest Status",
          "value": "updateInterestStatus",
          "action": "Update lead interest status",
          "description": "Update lead interest status"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getMany",
      "options": [
        {
          "name": "Get Many Accounts",
          "value": "getMany",
          "action": "Get many email accounts",
          "description": "Get many email accounts"
        },
        {
          "name": "Get Single Account",
          "value": "get",
          "action": "Get a single email account",
          "description": "Get a single email account by email address"
        },
        {
          "name": "Pause Account",
          "value": "pause",
          "action": "Pause an email account",
          "description": "Pause an email account to stop sending"
        },
        {
          "name": "Resume Account",
          "value": "resume",
          "action": "Resume an email account",
          "description": "Resume a paused email account"
        },
        {
          "name": "Create Account",
          "value": "create",
          "action": "Create an email account",
          "description": "Create a new email account"
        },
        {
          "name": "Delete Account",
          "value": "deleteAccount",
          "action": "Delete an email account",
          "description": "Delete an email account"
        },
        {
          "name": "Enable Warmup",
          "value": "enableWarmup",
          "action": "Enable account warmup",
          "description": "Enable warmup for an email account"
        },
        {
          "name": "Disable Warmup",
          "value": "disableWarmup",
          "action": "Disable account warmup",
          "description": "Disable warmup for an email account"
        },
        {
          "name": "Update Account",
          "value": "update",
          "action": "Update an email account",
          "description": "Update account settings and details"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "account"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getCampaignAnalytics",
      "options": [
        {
          "name": "Get Campaign Analytics",
          "value": "getCampaignAnalytics",
          "action": "Get campaign analytics",
          "description": "Get analytics for a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "analytics"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a campaign",
      "description": "Create a campaign",
      "resource": "campaign"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a campaign",
      "description": "Delete a campaign",
      "resource": "campaign"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a campaign",
      "description": "Get a campaign",
      "resource": "campaign"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many campaigns",
      "description": "Get many campaigns",
      "resource": "campaign"
    },
    {
      "name": "Launch",
      "value": "launch",
      "action": "Launch a campaign",
      "description": "Launch (activate) a campaign",
      "resource": "campaign"
    },
    {
      "name": "Pause",
      "value": "pause",
      "action": "Pause a campaign",
      "description": "Pause a campaign",
      "resource": "campaign"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a campaign",
      "description": "Update a campaign",
      "resource": "campaign"
    },
    {
      "name": "Add Lead to Campaign",
      "value": "addToCampaign",
      "action": "Add lead to campaign",
      "description": "Create a lead and add to campaign",
      "resource": "lead"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a lead",
      "description": "Create a lead",
      "resource": "lead"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a lead",
      "description": "Delete a lead",
      "resource": "lead"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a lead",
      "description": "Get a lead",
      "resource": "lead"
    },
    {
      "name": "Get Many",
      "value": "getMany",
      "action": "Get many leads",
      "description": "Get many leads",
      "resource": "lead"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a lead",
      "description": "Update a lead",
      "resource": "lead"
    },
    {
      "name": "Update Interest Status",
      "value": "updateInterestStatus",
      "action": "Update lead interest status",
      "description": "Update lead interest status",
      "resource": "lead"
    },
    {
      "name": "Get Many Accounts",
      "value": "getMany",
      "action": "Get many email accounts",
      "description": "Get many email accounts",
      "resource": "account"
    },
    {
      "name": "Get Single Account",
      "value": "get",
      "action": "Get a single email account",
      "description": "Get a single email account by email address",
      "resource": "account"
    },
    {
      "name": "Pause Account",
      "value": "pause",
      "action": "Pause an email account",
      "description": "Pause an email account to stop sending",
      "resource": "account"
    },
    {
      "name": "Resume Account",
      "value": "resume",
      "action": "Resume an email account",
      "description": "Resume a paused email account",
      "resource": "account"
    },
    {
      "name": "Create Account",
      "value": "create",
      "action": "Create an email account",
      "description": "Create a new email account",
      "resource": "account"
    },
    {
      "name": "Delete Account",
      "value": "deleteAccount",
      "action": "Delete an email account",
      "description": "Delete an email account",
      "resource": "account"
    },
    {
      "name": "Enable Warmup",
      "value": "enableWarmup",
      "action": "Enable account warmup",
      "description": "Enable warmup for an email account",
      "resource": "account"
    },
    {
      "name": "Disable Warmup",
      "value": "disableWarmup",
      "action": "Disable account warmup",
      "description": "Disable warmup for an email account",
      "resource": "account"
    },
    {
      "name": "Update Account",
      "value": "update",
      "action": "Update an email account",
      "description": "Update account settings and details",
      "resource": "account"
    },
    {
      "name": "Get Campaign Analytics",
      "value": "getCampaignAnalytics",
      "action": "Get campaign analytics",
      "description": "Get analytics for a campaign",
      "resource": "analytics"
    }
  ]

npm_readme:
  # n8n-nodes-instantly

  This is an n8n community node for integrating with the [Instantly](https://instantly.ai) API v2. It provides comprehensive access to Instantly's email outreach platform, allowing you to manage campaigns, accounts, leads, and analytics directly from n8n workflows.

  ## Installation

  ### Community Nodes (Recommended)

  For users on n8n v0.187.0+, install directly through the n8n interface:

  1. Go to **Settings > Community Nodes**
  2. Click **Install**
  3. Enter `n8n-nodes-instantly`
  4. Click **Download**

  ### Manual Installation

  ```bash
  npm install n8n-nodes-instantly
  ```

  ## Quick Setup

  1. **Get API Key**: Go to [Instantly Dashboard](https://app.instantly.ai) → Settings → Integrations → API
  2. **Add Node**: In n8n, search for "Instantly" in the node palette
  3. **Configure Credentials**: Enter your Instantly API key
  4. **Select Operation**: Choose from the available resources and operations below

  ## Usage Examples

  ### Create and Launch a Campaign
  1. **Create Campaign**: Set up your email sequences and targeting
  2. **Add Leads**: Import or create leads for your campaign
  3. **Launch Campaign**: Activate your campaign to start sending emails

  ### Account Management Workflow
  1. **Create Account**: Add new email accounts with SMTP settings
  2. **Enable Warmup**: Start the warmup process for new accounts
  3. **Monitor Status**: Check account health and sending limits
  4. **Pause/Resume**: Control account activity as needed

  ### Lead Management Process
  1. **Import Leads**: Create leads with custom variables
  2. **Assign to Campaigns**: Add leads to specific email campaigns
  3. **Track Engagement**: Monitor lead responses and interest levels
  4. **Update Status**: Manage lead lifecycle and follow-up actions

  ## Supported Operations

  ### 📧 **Campaign Management**
  - **Create Campaign**: Create new email campaigns with sequences and variants
  - **Get Campaign**: Retrieve campaign details by ID
  - **Get Many Campaigns**: List all campaigns with pagination
  - **Update Campaign**: Modify campaign settings and content
  - **Delete Campaign**: Remove campaigns
  - **Launch Campaign**: Start campaign execution
  - **Pause Campaign**: Pause running campaigns

  ### 👤 **Account Management**
  - **Create Account**: Add new email accounts with SMTP configuration
  - **Get Account**: Retrieve account details by email
  - **Get Many Accounts**: List all email accounts
  - **Update Account**: Modify account settings and limits
  - **Delete Account**: Remove email accounts
  - **Pause Account**: Stop account from sending emails
  - **Resume Account**: Reactivate paused accounts
  - **Enable Warmup**: Start email warmup process ✨
  - **Disable Warmup**: Stop email warmup process ✨

  ### 🎯 **Lead Management**
  - **Create Lead**: Add new leads with custom variables and data
  - **Get Lead**: Retrieve detailed lead information by ID
  - **Get Many Leads**: List leads with advanced filtering and pagination
  - **Update Lead**: Modify lead details, status, and custom variables
  - **Delete Lead**: Remove leads from your database
  - **Add Lead to Campaign**: Create and assign leads to specific campaigns
  - **Update Interest Status**: Manage lead engagement and interest levels

  ### 📊 **Analytics & Reporting**
  - **Get Campaign Analytics**: Retrieve comprehensive campaign performance metrics and statistics

  ### 📬 **Unibox Email Management**
  - **Get Many Unibox Messages**: List inbox messages with advanced filtering (search, campaign, account, read status, email type, lead, sort)
  - **Get Unibox Message**: Retrieve single message details by ID
  - **Update Unibox Message**: Modify message properties and metadata
  - **Delete Unibox Message**: Remove messages from inbox
  - **Get Unread Count**: Count unread messages in inbox
  - **Mark Thread as Read**: Mark entire email thread as read
  - **Reply to Unibox Message**: Send email replies directly from n8n

  ## Key Features

  🚀 **Full API v2 Support**: Complete integration with Instantly's latest API
  📊 **Comprehensive Operations**: 31 operations across campaigns, accounts, leads, analytics, and email management
  ⚡ **Advanced Account Management**: Full warmup control and SMTP configuration
  🎯 **Campaign Control**: Launch, pause, and manage email campaigns with precision
  📈 **Lead Management**: Complete lead lifecycle management and campaign assignment
  📬 **Email Management**: Unified inbox with thread management, filtering, and reply capabilities
  🔄 **Pagination Support**: Handle large datasets efficiently with built-in pagination
  ⚡ **Robust Error Handling**: Detailed error feedback and validation
  🎯 **Resource Locators**: Intuitive account and campaign selection interface
  📊 **Bulk Operations**: Manage multiple accounts and leads simultaneously
  🔒 **Secure Integration**: API key-based authentication with proper credential management

  ## Requirements

  - n8n v0.187.0 or higher
  - Instantly account with API access (Hypergrowth plan or above)
  - Valid Instantly API key

  ## Resources

  - [Instantly API Documentation](https://developer.instantly.ai/api/v2)
  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [GitHub Repository](https://github.com/Instantly-ai/n8n-nodes-instantly)

  ## Support

  - **GitHub Issues**: [Report bugs or request features](https://github.com/Instantly-ai/n8n-nodes-instantly/issues)
  - **Email**: brandon@instantly.ai

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables full integration with the Instantly API v2 to manage email outreach campaigns, accounts, leads, and inbox messages directly from n8n workflows.","capabilities":["Create, retrieve, update, delete, and launch email campaigns","Manage email accounts including SMTP configuration and warmup control","Create, filter, update, and assign leads to campaigns","Track campaign analytics and performance metrics","Access and manage Unibox inbox messages with filtering and reply capabilities","Support for pagination in list operations","Robust error handling and validation"],"authentication":"API key required","commonUseCases":["Automating cold email outreach campaigns","Managing email account warmup processes","Tracking lead engagement and campaign performance","Handling email replies from an automated inbox"],"limitations":["Requires Instantly account with Hypergrowth plan or above","Requires n8n version 0.187.0 or higher","Requires manual installation for versions prior to 0.187.0"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: n8n-nodes-triggercmd.triggercmd
package_name: n8n-nodes-triggercmd
display_name: TriggerCMD
description: Run a command on a computer.
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: rvandermey
author_github_url: https://github.com/rvmey/
npm_package_name: n8n-nodes-triggercmd
npm_version: 1.0.2
community_fetched_at: 2026-07-14T14:40:33.282Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-triggercmd

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

  TRIGGERcmd is a cloud service that allows you to run commands on your computers via the Internet.  You install the TRIGGERcmd agent on your Windows, Mac, or Linux computer, configure commands to run, then run them.

  [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

  Run a command on a computer.

  ## Credentials

  Create an account at triggercmd.com and copy a token from the Instructions page.

  ## Compatibility

  Tested on n8n version 1.106.3

  ## Usage

  If the command you'll run on your computer via TRIGGERcmd has parameters enabled, you can use n8n node input data as command parameters.

  ## Resources

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

ai_documentation_summary:
  {"purpose":"Executes commands on remote computers (Windows, Mac, or Linux) via the TRIGGERcmd cloud service within n8n workflows.","capabilities":["Run system commands on remote machines","Support dynamic command parameters from n8n node inputs","Cross-platform support (Windows, Mac, Linux)"],"authentication":"API token required (obtained from triggercmd.com account)","commonUseCases":["Automated system maintenance tasks","Remote file operations","Process management on remote servers"],"limitations":["Requires TRIGGERcmd agent installation on target machines","Requires separate TRIGGERcmd account and token setup","Limited to commands supported by the TRIGGERcmd service"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code"]}


node_type: @cloudsway-ai/n8n-nodes-cloudsway.smartSearch
package_name: @cloudsway-ai/n8n-nodes-cloudsway
display_name: SmartSearch
description: Performs web searches using SmartSearch API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: cloudsway-ai
author_github_url: https://github.com/Cloudsway-AI/n8n-nodes-cloudsway.git
npm_package_name: @cloudsway-ai/n8n-nodes-cloudsway
npm_version: 0.1.3
community_fetched_at: 2026-07-14T14:40:33.283Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "smartSearch",
      "options": [
        {
          "name": "Smart Search",
          "value": "smartSearch",
          "action": "Perform a web search using smart search",
          "routing": {
            "request": {
              "url": "/smart",
              "method": "GET"
            }
          },
          "description": "Perform a web search using SmartSearch"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Smart Search",
      "value": "smartSearch",
      "action": "Perform a web search using smart search",
      "routing": {
        "request": {
          "url": "/smart",
          "method": "GET"
        }
      },
      "description": "Perform a web search using SmartSearch"
    }
  ]

npm_readme:
  # n8n-nodes-cloudsway

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

  SmartSearch is a web search API service that provides search functionality with options for pagination, language settings, freshness filtering, and site restrictions.

  ## Features

  ### SmartSearch

  This node performs web searches using the Cloudsway SmartSearch API with the following options:

  - **Smart Search**: Performs a web search and returns results in JSON format

  ### Parameters

  - **Query**: (Required) The search query string (cannot be empty)
  - **Count**: (Optional) Number of results to return (default: 10, options: 10, 20, 30, 40, 50, max: 50)
  - **Offset**: (Optional) Zero-based offset for pagination (default: 0)
  - **Language**: (Optional) Language code for results (recommended 4-letter codes like en-US, default: 'en')
  - **Freshness**: (Optional) Time filter for search results (options: Day, Week, Month)
  - **Sites**: (Optional) Restrict results to a specific host (e.g., github.com)

  ## Credentials

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

  1. Log in to www.cloudsway.ai or contact info@cloudsway.com to get your Endpoint and API Key
  2. In n8n, create new credentials for "SmartSearch API"
  3. Enter your Endpoint and API Key in the respective fields

  The credential configuration requires:
  - **Endpoint**: Your SmartSearch endpoint name
  - **API Key**: Your private API key (stored securely)

  ## Usage

  1. Add the SmartSearch node to your workflow
  2. Configure the credentials
  3. Enter your search query
  4. Optionally configure additional parameters:
     - Adjust the count to control the number of results (10, 20, 30, 40, or 50)
     - Set an offset for pagination
     - Choose a language code (recommended 4-letter codes like en-US)
     - Select a freshness filter (Day, Week, or Month)
     - Restrict results to specific sites (e.g., github.com)

  The node returns search results that can be used in subsequent nodes.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Cloudsway SmartSearch API documentation](https://docs.cloudsway.net/IntelliSearch/api-reference/smartsearch/)
  * For support, contact info@cloudsway.com

ai_documentation_summary:
  {"purpose":"Performs web searches using the Cloudsway SmartSearch API with support for pagination, language filtering, freshness options, and site restrictions.","capabilities":["Web search execution","Pagination support (count and offset)","Language filtering (4-letter codes)","Freshness filtering (Day, Week, Month)","Site restriction filtering","JSON formatted results output"],"authentication":"API Key required (Endpoint and API Key in credentials)","commonUseCases":["Real-time web information retrieval","Multi-language search queries","Time-sensitive search results","Targeted search within specific domains"],"limitations":["Count parameter limited to maximum 50 results","Requires separate credential setup in n8n","Language codes must be 4-letter format"],"relatedNodes":["HTTP Request","JSON Response","Code"]}


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

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

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

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

  # n8n-nodes-friendgrid

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

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

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

  ## Prerequisites

  You need the following installed on your development machine:

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

  ## Using this starter

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

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

  ## More information

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

  ## ScreenshotBase Node

  Capture website screenshots using the ScreenshotBase API.

  ### Credentials

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

  ### Operation

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

  ### Notes

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

  ## License

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

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


node_type: n8n-nodes-dumplingai.dumplingAi
package_name: n8n-nodes-dumplingai
display_name: Dumpling AI
description: Interact with Dumpling AI APIs (data, web scraping, document conversion, AI, etc.)
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: dumplingai
author_github_url: https://github.com/dumplingai/
npm_package_name: n8n-nodes-dumplingai
npm_version: 0.1.1
community_fetched_at: 2026-07-14T14:40:33.285Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "dataApi",
      "options": [
        {
          "name": "Data API",
          "value": "dataApi"
        },
        {
          "name": "Web Scraping",
          "value": "webScraping"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getYouTubeTranscript",
      "options": [
        {
          "name": "Get Google Reviews",
          "value": "getGoogleReviews",
          "action": "Get Google Reviews",
          "routing": {
            "request": {
              "url": "/get-google-reviews",
              "body": {
                "cid": "={{ $parameter.inputType === \"cid\" ? $parameter.cid : undefined }}",
                "sortBy": "={{ $parameter.sortBy }}",
                "keyword": "={{ $parameter.inputType === \"keyword\" ? $parameter.keyword : undefined }}",
                "placeId": "={{ $parameter.inputType === \"placeId\" ? $parameter.placeId : undefined }}",
                "reviews": "={{ $parameter.reviews }}",
                "language": "={{ $parameter.language }}",
                "location": "={{ $parameter.location || undefined }}"
              },
              "method": "POST"
            }
          },
          "description": "Get Google Reviews for a place or business"
        },
        {
          "name": "Get TikTok Transcript",
          "value": "getTikTokTranscript",
          "action": "Get TikTok Transcript",
          "routing": {
            "request": {
              "url": "/get-tiktok-transcript",
              "body": {
                "videoUrl": "={{ $parameter.videoUrl }}",
                "preferredLanguage": "={{ $parameter.preferredLanguage }}"
              },
              "method": "POST"
            }
          },
          "description": "Retrieve the transcript from a TikTok video"
        },
        {
          "name": "Get YouTube Transcript",
          "value": "getYouTubeTranscript",
          "action": "Get YouTube Transcript",
          "routing": {
            "request": {
              "url": "/get-youtube-transcript",
              "body": {
                "videoUrl": "={{ $parameter.videoUrl }}",
                "includeTimestamps": "={{ $parameter.includeTimestamps }}",
                "preferredLanguage": "={{ $parameter.preferredLanguage }}",
                "timestampsToCombine": "={{ $parameter.timestampsToCombine }}"
              },
              "method": "POST"
            }
          },
          "description": "Extract the transcript from a specified YouTube video URL"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search Google",
          "routing": {
            "request": {
              "url": "/search",
              "body": {
                "page": "={{ $parameter.page }}",
                "query": "={{ $parameter.query }}",
                "country": "={{ $parameter.country }}",
                "language": "={{ $parameter.language }}",
                "location": "={{ $parameter.location }}",
                "dateRange": "={{ $parameter.dateRange }}",
                "scrapeOptions": {
                  "format": "={{ $parameter.scrapeFormat }}",
                  "cleaned": "={{ $parameter.scrapeCleaned }}"
                },
                "scrapeResults": "={{ $parameter.scrapeResults }}",
                "numResultsToScrape": "={{ $parameter.numResultsToScrape }}"
              },
              "method": "POST"
            }
          },
          "description": "Perform a Google web search with optional content scraping"
        },
        {
          "name": "Search News",
          "value": "searchNews",
          "action": "Search News",
          "routing": {
            "request": {
              "url": "/search-news",
              "body": {
                "page": "={{ $parameter.page }}",
                "query": "={{ $parameter.query }}",
                "country": "={{ $parameter.country }}",
                "language": "={{ $parameter.language }}",
                "location": "={{ $parameter.location }}",
                "dateRange": "={{ $parameter.dateRange }}"
              },
              "method": "POST"
            }
          },
          "description": "Search Google News for articles"
        },
        {
          "name": "Search Places",
          "value": "searchPlaces",
          "action": "Search Places",
          "routing": {
            "request": {
              "url": "/search-places",
              "body": {
                "page": "={{ $parameter.page }}",
                "query": "={{ $parameter.query }}",
                "country": "={{ $parameter.country }}",
                "language": "={{ $parameter.language }}",
                "location": "={{ $parameter.location }}"
              },
              "method": "POST"
            }
          },
          "description": "Search Google Places for businesses and locations"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "dataApi"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "scrapeUrl",
      "options": [
        {
          "name": "Scrape URL",
          "value": "scrapeUrl",
          "action": "Scrape URL",
          "routing": {
            "request": {
              "url": "/scrape",
              "body": {
                "url": "={{ $parameter.url }}",
                "format": "={{ $parameter.format }}",
                "cleaned": "={{ $parameter.cleaned }}",
                "renderJs": "={{ $parameter.renderJs }}"
              },
              "method": "POST"
            }
          },
          "description": "Scrape data from a specified URL with formatting options"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "webScraping"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Google Reviews",
      "value": "getGoogleReviews",
      "action": "Get Google Reviews",
      "routing": {
        "request": {
          "url": "/get-google-reviews",
          "body": {
            "cid": "={{ $parameter.inputType === \"cid\" ? $parameter.cid : undefined }}",
            "sortBy": "={{ $parameter.sortBy }}",
            "keyword": "={{ $parameter.inputType === \"keyword\" ? $parameter.keyword : undefined }}",
            "placeId": "={{ $parameter.inputType === \"placeId\" ? $parameter.placeId : undefined }}",
            "reviews": "={{ $parameter.reviews }}",
            "language": "={{ $parameter.language }}",
            "location": "={{ $parameter.location || undefined }}"
          },
          "method": "POST"
        }
      },
      "description": "Get Google Reviews for a place or business",
      "resource": "dataApi"
    },
    {
      "name": "Get TikTok Transcript",
      "value": "getTikTokTranscript",
      "action": "Get TikTok Transcript",
      "routing": {
        "request": {
          "url": "/get-tiktok-transcript",
          "body": {
            "videoUrl": "={{ $parameter.videoUrl }}",
            "preferredLanguage": "={{ $parameter.preferredLanguage }}"
          },
          "method": "POST"
        }
      },
      "description": "Retrieve the transcript from a TikTok video",
      "resource": "dataApi"
    },
    {
      "name": "Get YouTube Transcript",
      "value": "getYouTubeTranscript",
      "action": "Get YouTube Transcript",
      "routing": {
        "request": {
          "url": "/get-youtube-transcript",
          "body": {
            "videoUrl": "={{ $parameter.videoUrl }}",
            "includeTimestamps": "={{ $parameter.includeTimestamps }}",
            "preferredLanguage": "={{ $parameter.preferredLanguage }}",
            "timestampsToCombine": "={{ $parameter.timestampsToCombine }}"
          },
          "method": "POST"
        }
      },
      "description": "Extract the transcript from a specified YouTube video URL",
      "resource": "dataApi"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search Google",
      "routing": {
        "request": {
          "url": "/search",
          "body": {
            "page": "={{ $parameter.page }}",
            "query": "={{ $parameter.query }}",
            "country": "={{ $parameter.country }}",
            "language": "={{ $parameter.language }}",
            "location": "={{ $parameter.location }}",
            "dateRange": "={{ $parameter.dateRange }}",
            "scrapeOptions": {
              "format": "={{ $parameter.scrapeFormat }}",
              "cleaned": "={{ $parameter.scrapeCleaned }}"
            },
            "scrapeResults": "={{ $parameter.scrapeResults }}",
            "numResultsToScrape": "={{ $parameter.numResultsToScrape }}"
          },
          "method": "POST"
        }
      },
      "description": "Perform a Google web search with optional content scraping",
      "resource": "dataApi"
    },
    {
      "name": "Search News",
      "value": "searchNews",
      "action": "Search News",
      "routing": {
        "request": {
          "url": "/search-news",
          "body": {
            "page": "={{ $parameter.page }}",
            "query": "={{ $parameter.query }}",
            "country": "={{ $parameter.country }}",
            "language": "={{ $parameter.language }}",
            "location": "={{ $parameter.location }}",
            "dateRange": "={{ $parameter.dateRange }}"
          },
          "method": "POST"
        }
      },
      "description": "Search Google News for articles",
      "resource": "dataApi"
    },
    {
      "name": "Search Places",
      "value": "searchPlaces",
      "action": "Search Places",
      "routing": {
        "request": {
          "url": "/search-places",
          "body": {
            "page": "={{ $parameter.page }}",
            "query": "={{ $parameter.query }}",
            "country": "={{ $parameter.country }}",
            "language": "={{ $parameter.language }}",
            "location": "={{ $parameter.location }}"
          },
          "method": "POST"
        }
      },
      "description": "Search Google Places for businesses and locations",
      "resource": "dataApi"
    },
    {
      "name": "Scrape URL",
      "value": "scrapeUrl",
      "action": "Scrape URL",
      "routing": {
        "request": {
          "url": "/scrape",
          "body": {
            "url": "={{ $parameter.url }}",
            "format": "={{ $parameter.format }}",
            "cleaned": "={{ $parameter.cleaned }}",
            "renderJs": "={{ $parameter.renderJs }}"
          },
          "method": "POST"
        }
      },
      "description": "Scrape data from a specified URL with formatting options",
      "resource": "webScraping"
    }
  ]

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

  # n8n-nodes-dumplingai

  This is an n8n community node that provides integration with [Dumpling AI](https://dumplingai.com) APIs for data extraction, web scraping, document conversion, and AI-powered operations.

  [Dumpling AI](https://dumplingai.com) is a comprehensive API platform that provides various data extraction and AI services including YouTube transcript extraction, TikTok data scraping, web scraping, document conversion, and more.

  ## Installation

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

  ## Credentials

  You must have a Dumpling AI API key to use this node. You can register for a free account to get an API key here:

  https://app.dumplingai.com/register

  Once registered, you can find your API key here:

  https://app.dumplingai.com/api-keys

  Then you'll need to create a credential in n8n for Dumpling AI.

  ## Usage

  Add Dumpling AI to a workflow and configure your operation.

  ### Available Operations

  This node currently supports:

  #### Data API Operations
  - **Get YouTube Transcript** - Extract transcripts from YouTube videos with timestamps and language options
  - **Get TikTok Transcript** - Extract transcripts/captions from TikTok videos
  - **Search (Google Web)** - Perform Google web searches with optional content scraping
  - **Search Places** - Search Google Places for businesses and locations
  - **Search News** - Search Google News for articles
  - **Get Google Reviews** - Extract Google Reviews for businesses using keywords, CID, or Place ID

  #### Web Scraping Operations
  - **Scrape URL** - Extract content from web pages with formatting options

  Additional operations will be added in future releases.

  #### Get YouTube Transcript

  Extract transcripts from YouTube videos with optional timestamps and language preferences.

  ```json
  {
    "videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "includeTimestamps": true,
    "timestampsToCombine": 5,
    "preferredLanguage": "en"
  }
  ```

  #### Get TikTok Transcript

  Extract transcripts/captions from TikTok videos with language preferences.

  ```json
  {
    "videoUrl": "https://www.tiktok.com/@username/video/1234567890",
    "preferredLanguage": "en"
  }
  ```

  #### Search (Google Web)

  Perform Google web searches with optional content scraping of results.

  ```json
  {
    "query": "artificial intelligence trends 2024",
    "country": "US",
    "language": "en",
    "scrapeResults": true,
    "numResultsToScrape": 3,
    "scrapeFormat": "markdown"
  }
  ```

  #### Search Places

  Search Google Places for businesses and locations.

  ```json
  {
    "query": "coffee shops near me",
    "location": "New York, NY",
    "language": "en"
  }
  ```

  #### Search News

  Search Google News for articles and news content.

  ```json
  {
    "query": "climate change",
    "dateRange": "past_week",
    "language": "en"
  }
  ```

  #### Get Google Reviews

  Extract Google Reviews for businesses using different identification methods.

  ```json
  {
    "inputType": "keyword",
    "keyword": "Starbucks Times Square",
    "reviews": 20,
    "sortBy": "newest"
  }
  ```

  #### Scrape URL

  Extract content from web pages with customizable formatting and processing options.

  ```json
  {
    "url": "https://example.com",
    "format": "markdown",
    "cleaned": true,
    "renderJs": true
  }
  ```

  **Output Formats:**
  - **HTML** - Raw HTML content
  - **Markdown** - Clean markdown format  
  - **Screenshot** - Screenshot of the page

  ## API Resources

  This node currently supports the most popular Dumpling AI APIs. If there's an API missing that you would like to use, please let us know at admin@dumplingai.com

  In the meantime, you can also use the [generic HTTP Request node](https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/) to construct your requests.

  ### Coming Soon

  - Document Conversion (PDF, Word, Excel, etc.)
  - AI Operations (Agent completions, Knowledge base search, Image generation)
  - Developer Tools (JavaScript/Python code execution)
  - Additional Data APIs (Social media profiles, advanced scraping)

  ## Related Resources

  Dumpling AI's complete API documentation is available here:

  https://docs.dumplingai.com/api-reference/introduction

  You can also find additional tutorials and resources here:

  https://docs.dumplingai.com/guides

  ## Development

  ### Release Flow

  After merging PRs into main, follow these steps to publish a new version:

  ```bash
  # Switch to main branch and ensure it's up to date
  git checkout main
  git pull origin main

  # Bump version (patch, minor, or major)
  npm version patch         # or minor / major

  # Push changes and tags
  git push origin main
  git push origin v$(node -p "require('./package.json').version")
  ```

  The tag push will automatically trigger the GitHub Actions workflow, which will:
  1. Build the package
  2. Check if the version already exists on npm
  3. Publish to npm if it's a new version

  You'll see a ✅ job in the Actions tab and the new version will appear on npm within a minute.

  ## License

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

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Dumpling AI APIs to perform data extraction, web scraping, document conversion, and AI-powered operations.","capabilities":["Extract YouTube transcripts with timestamps","Extract TikTok transcripts/captions","Perform Google web searches with optional content scraping","Search Google Places for businesses and locations","Search Google News for articles","Extract Google Reviews for businesses","Scrape arbitrary URLs with customizable formatting","Output results in HTML, Markdown, or Screenshot formats"],"authentication":"API key required (configured via n8n credentials)","commonUseCases":["Extracting video content from YouTube and TikTok","Gathering business information and reviews","Web scraping with content cleaning options","Performing targeted Google searches with scraping"],"limitations":["Document conversion (PDF, Word, Excel) not yet available","AI operations (Agent completions, Knowledge base search, Image generation) not yet available","Developer Tools (JavaScript/Python code execution) not yet available","Additional social media profiles and advanced scraping features not yet available","Generic HTTP Request node can be used as a workaround for missing APIs"],"relatedNodes":["n8n-nodes-base.httprequest"]}


node_type: n8n-nodes-nele-ai.neleAi
package_name: n8n-nodes-nele-ai
display_name: nele.ai
description: Search for results in your nele.ai knowledge database
category: Miscellaneous
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: gal.digital.npm
author_github_url: https://github.com/gal-digital-gmbh/
npm_package_name: n8n-nodes-nele-ai
npm_version: 1.0.4
community_fetched_at: 2026-07-14T14:40:33.286Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "",
      "options": [
        {
          "name": "Chat",
          "value": "chat",
          "description": "Generate text responses via a conversational model"
        },
        {
          "name": "Knowledge Database",
          "value": "documentCollection",
          "description": "Manage and search your knowledge databases (aka document collections)"
        },
        {
          "name": "Image",
          "value": "image",
          "description": "Generate and retrieve images based on text prompts"
        },
        {
          "name": "Audio",
          "value": "audio",
          "description": "Transcribe and retrieve audio files as text"
        },
        {
          "name": "Model",
          "value": "model",
          "description": "Retrieve available models"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "completionSync",
      "options": [
        {
          "name": "Completion",
          "value": "completionSync",
          "action": "Generate a text response",
          "description": "Creates a response for a given chat message history"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "chat"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search knowledge database",
          "description": "Returns relevant results for a given search query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "documentCollection"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "generate",
      "options": [
        {
          "name": "Generate",
          "value": "generate",
          "action": "Generate an image",
          "description": "Creates an image from a text prompt"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "image"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "transcribe",
      "options": [
        {
          "name": "Transcribe",
          "value": "transcribe",
          "action": "Transcribe an audio file",
          "description": "Creates a text transcription from an audio file"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "audio"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "load",
      "options": [
        {
          "name": "List Models",
          "value": "load",
          "action": "List AI models",
          "description": "Lists all available AI models"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "model"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Completion",
      "value": "completionSync",
      "action": "Generate a text response",
      "description": "Creates a response for a given chat message history",
      "resource": "chat"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search knowledge database",
      "description": "Returns relevant results for a given search query",
      "resource": "documentCollection"
    },
    {
      "name": "Generate",
      "value": "generate",
      "action": "Generate an image",
      "description": "Creates an image from a text prompt",
      "resource": "image"
    },
    {
      "name": "Transcribe",
      "value": "transcribe",
      "action": "Transcribe an audio file",
      "description": "Creates a text transcription from an audio file",
      "resource": "audio"
    },
    {
      "name": "List Models",
      "value": "load",
      "action": "List AI models",
      "description": "Lists all available AI models",
      "resource": "model"
    }
  ]

npm_readme:
  # nele.ai n8n community node

  This is an n8n community node that lets you use [nele.ai](https://www.nele.ai) AI tools, chat completions, image generators, and knowledge database operations in your n8n workflows.

  [nele.ai](https://www.nele.ai) provides a unified API for a variety of AI models and tools, including chat, image generation, audio transcription, and document collection search.

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

  ## Installation

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

  ## Operations

  This node supports the following operations:

  - **Chat**: Generate text responses via conversational AI models.
  - **Image**: Generate and retrieve images based on text prompts.
  - **Audio**: Transcribe audio files to text.
  - **Knowledge Database**: Search and manage your knowledge databases (document collections).
  - **Model**: List available AI models.

  ## Credentials

  You need a nele.ai API key use this node.

  1. Sign up at [nele.ai](https://www.nele.ai) and obtain your API key.
  2. In n8n, add new credentials for "nele.ai API" and enter your API key.

  For more details, see the [nele.ai manual](https://www.nele.ai/en/functions/information-for-users/program-settings/api-key).

  ## Compatibility

  - Requires n8n version 1.109.1 or higher.
  - Requires node.js version 22.19.0 or higher.

  ## Usage

  After installing the node and configuring your credentials, you can add the "nele.ai" node to your workflows and select the desired resource and operation.

  - Use **Chat** for conversational AI.
  - Use **Image** to generate images from prompts.
  - Use **Audio** to transcribe audio files.
  - Use **Knowledge Database** to search your document collections.

  Refer to the in-app parameter descriptions for guidance on each operation.

  ## Resources

  - [nele.ai homepage](https://www.nele.ai)
  - [nele.ai manual](https://www.nele.ai/en/functions)
  - [nele.ai API documentation](https://api.aieva.io/docs)
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with nele.ai to perform AI tasks including chat, image generation, audio transcription, and knowledge database operations.","capabilities":["Generate text responses via conversational AI models","Generate and retrieve images from text prompts","Transcribe audio files to text","Search and manage knowledge databases (document collections)","List available AI models"],"authentication":"API key required","commonUseCases":["Conversational AI chatbots","Image generation workflows","Audio file transcription","Document retrieval from custom knowledge bases"],"limitations":["Requires n8n version 1.109.1 or higher","Requires node.js version 22.19.0 or higher"],"relatedNodes":["n8n-nodes-core-ai","n8n-nodes-core-http-request","n8n-nodes-core-code"]}


node_type: @droidrun/n8n-nodes-droidrun.mobilerun
package_name: @droidrun/n8n-nodes-droidrun
display_name: Mobilerun
description: Access the Mobilerun Cloud Api
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: lukas-droidrun
author_github_url: https://github.com/droidrun/n8n-nodes-droidrun.git
npm_package_name: @droidrun/n8n-nodes-droidrun
npm_version: 1.0.7
community_fetched_at: 2026-07-14T14:40:33.287Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "inspectTask",
      "options": [
        {
          "name": "Appstore",
          "value": "apps"
        },
        {
          "name": "Device",
          "value": "device"
        },
        {
          "name": "Device Credential",
          "value": "credential"
        },
        {
          "name": "Inspect Task",
          "value": "inspectTask"
        },
        {
          "name": "Manage Task",
          "value": "manageTask"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listTasks",
      "options": [
        {
          "name": "Get Task",
          "value": "getTask",
          "action": "Get task",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId }}",
              "method": "GET"
            }
          },
          "description": "Get a task"
        },
        {
          "name": "Get Task Gif",
          "value": "getTaskGif",
          "action": "Get task gif",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/gif\" }}",
              "method": "GET"
            }
          },
          "description": "Get a screenshot of a task"
        },
        {
          "name": "Get Task Screenshot",
          "value": "getTaskScreenshot",
          "action": "Get task screenshot",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/screenshots/\" +  $parameter.index }}",
              "method": "GET"
            }
          },
          "description": "Get a screenshot of a task"
        },
        {
          "name": "Get Task Screenshots",
          "value": "getTaskScreenshots",
          "action": "Get task screenshots",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/screenshots\" }}",
              "method": "GET"
            }
          },
          "description": "Get a list of screenshots of a task"
        },
        {
          "name": "Get Task Trajectory",
          "value": "getTaskTrajectory",
          "action": "Get task trajectory",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/trajectory\" }}",
              "method": "GET"
            }
          },
          "description": "Get the trajectory of a task"
        },
        {
          "name": "Get Task UI State",
          "value": "getTaskUIState",
          "action": "Get task UI state",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/ui_states/\" + $parameter.index }}",
              "method": "GET"
            }
          },
          "description": "Get a specific UI state of a task"
        },
        {
          "name": "Get Task UI States",
          "value": "getTaskUIStates",
          "action": "Get task UI states",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/ui_states\" }}",
              "method": "GET"
            }
          },
          "description": "Get UI states of a task"
        },
        {
          "name": "List Tasks",
          "value": "listTasks",
          "action": "List tasks",
          "routing": {
            "request": {
              "url": "/tasks/",
              "method": "GET"
            }
          },
          "description": "List all tasks you’ve created so far"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "inspectTask"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "runTask",
      "options": [
        {
          "name": "Stop Task",
          "value": "stopTask",
          "action": "Stop task",
          "routing": {
            "request": {
              "url": "={{ \"/tasks/\" + $parameter.taskId + \"/cancel\" }}",
              "method": "POST"
            }
          },
          "description": "Stops a task"
        },
        {
          "name": "Run Task",
          "value": "runTask",
          "action": "Run task",
          "routing": {
            "request": {
              "url": "/tasks/",
              "body": {
                "apps": "={{ $parameter.apps }}",
                "task": "={{ $parameter.task }}",
                "files": "={{ $parameter.files }}",
                "vision": "={{ $parameter.vision }}",
                "deviceId": "={{ $parameter.deviceId }}",
                "llmModel": "={{ $parameter.llmModel }}",
                "maxSteps": "={{ $parameter.maxSteps }}",
                "displayId": "={{ $parameter.deviceSelectionMode === \"manual\" ? $parameter.deviceIdManual : $parameter.deviceId }}",
                "reasoning": "={{ $parameter.reasoning }}",
                "vpnCountry": "={{ $parameter.vpnCountry === \"none\" ? undefined : $parameter.vpnCountry }}",
                "credentials": "={{ $parameter.credentials }}",
                "temperature": "={{ $parameter.temperature }}",
                "outputSchema": "={{ $parameter.outputSchema ? JSON.parse($parameter.outputSchema) : undefined }}",
                "executionTimeout": "={{ $parameter.executionTimeout }}"
              },
              "method": "POST"
            }
          },
          "description": "Run a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "manageTask"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listApps",
      "options": [
        {
          "name": "List Apps",
          "value": "listApps",
          "action": "List apps",
          "routing": {
            "request": {
              "url": "/apps",
              "method": "GET"
            }
          },
          "description": "Retrieves a paginated list of apps with filtering and search capabilities"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "apps"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listCredentials",
      "options": [
        {
          "name": "Add New Field",
          "value": "addCredentialField",
          "action": "Add field to specific credential",
          "routing": {
            "request": {
              "url": "={{ \"/credentials/packages/\" + $parameter.packageName + \"/credentials/\" + $parameter.credentialName + \"/fields\"  }}",
              "body": {
                "value": "={{ $parameter.credentialValue }}",
                "fieldType": "={{ $parameter.credentialType }}"
              },
              "method": "PATCH"
            }
          },
          "description": "Add a new field to an existing credential"
        },
        {
          "name": "Create Credential Field",
          "value": "createCredentialField",
          "action": "Create credential field",
          "routing": {
            "request": {
              "url": "={{ \"/credentials/packages/\" + $parameter.packageName }}",
              "body": {
                "fields": {
                  "value": "={{ $parameter.credentialValue }}",
                  "fieldsType": "={{ $parameter.credentialType }}"
                },
                "credentialName": "={{ $parameter.credentialName }}"
              },
              "method": "POST"
            }
          },
          "description": "Create a credential with fields for a package"
        },
        {
          "name": "Delete Specific Credential",
          "value": "deleteSpecificCredential",
          "action": "Delete specific credential",
          "routing": {
            "request": {
              "url": "={{ \"/credentials/packages/\" + $parameter.packageName + \"/credentials/\" + $parameter.credentialName }}",
              "method": "DELETE"
            }
          },
          "description": "Delete a credential and all its fields"
        },
        {
          "name": "Delete Specific Credential Field",
          "value": "deleteSpecificCredentialField",
          "action": "Delete specific credential field",
          "routing": {
            "request": {
              "url": "={{ \"/credentials/packages/\" + $parameter.packageName + \"/credentials/\" + $parameter.credentialName + \"/fields/\" + $parameter.credentialType  }}",
              "method": "DELETE"
            }
          },
          "description": "Delete a field from a credential"
        },
        {
          "name": "Get Specific Credential",
          "value": "getSpecificCredential",
          "action": "Get specific credential",
          "routing": {
            "request": {
              "url": "={{ \"/credentials/packages/\" + $parameter.packageName + \"/credentials/\" + $parameter.credentialName}}",
              "method": "GET"
            }
          },
          "description": "Get a specific credential with its fields"
        },
        {
          "name": "Initialize Package",
          "value": "initializePackage",
          "action": "Initialize package",
          "routing": {
            "request": {
              "url": "/credentials",
              "body": {
                "packageName": "={{ $parameter.packageName }}"
              },
              "method": "POST"
            }
          },
          "description": "Initialize a new package/app"
        },
        {
          "name": "List Credentials",
          "value": "listCredentials",
          "action": "List credentials",
          "routing": {
            "request": {
              "url": "/credentials",
              "method": "GET"
            }
          },
          "description": "List all credentials for the authenticated user"
        },
        {
          "name": "List Package Credentials",
          "value": "listPackageCredentials",
          "action": "List package credentials",
          "routing": {
            "request": {
              "url": "={{ \"/credentials/packages/\" + $parameter.packageName }}",
              "method": "GET"
            }
          },
          "description": "List credentials for a specific package"
        },
        {
          "name": "Update Specific Credential Field",
          "value": "updateSpecificCredentialField",
          "action": "Update specific credential field",
          "routing": {
            "request": {
              "url": "={{ \"/credentials/packages/\" + $parameter.packageName + \"/credentials/\" + $parameter.credentialName + \"/fields/\" + $parameter.credentialType  }}",
              "body": {
                "value": "={{ $parameter.credentialValue }}"
              },
              "method": "PATCH"
            }
          },
          "description": "Update the value of a credential field"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "credential"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "listDevices",
      "options": [
        {
          "name": "Delete Device",
          "value": "deleteDevice",
          "action": "Delete device",
          "routing": {
            "request": {
              "url": "/devices/{{$parameter.deviceId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a specific device"
        },
        {
          "name": "Get Device",
          "value": "getDevice",
          "action": "Get device details",
          "routing": {
            "request": {
              "url": "/devices/{{$parameter.deviceId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific device"
        },
        {
          "name": "Get Device Tasks",
          "value": "getDeviceTasks",
          "action": "Get device tasks",
          "routing": {
            "request": {
              "url": "/devices/{{$parameter.deviceId}}/tasks",
              "method": "GET"
            }
          },
          "description": "Get tasks for a specific device"
        },
        {
          "name": "List Devices",
          "value": "listDevices",
          "action": "List devices",
          "routing": {
            "request": {
              "url": "/devices",
              "method": "GET"
            }
          },
          "description": "Retrieves a paginated list of devices with filtering and search capabilities"
        },
        {
          "name": "Provision Device",
          "value": "provisionDevice",
          "action": "Provision a new device",
          "routing": {
            "request": {
              "url": "/devices",
              "method": "POST"
            }
          },
          "description": "Provision a new device"
        },
        {
          "name": "Wait for Device",
          "value": "waitForDevice",
          "action": "Wait for device",
          "routing": {
            "request": {
              "url": "/devices/{{$parameter.deviceId}}/wait",
              "method": "GET"
            }
          },
          "description": "Wait for a device to be ready"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "device"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Get Task",
      "value": "getTask",
      "action": "Get task",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId }}",
          "method": "GET"
        }
      },
      "description": "Get a task",
      "resource": "inspectTask"
    },
    {
      "name": "Get Task Gif",
      "value": "getTaskGif",
      "action": "Get task gif",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/gif\" }}",
          "method": "GET"
        }
      },
      "description": "Get a screenshot of a task",
      "resource": "inspectTask"
    },
    {
      "name": "Get Task Screenshot",
      "value": "getTaskScreenshot",
      "action": "Get task screenshot",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/screenshots/\" +  $parameter.index }}",
          "method": "GET"
        }
      },
      "description": "Get a screenshot of a task",
      "resource": "inspectTask"
    },
    {
      "name": "Get Task Screenshots",
      "value": "getTaskScreenshots",
      "action": "Get task screenshots",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/screenshots\" }}",
          "method": "GET"
        }
      },
      "description": "Get a list of screenshots of a task",
      "resource": "inspectTask"
    },
    {
      "name": "Get Task Trajectory",
      "value": "getTaskTrajectory",
      "action": "Get task trajectory",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/trajectory\" }}",
          "method": "GET"
        }
      },
      "description": "Get the trajectory of a task",
      "resource": "inspectTask"
    },
    {
      "name": "Get Task UI State",
      "value": "getTaskUIState",
      "action": "Get task UI state",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/ui_states/\" + $parameter.index }}",
          "method": "GET"
        }
      },
      "description": "Get a specific UI state of a task",
      "resource": "inspectTask"
    },
    {
      "name": "Get Task UI States",
      "value": "getTaskUIStates",
      "action": "Get task UI states",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/ui_states\" }}",
          "method": "GET"
        }
      },
      "description": "Get UI states of a task",
      "resource": "inspectTask"
    },
    {
      "name": "List Tasks",
      "value": "listTasks",
      "action": "List tasks",
      "routing": {
        "request": {
          "url": "/tasks/",
          "method": "GET"
        }
      },
      "description": "List all tasks you’ve created so far",
      "resource": "inspectTask"
    },
    {
      "name": "Stop Task",
      "value": "stopTask",
      "action": "Stop task",
      "routing": {
        "request": {
          "url": "={{ \"/tasks/\" + $parameter.taskId + \"/cancel\" }}",
          "method": "POST"
        }
      },
      "description": "Stops a task",
      "resource": "manageTask"
    },
    {
      "name": "Run Task",
      "value": "runTask",
      "action": "Run task",
      "routing": {
        "request": {
          "url": "/tasks/",
          "body": {
            "apps": "={{ $parameter.apps }}",
            "task": "={{ $parameter.task }}",
            "files": "={{ $parameter.files }}",
            "vision": "={{ $parameter.vision }}",
            "deviceId": "={{ $parameter.deviceId }}",
            "llmModel": "={{ $parameter.llmModel }}",
            "maxSteps": "={{ $parameter.maxSteps }}",
            "displayId": "={{ $parameter.deviceSelectionMode === \"manual\" ? $parameter.deviceIdManual : $parameter.deviceId }}",
            "reasoning": "={{ $parameter.reasoning }}",
            "vpnCountry": "={{ $parameter.vpnCountry === \"none\" ? undefined : $parameter.vpnCountry }}",
            "credentials": "={{ $parameter.credentials }}",
            "temperature": "={{ $parameter.temperature }}",
            "outputSchema": "={{ $parameter.outputSchema ? JSON.parse($parameter.outputSchema) : undefined }}",
            "executionTimeout": "={{ $parameter.executionTimeout }}"
          },
          "method": "POST"
        }
      },
      "description": "Run a task",
      "resource": "manageTask"
    },
    {
      "name": "List Apps",
      "value": "listApps",
      "action": "List apps",
      "routing": {
        "request": {
          "url": "/apps",
          "method": "GET"
        }
      },
      "description": "Retrieves a paginated list of apps with filtering and search capabilities",
      "resource": "apps"
    },
    {
      "name": "Add New Field",
      "value": "addCredentialField",
      "action": "Add field to specific credential",
      "routing": {
        "request": {
          "url": "={{ \"/credentials/packages/\" + $parameter.packageName + \"/credentials/\" + $parameter.credentialName + \"/fields\"  }}",
          "body": {
            "value": "={{ $parameter.credentialValue }}",
            "fieldType": "={{ $parameter.credentialType }}"
          },
          "method": "PATCH"
        }
      },
      "description": "Add a new field to an existing credential",
      "resource": "credential"
    },
    {
      "name": "Create Credential Field",
      "value": "createCredentialField",
      "action": "Create credential field",
      "routing": {
        "request": {
          "url": "={{ \"/credentials/packages/\" + $parameter.packageName }}",
          "body": {
            "fields": {
              "value": "={{ $parameter.credentialValue }}",
              "fieldsType": "={{ $parameter.credentialType }}"
            },
            "credentialName": "={{ $parameter.credentialName }}"
          },
          "method": "POST"
        }
      },
      "description": "Create a credential with fields for a package",
      "resource": "credential"
    },
    {
      "name": "Delete Specific Credential",
      "value": "deleteSpecificCredential",
      "action": "Delete specific credential",
      "routing": {
        "request": {
          "url": "={{ \"/credentials/packages/\" + $parameter.packageName + \"/credentials/\" + $parameter.credentialName }}",
          "method": "DELETE"
        }
      },
      "description": "Delete a credential and all its fields",
      "resource": "credential"
    },
    {
      "name": "Delete Specific Credential Field",
      "value": "deleteSpecificCredentialField",
      "action": "Delete specific credential field",
      "routing": {
        "request": {
          "url": "={{ \"/credentials/packages/\" + $parameter.packageName + \"/credentials/\" + $parameter.credentialName + \"/fields/\" + $parameter.credentialType  }}",
          "method": "DELETE"
        }
      },
      "description": "Delete a field from a credential",
      "resource": "credential"
    },
    {
      "name": "Get Specific Credential",
      "value": "getSpecificCredential",
      "action": "Get specific credential",
      "routing": {
        "request": {
          "url": "={{ \"/credentials/packages/\" + $parameter.packageName + \"/credentials/\" + $parameter.credentialName}}",
          "method": "GET"
        }
      },
      "description": "Get a specific credential with its fields",
      "resource": "credential"
    },
    {
      "name": "Initialize Package",
      "value": "initializePackage",
      "action": "Initialize package",
      "routing": {
        "request": {
          "url": "/credentials",
          "body": {
            "packageName": "={{ $parameter.packageName }}"
          },
          "method": "POST"
        }
      },
      "description": "Initialize a new package/app",
      "resource": "credential"
    },
    {
      "name": "List Credentials",
      "value": "listCredentials",
      "action": "List credentials",
      "routing": {
        "request": {
          "url": "/credentials",
          "method": "GET"
        }
      },
      "description": "List all credentials for the authenticated user",
      "resource": "credential"
    },
    {
      "name": "List Package Credentials",
      "value": "listPackageCredentials",
      "action": "List package credentials",
      "routing": {
        "request": {
          "url": "={{ \"/credentials/packages/\" + $parameter.packageName }}",
          "method": "GET"
        }
      },
      "description": "List credentials for a specific package",
      "resource": "credential"
    },
    {
      "name": "Update Specific Credential Field",
      "value": "updateSpecificCredentialField",
      "action": "Update specific credential field",
      "routing": {
        "request": {
          "url": "={{ \"/credentials/packages/\" + $parameter.packageName + \"/credentials/\" + $parameter.credentialName + \"/fields/\" + $parameter.credentialType  }}",
          "body": {
            "value": "={{ $parameter.credentialValue }}"
          },
          "method": "PATCH"
        }
      },
      "description": "Update the value of a credential field",
      "resource": "credential"
    },
    {
      "name": "Delete Device",
      "value": "deleteDevice",
      "action": "Delete device",
      "routing": {
        "request": {
          "url": "/devices/{{$parameter.deviceId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a specific device",
      "resource": "device"
    },
    {
      "name": "Get Device",
      "value": "getDevice",
      "action": "Get device details",
      "routing": {
        "request": {
          "url": "/devices/{{$parameter.deviceId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific device",
      "resource": "device"
    },
    {
      "name": "Get Device Tasks",
      "value": "getDeviceTasks",
      "action": "Get device tasks",
      "routing": {
        "request": {
          "url": "/devices/{{$parameter.deviceId}}/tasks",
          "method": "GET"
        }
      },
      "description": "Get tasks for a specific device",
      "resource": "device"
    },
    {
      "name": "List Devices",
      "value": "listDevices",
      "action": "List devices",
      "routing": {
        "request": {
          "url": "/devices",
          "method": "GET"
        }
      },
      "description": "Retrieves a paginated list of devices with filtering and search capabilities",
      "resource": "device"
    },
    {
      "name": "Provision Device",
      "value": "provisionDevice",
      "action": "Provision a new device",
      "routing": {
        "request": {
          "url": "/devices",
          "method": "POST"
        }
      },
      "description": "Provision a new device",
      "resource": "device"
    },
    {
      "name": "Wait for Device",
      "value": "waitForDevice",
      "action": "Wait for device",
      "routing": {
        "request": {
          "url": "/devices/{{$parameter.deviceId}}/wait",
          "method": "GET"
        }
      },
      "description": "Wait for a device to be ready",
      "resource": "device"
    }
  ]

npm_readme:
  # n8n-nodes-droidrun

  This is an n8n community node that lets you use Droidrun AI in your n8n workflows to automate tasks on Android devices via the Droidrun Cloud API.

  [n8n](https://n8n.io/) is a fair-code licensed 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

  This node exposes the following resources and operations:

  - Inspect Task
    - Get Task
    - Get Task Screenshot
    - Get Task Screenshots
    - Get Task Status
    - List Tasks

  - Manage Task
    - Run Task
      - Supports LLM model selection (fetched from LiteLLM endpoint)
      - Optional device selection (fetched from API or manual entry)
      - Apps selection (fetched from API for dropdown)
      - Structured output support via JSON schema
      - Optional file attachments
    - Stop Task

  ## Credentials

  This node requires a Droidrun API Token.

  - Create a Droidrun account and obtain an API key from your dashboard.
  - In n8n, create new credentials of type `Droidrun API` and paste your token.
  - The token will be sent as `Authorization: Bearer <token>` to the Droidrun API.

  Reference: `https://docs.mobilerun.ai/api-reference/`

  ## Compatibility

  - Built for the n8n Nodes API v1.
  - Developed with Node.js >= 20.15.

  ## Usage

  1. Add the `Droidrun` node to your workflow.
  2. Select the `Resource` (Inspect Task or Manage Task) and choose an `Operation`.
  3. Provide required parameters (for example, `Task ID` for inspect operations or `Task` and model settings for `Run Task`).
  4. Execute the workflow.

  ## Resources

  - n8n community nodes docs: `https://docs.n8n.io/integrations/#community-nodes`
  - Droidrun API reference: `https://docs.mobilerun.ai/api-reference/`
  - Droidrun website: `https://droidrun.ai/`

  ## Version history

  - 1.0.3: Initial public release of the Droidrun Tasks node

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of tasks on Android devices via the Droidrun Cloud API, allowing users to run, inspect, and manage AI tasks within their workflows.","capabilities":["Inspect tasks (Get Task, Get Task Gif, Get Task Screenshot, Get Task Screenshots, Get Task Status, List Tasks)","Run tasks with LLM model selection from LiteLLM endpoint","Run tasks with optional device selection","Run tasks with apps selection from API","Run tasks with structured output support via JSON schema","Run tasks with optional file attachments","Stop tasks"],"authentication":"API key required (Droidrun API Token sent as Authorization: Bearer <token>)","commonUseCases":["Automating Android device testing in CI/CD pipelines","Running AI models on remote Android devices","Capturing screenshots and GIFs for task verification","Executing mobile app workflows with specific models and devices"],"limitations":["Requires a Droidrun account and API token","Model selection is limited to those available via the LiteLLM endpoint","Device and app selection depends on API availability or manual entry","Requires Node.js >= 20.15"],"relatedNodes":["LiteLLM","Generic HTTP Request","JSON Schema"]}


node_type: n8n-nodes-deeptagger.deepTagger
package_name: n8n-nodes-deeptagger
display_name: DeepTagger
description: Extract structured data from documents using DeepTagger
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: deeptagger
author_github_url: https://github.com/deeptaggerhq/
npm_package_name: n8n-nodes-deeptagger
npm_version: 0.1.7
community_fetched_at: 2026-07-14T14:40:33.288Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "extractData",
      "options": [
        {
          "name": "Extract Data",
          "value": "extractData",
          "action": "Extract data from document",
          "description": "Extract structured data from a document"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Extract Data",
      "value": "extractData",
      "action": "Extract data from document",
      "description": "Extract structured data from a document"
    }
  ]

npm_readme:
  <div align="center">
    <img src="https://raw.githubusercontent.com/deeptaggerhq/n8n-nodes-deeptagger/master/nodes/DeepTagger/deeptagger.svg" alt="DeepTagger Logo" width="200"/>
    <h1>DeepTagger</h1>
    <p><strong>n8n-nodes-deeptagger</strong></p>
  </div>

  This is an n8n community node that integrates [DeepTagger](https://deeptagger.com) into your n8n workflows. DeepTagger is an AI-powered document intelligence platform that automatically extracts structured data from documents like invoices, receipts, forms, and contracts.

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

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

  ## What is DeepTagger?

  DeepTagger uses machine learning to extract structured information from documents automatically. Instead of writing complex extraction rules, you simply annotate a few example documents, and DeepTagger learns to extract similar data from new documents. It's perfect for automating data entry from invoices, receipts, forms, contracts, and other business documents.

  ## What does this node do?

  The DeepTagger node allows you to:
  - **Extract structured data** from documents (PDF, images, text) using pre-trained DeepTagger projects
  - **Process both files and text** - upload documents or send text directly
  - **Return structured JSON** - get clean, structured data ready for use in your workflows
  - **Automate document processing** - integrate document intelligence into your automation workflows

  ## Prerequisites

  - An active [DeepTagger account](https://deeptagger.com)
  - A DeepTagger API key (available in your account settings)
  - At least one trained DeepTagger project with a Project ID

  ## Installation

  ### For n8n Cloud users

  n8n Cloud users can install this node directly from the n8n interface once it has been verified by the n8n team.

  ### For self-hosted n8n instances

  Install the node using npm:

  ```bash
  npm install n8n-nodes-deeptagger
  ```

  Then restart your n8n instance. The DeepTagger node should now appear in your node list.

  Alternatively, you can install it directly from the n8n interface by going to **Settings > Community Nodes** and entering `n8n-nodes-deeptagger`.

  ## Credentials

  To use this node, you'll need to configure your DeepTagger API credentials:

  1. In n8n, click on **Credentials** in the left sidebar
  2. Click **New Credential**
  3. Search for and select **DeepTagger API**
  4. Enter your credentials:
     - **API Key**: Your DeepTagger API key (find this in your DeepTagger account settings)
     - **Base URL**: Leave as default (`https://deeptagger.com/api/v1`) unless using a custom deployment
  5. Click **Save**

  ## Operations

  ### Extract Data

  Extracts structured data from a document or text using a trained DeepTagger project.

  **Parameters:**
  - **Project ID** (required): The ID of your DeepTagger project (e.g., `fo_1759714105892`)
    - Find your Project ID by browsing to https://deeptagger.com/das/fos and opening a project - the ID will be in the URL
  - **Input Type**: Choose between `File` (default) or `Text`
    - **File**: Upload a document (PDF, image, etc.) from a binary property
    - **Text**: Send raw text for extraction
  - **Binary Property** (for File input): Name of the binary property containing the file (default: `data`)
  - **Text** (for Text input): The text content to extract data from

  ## Usage

  ### Example 1: Extract Invoice Data from Uploaded Files

  **Workflow:**
  1. **Webhook Trigger** - Receive file upload
  2. **DeepTagger Node** - Extract invoice data
     - Operation: `Extract Data`
     - Project ID: `fo_1759714105892` (your invoice extraction project)
     - Input Type: `File`
     - Binary Property: `data`
  3. **Process Data** - Use extracted fields (invoice number, total, date, etc.) in subsequent nodes

  **Use Case:** Automatically extract invoice details from uploaded PDFs and save them to your accounting system or database.

  ### Example 2: Extract Receipt Data from Email Attachments

  **Workflow:**
  1. **Email Trigger** - Monitor inbox for new emails with attachments
  2. **Filter** - Only process emails with PDF or image attachments
  3. **DeepTagger Node** - Extract receipt data
     - Project ID: Your receipt extraction project ID
     - Input Type: `File`
  4. **Spreadsheet Node** - Add extracted data to Google Sheets or Airtable

  **Use Case:** Process expense receipts sent via email and automatically log them in a spreadsheet.

  ### Example 3: Extract Form Data from Text

  **Workflow:**
  1. **Webhook Trigger** - Receive form submission as text
  2. **DeepTagger Node** - Extract structured fields
     - Operation: `Extract Data`
     - Project ID: Your form extraction project ID
     - Input Type: `Text`
     - Text: `{{$json["formContent"]}}`
  3. **CRM Node** - Create or update contact with extracted data

  **Use Case:** Parse unstructured form submissions and create structured records in your CRM.

  ### Example 4: Batch Process Documents from Cloud Storage

  **Workflow:**
  1. **Schedule Trigger** - Run daily at midnight
  2. **Google Drive Node** - List new PDFs in a specific folder
  3. **Loop Over Items**
  4. **DeepTagger Node** - Extract data from each document
  5. **Database Node** - Insert extracted data
  6. **Google Drive Node** - Move processed files to archive folder

  **Use Case:** Automatically process new documents uploaded to a shared drive overnight.

  ### Example 5: Extract Contract Details for Legal Review

  **Workflow:**
  1. **Dropbox Trigger** - Monitor contracts folder
  2. **DeepTagger Node** - Extract key contract terms
     - Project ID: Your contract extraction project ID
     - Input Type: `File`
  3. **Slack Node** - Send notification with extracted terms to legal team
  4. **Airtable Node** - Create contract record with extracted metadata

  **Use Case:** Automatically extract and catalog key terms from new contracts for review and tracking.

  ## Troubleshooting

  ### Error: "No API key found in request"

  **Solution:** Make sure you've configured your DeepTagger API credentials correctly. The API key must be set in the credentials and properly selected in the node.

  ### Error: "Project not found" or 404

  **Solution:** Verify your Project ID is correct. You can find it in the URL when viewing your project at https://deeptagger.com/das/fos.

  ### Node not appearing in n8n

  **Solution:**
  - Restart your n8n instance after installation
  - Check that the package is installed: `npm list n8n-nodes-deeptagger`
  - For n8n Cloud, wait for the node to be verified by the n8n team

  ### Extraction results are not accurate

  **Solution:**
  - This node uses your trained DeepTagger projects. If results aren't accurate, you may need to:
    - Add more training examples in DeepTagger
    - Review and correct annotations in your project
    - Check that you're using the correct Project ID for the document type

  ### Binary data / file upload issues

  **Solution:**
  - Ensure the previous node outputs binary data in the property you specified (default: `data`)
  - Use the **Move Binary Data** node if needed to reorganize your binary properties
  - Check that the file type is supported by your DeepTagger project

  ## Resources

  - [DeepTagger Documentation](https://deeptagger.com/docs)
  - [DeepTagger Dashboard](https://deeptagger.com/das/fos)
  - [n8n Documentation](https://docs.n8n.io)
  - [n8n Community Forum](https://community.n8n.io)

  ## Support

  For issues related to:
  - **This n8n node**: Open an issue on [GitHub](https://github.com/deeptaggerhq/n8n-nodes-deeptagger/issues)
  - **DeepTagger API or platform**: Contact support@deeptagger.com
  - **n8n platform**: Visit the [n8n community forum](https://community.n8n.io)

  ## License

  [MIT](LICENSE)

  ## Version History

  ### 0.1.0 (2025-01-06)
  - Initial release
  - Extract Data operation with file and text input support

ai_documentation_summary:
  {"purpose":"The DeepTagger node extracts structured data from documents (PDFs, images) or text using pre-trained AI models to automate data entry for invoices, receipts, forms, and contracts.","capabilities":["Extract structured data from uploaded files (PDF, images)","Extract structured data from raw text input","Return clean JSON output","Support multiple input types (File vs Text)","Integrate with various triggers (Webhook, Email, Schedule, Dropbox, Google Drive)"],"authentication":"API key required (DeepTagger API key)","commonUseCases":["Automate invoice data extraction from uploaded PDFs","Process expense receipts from email attachments","Parse unstructured form submissions into structured records","Batch process documents from cloud storage (Google Drive, Dropbox)","Extract contract terms for legal review"],"limitations":["Requires a pre-trained DeepTagger project with a Project ID","Requires an active DeepTagger account","Node is a community node and may not be available in all n8n environments"],"relatedNodes":["n8n-nodes-base.webhook","n8n-nodes-base.email","n8n-nodes-base.spreadsheet","n8n-nodes-base.googleDrive","n8n-nodes-base.dropbox"]}


node_type: n8n-nodes-anchorbrowser.anchorBrowser
package_name: n8n-nodes-anchorbrowser
display_name: Anchor Browser
description: Interact with Anchor Browser API for browser automation and control
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: gdanks-anchor
author_github_url: https://github.com/anchorbrowser/anchorbrowser-n8n-node.git
npm_package_name: n8n-nodes-anchorbrowser
npm_version: 0.1.12
community_fetched_at: 2026-07-14T14:40:33.289Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "session",
      "options": [
        {
          "name": "Browser Session",
          "value": "session"
        },
        {
          "name": "OS Level Control",
          "value": "osControl"
        },
        {
          "name": "Profile",
          "value": "profile"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "Tool",
          "value": "tools"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Session",
          "value": "create",
          "action": "Create browser session",
          "description": "Start a new browser session"
        },
        {
          "name": "End All",
          "value": "endAll",
          "action": "End all browser sessions",
          "description": "End all browser sessions"
        },
        {
          "name": "End Session",
          "value": "end",
          "action": "End browser session",
          "description": "End a specific browser session"
        },
        {
          "name": "Get Downloads",
          "value": "getDownloads",
          "action": "Get session downloads",
          "description": "Get session downloads"
        },
        {
          "name": "Get Recordings",
          "value": "getRecordings",
          "action": "Get session recordings",
          "description": "Get session recordings"
        },
        {
          "name": "Get Session",
          "value": "get",
          "action": "Get browser session",
          "description": "Get details of a specific session"
        },
        {
          "name": "List All",
          "value": "listAll",
          "action": "List all browser sessions",
          "description": "List all browser sessions"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "session"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Delete Profile",
          "value": "delete",
          "action": "Delete profile",
          "description": "Delete a profile"
        },
        {
          "name": "Get Profile",
          "value": "get",
          "action": "Get profile",
          "description": "Get details of a specific profile"
        },
        {
          "name": "List Profiles",
          "value": "list",
          "action": "List all profiles",
          "description": "List all profiles"
        },
        {
          "name": "Update Profile",
          "value": "update",
          "action": "Update profile",
          "description": "Update an existing profile"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "profile"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "fetchWebpage",
      "options": [
        {
          "name": "Fetch Webpage",
          "value": "fetchWebpage",
          "action": "Fetch webpage",
          "description": "Get webpage content as HTML or Markdown"
        },
        {
          "name": "Perform Web Task",
          "value": "performWebTask",
          "action": "Perform web task",
          "description": "Perform an AI-powered web task"
        },
        {
          "name": "Get Perform Web Task Status",
          "value": "getPerformWebTaskStatus",
          "action": "Get perform web task status",
          "description": "Get the status of an asynchronous perform-web-task execution"
        },
        {
          "name": "Take Screenshot",
          "value": "screenshot",
          "action": "Take screenshot",
          "description": "Take a screenshot of a webpage"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tools"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "list",
      "options": [
        {
          "name": "Create Task",
          "value": "create",
          "action": "Create task",
          "description": "Create a new task or update existing task"
        },
        {
          "name": "Delete Task",
          "value": "delete",
          "action": "Delete task",
          "description": "Delete a task"
        },
        {
          "name": "Deploy Task",
          "value": "deploy",
          "action": "Deploy task",
          "description": "Deploy a task version"
        },
        {
          "name": "Get Execution",
          "value": "getExecution",
          "action": "Get execution result",
          "description": "Get a specific execution result by ID"
        },
        {
          "name": "List Executions",
          "value": "listExecutions",
          "action": "List task executions",
          "description": "List task execution results"
        },
        {
          "name": "List Tasks",
          "value": "list",
          "action": "List tasks",
          "description": "List all tasks"
        },
        {
          "name": "Run Task",
          "value": "run",
          "action": "Run task",
          "description": "Execute a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "mouseClick",
      "options": [
        {
          "name": "Copy Text",
          "value": "copyText",
          "action": "Copy text",
          "description": "Copy selected text"
        },
        {
          "name": "Drag and Drop",
          "value": "dragDrop",
          "action": "Drag and drop",
          "description": "Perform drag and drop"
        },
        {
          "name": "Get Clipboard",
          "value": "getClipboard",
          "action": "Get clipboard",
          "description": "Get clipboard content"
        },
        {
          "name": "Keyboard Shortcut",
          "value": "keyboardShortcut",
          "action": "Use keyboard shortcut",
          "description": "Perform keyboard shortcut"
        },
        {
          "name": "Mouse Click",
          "value": "mouseClick",
          "action": "Click mouse",
          "description": "Perform a mouse click"
        },
        {
          "name": "Mouse Double Click",
          "value": "mouseDoubleClick",
          "action": "Double click mouse",
          "description": "Perform a double click"
        },
        {
          "name": "Mouse Move",
          "value": "mouseMove",
          "action": "Move mouse",
          "description": "Move mouse cursor"
        },
        {
          "name": "Navigate to URL",
          "value": "navigate",
          "action": "Navigate to URL",
          "description": "Navigate to a URL"
        },
        {
          "name": "Paste Text",
          "value": "pasteText",
          "action": "Paste text"
        },
        {
          "name": "Scroll",
          "value": "scroll",
          "action": "Scroll page",
          "description": "Scroll the page"
        },
        {
          "name": "Set Clipboard",
          "value": "setClipboard",
          "action": "Set clipboard",
          "description": "Set clipboard content"
        },
        {
          "name": "Take Screenshot",
          "value": "screenshot",
          "action": "Take screenshot",
          "description": "Take a screenshot of current session"
        },
        {
          "name": "Type Text",
          "value": "typeText",
          "action": "Type text",
          "description": "Type text with keyboard"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "osControl"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create Session",
      "value": "create",
      "action": "Create browser session",
      "description": "Start a new browser session",
      "resource": "session"
    },
    {
      "name": "End All",
      "value": "endAll",
      "action": "End all browser sessions",
      "description": "End all browser sessions",
      "resource": "session"
    },
    {
      "name": "End Session",
      "value": "end",
      "action": "End browser session",
      "description": "End a specific browser session",
      "resource": "session"
    },
    {
      "name": "Get Downloads",
      "value": "getDownloads",
      "action": "Get session downloads",
      "description": "Get session downloads",
      "resource": "session"
    },
    {
      "name": "Get Recordings",
      "value": "getRecordings",
      "action": "Get session recordings",
      "description": "Get session recordings",
      "resource": "session"
    },
    {
      "name": "Get Session",
      "value": "get",
      "action": "Get browser session",
      "description": "Get details of a specific session",
      "resource": "session"
    },
    {
      "name": "List All",
      "value": "listAll",
      "action": "List all browser sessions",
      "description": "List all browser sessions",
      "resource": "session"
    },
    {
      "name": "Delete Profile",
      "value": "delete",
      "action": "Delete profile",
      "description": "Delete a profile",
      "resource": "profile"
    },
    {
      "name": "Get Profile",
      "value": "get",
      "action": "Get profile",
      "description": "Get details of a specific profile",
      "resource": "profile"
    },
    {
      "name": "List Profiles",
      "value": "list",
      "action": "List all profiles",
      "description": "List all profiles",
      "resource": "profile"
    },
    {
      "name": "Update Profile",
      "value": "update",
      "action": "Update profile",
      "description": "Update an existing profile",
      "resource": "profile"
    },
    {
      "name": "Fetch Webpage",
      "value": "fetchWebpage",
      "action": "Fetch webpage",
      "description": "Get webpage content as HTML or Markdown",
      "resource": "tools"
    },
    {
      "name": "Perform Web Task",
      "value": "performWebTask",
      "action": "Perform web task",
      "description": "Perform an AI-powered web task",
      "resource": "tools"
    },
    {
      "name": "Get Perform Web Task Status",
      "value": "getPerformWebTaskStatus",
      "action": "Get perform web task status",
      "description": "Get the status of an asynchronous perform-web-task execution",
      "resource": "tools"
    },
    {
      "name": "Take Screenshot",
      "value": "screenshot",
      "action": "Take screenshot",
      "description": "Take a screenshot of a webpage",
      "resource": "tools"
    },
    {
      "name": "Create Task",
      "value": "create",
      "action": "Create task",
      "description": "Create a new task or update existing task",
      "resource": "task"
    },
    {
      "name": "Delete Task",
      "value": "delete",
      "action": "Delete task",
      "description": "Delete a task",
      "resource": "task"
    },
    {
      "name": "Deploy Task",
      "value": "deploy",
      "action": "Deploy task",
      "description": "Deploy a task version",
      "resource": "task"
    },
    {
      "name": "Get Execution",
      "value": "getExecution",
      "action": "Get execution result",
      "description": "Get a specific execution result by ID",
      "resource": "task"
    },
    {
      "name": "List Executions",
      "value": "listExecutions",
      "action": "List task executions",
      "description": "List task execution results",
      "resource": "task"
    },
    {
      "name": "List Tasks",
      "value": "list",
      "action": "List tasks",
      "description": "List all tasks",
      "resource": "task"
    },
    {
      "name": "Run Task",
      "value": "run",
      "action": "Run task",
      "description": "Execute a task",
      "resource": "task"
    },
    {
      "name": "Copy Text",
      "value": "copyText",
      "action": "Copy text",
      "description": "Copy selected text",
      "resource": "osControl"
    },
    {
      "name": "Drag and Drop",
      "value": "dragDrop",
      "action": "Drag and drop",
      "description": "Perform drag and drop",
      "resource": "osControl"
    },
    {
      "name": "Get Clipboard",
      "value": "getClipboard",
      "action": "Get clipboard",
      "description": "Get clipboard content",
      "resource": "osControl"
    },
    {
      "name": "Keyboard Shortcut",
      "value": "keyboardShortcut",
      "action": "Use keyboard shortcut",
      "description": "Perform keyboard shortcut",
      "resource": "osControl"
    },
    {
      "name": "Mouse Click",
      "value": "mouseClick",
      "action": "Click mouse",
      "description": "Perform a mouse click",
      "resource": "osControl"
    },
    {
      "name": "Mouse Double Click",
      "value": "mouseDoubleClick",
      "action": "Double click mouse",
      "description": "Perform a double click",
      "resource": "osControl"
    },
    {
      "name": "Mouse Move",
      "value": "mouseMove",
      "action": "Move mouse",
      "description": "Move mouse cursor",
      "resource": "osControl"
    },
    {
      "name": "Navigate to URL",
      "value": "navigate",
      "action": "Navigate to URL",
      "description": "Navigate to a URL",
      "resource": "osControl"
    },
    {
      "name": "Paste Text",
      "value": "pasteText",
      "action": "Paste text",
      "resource": "osControl"
    },
    {
      "name": "Scroll",
      "value": "scroll",
      "action": "Scroll page",
      "description": "Scroll the page",
      "resource": "osControl"
    },
    {
      "name": "Set Clipboard",
      "value": "setClipboard",
      "action": "Set clipboard",
      "description": "Set clipboard content",
      "resource": "osControl"
    },
    {
      "name": "Take Screenshot",
      "value": "screenshot",
      "action": "Take screenshot",
      "description": "Take a screenshot of current session",
      "resource": "osControl"
    },
    {
      "name": "Type Text",
      "value": "typeText",
      "action": "Type text",
      "description": "Type text with keyboard",
      "resource": "osControl"
    }
  ]

npm_readme:
  # n8n-nodes-anchorbrowser

  An n8n community node for integrating with the Anchor Browser API. This node provides comprehensive browser automation capabilities including session management, web scraping, AI-powered tasks, and OS-level control.

  ## Features

  ### Browser Sessions
  - **Create Session**: Start new browser sessions with customizable configurations
  - **Get Session**: Retrieve details of specific sessions
  - **List All Sessions**: Get status of all active sessions
  - **End Session**: Terminate specific sessions
  - **End All Sessions**: Terminate all active sessions
  - **Get Recordings**: Retrieve session recordings
  - **Get Downloads**: Get session downloads

  ### Profiles
  - **Get Profile**: Retrieve profile details
  - **List Profiles**: View all available profiles
  - **Update Profile**: Modify existing profiles (description only)
  - **Delete Profile**: Remove profiles

  ### Tools
  - **Fetch Webpage**: Get webpage content as HTML or Markdown (requires either Session ID or URL)
  - **Perform Web Task**: Execute AI-powered web tasks using various agents (requires either Session ID or URL)
  - **Take Screenshot**: Capture screenshots with customizable options (requires either Session ID or URL)

  > **Note**: Tools operations are flexible - you can either provide a Session ID to use an existing session, or provide a URL and let the system create a new session automatically. This makes the Tools operations perfect for quick, one-off tasks without needing to manage sessions manually.

  ### OS Level Control
  - **Mouse Actions**: Click, double-click, move, drag and drop (requires Session ID)
  - **Keyboard Input**: Type text, use shortcuts (requires Session ID)
  - **Scrolling**: Scroll pages with customizable parameters (requires Session ID)
  - **Clipboard**: Get/set clipboard content, copy/paste text (requires Session ID)
  - **Navigation**: Navigate to URLs (requires Session ID)
  - **Screenshots**: Capture current session screenshots (requires Session ID)

  ## Installation

  1. Install the node package:
  ```bash
  npm install n8n-nodes-anchorbrowser
  ```

  2. Or build from source:
  ```bash
  git clone https://github.com/anchorbrowser/n8n-nodes-anchorbrowser.git
  cd n8n-nodes-anchorbrowser
  npm install
  npm run build
  ```

  ## Configuration

  ### Credentials

  1. Get your API key from [Anchor Browser Dashboard](https://app.anchorbrowser.io?utm_source=n8n-node)
  2. In n8n, go to Credentials and create a new "Anchor Browser API" credential
  3. Enter your API key and base URL (default: https://api.anchorbrowser.io)

  ### Node Usage

  1. Add the "Anchor Browser" node to your workflow
  2. Select the resource type (Browser Session, Profile, Tools, etc.)
  3. Choose the operation you want to perform
  4. Configure the parameters as needed
  5. Connect the node to your workflow

  ## Examples

  ### Basic Web Scraping

  1. **Create Session**: Start a new browser session
  2. **Navigate**: Go to the target website using OS Control
  3. **Fetch Webpage**: Get the page content as HTML or Markdown
  4. **End Session**: Clean up the session

  ### AI-Powered Task Automation

  1. **Perform Web Task**: Use AI to complete tasks like form filling or data extraction (provides URL directly)
  2. **Get Results**: Retrieve the task results

  ### Session-Based Automation

  1. **Create Session**: Start a browser session
  2. **Navigate**: Go to target website using OS Control
  3. **Mouse Actions**: Click buttons, fill forms using OS Control
  4. **Take Screenshot**: Capture the result
  5. **End Session**: Clean up

  ### Profile Management

  1. **List Profiles**: View all available profiles
  2. **Get Profile**: Retrieve specific profile details
  3. **Update Profile**: Modify profile description
  4. **Delete Profile**: Remove unused profiles

  ## Configuration Options

  ### Session Configuration
  - **Initial URL**: Starting page for the browser
  - **Recording**: Enable/disable video recording
  - **Timeouts**: Set maximum duration and idle timeouts
  - **Live View**: Configure read-only viewing options

  ### Browser Configuration
  - **Profile Management**: Use existing profiles or create new ones
  - **Ad Blocking**: Enable/disable ad blocking
  - **Captcha Solving**: Configure AI-powered captcha solving
  - **Viewport**: Set browser window dimensions
  - **Headless Mode**: Run browser in headless or headful mode
  - **Web Security**: Disable web security features if needed

  ### Proxy Configuration
  - **Anchor Proxies**: Use Anchor's residential, mobile, or government proxies
  - **Custom Proxies**: Configure your own proxy servers
  - **Geographic Targeting**: Select specific countries, regions, or cities

  ### Tools Configuration
  - **Session ID**: Optional - if not provided, a new session will be created automatically
  - **URL**: Required for Tools operations if Session ID is not provided
  - **Format**: Choose between HTML and Markdown for webpage content
  - **AI Models**: Select from various AI providers (OpenAI, Groq, etc.)
  - **Screenshot Options**: Configure image quality, dimensions, and capture settings

  ## API Reference

  For detailed API documentation, visit [Anchor Browser API Docs](https://docs.anchorbrowser.io?utm_source=n8n-node).

  ## Support

  - **Documentation**: [https://docs.anchorbrowser.io?utm_source=n8n-node](https://docs.anchorbrowser.io?utm_source=n8n-node)
  - **Support**: [support@anchorbrowser.io](mailto:support@anchorbrowser.io)
  - **GitHub Issues**: [https://github.com/anchorbrowser/n8n-nodes-anchorbrowser/issues](https://github.com/anchorbrowser/n8n-nodes-anchorbrowser/issues)

  ## License

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

  ## Contributing

  Contributions are welcome! Please read our [Contributing Guidelines](CONTRIBUTING.md) and submit pull requests to our [GitHub repository](https://github.com/anchorbrowser/n8n-nodes-anchorbrowser).

  ## Changelog

  ### v0.1.0
  - Initial release
  - Browser session management (create, get, list, end)
  - Profile management (get, list, update, delete)
  - Tools operations (fetch webpage, perform web task, screenshot)
  - OS-level control (mouse, keyboard, scrolling, clipboard, navigation)
  - Flexible session handling - Tools operations can work with or without existing sessions
  - Comprehensive parameter validation and error handling
  - Support for binary data (screenshots) with proper n8n formatting
  - AI-powered task execution with multiple provider support

ai_documentation_summary:
  {"purpose":"This n8n community node enables browser automation and control by integrating with the Anchor Browser API, supporting session management, web scraping, AI-powered tasks, and OS-level interactions.","capabilities":["Create, retrieve, list, and terminate browser sessions","Retrieve session recordings and downloads","Manage browser profiles (view, update, delete)","Fetch webpage content as HTML or Markdown","Execute AI-powered web tasks using various agents","Capture screenshots with customizable options","Perform mouse actions (click, drag, move)","Execute keyboard input and text entry","Control scrolling and navigation","Access and manage clipboard content"],"authentication":"API key required (stored in n8n Credentials)","commonUseCases":["Web scraping and data extraction","Automated form filling and data entry","Browser-based AI task automation","Session-based UI testing and automation","Profile management for different browser configurations"],"limitations":["Tools operations require either a Session ID or URL; cannot operate without one","OS-level control operations require an active Session ID","Some configurations (like custom proxies) may require additional setup outside the node"],"relatedNodes":["n8n HTTP Request","n8n Code","n8n Webhook"]}


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

updated_at: 2026-07-14 14:40:33
author_name: quintenkamphuis
author_github_url: https://github.com/quinten-kamphuis/
npm_package_name: n8n-nodes-reachkit
npm_version: 0.2.3
community_fetched_at: 2026-07-14T14:40:33.290Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "campaign",
      "options": [
        {
          "name": "Blocklist",
          "value": "blocklist"
        },
        {
          "name": "Campaign",
          "value": "campaign"
        },
        {
          "name": "Conversation",
          "value": "conversation"
        },
        {
          "name": "Inbox",
          "value": "inbox"
        },
        {
          "name": "Lead",
          "value": "lead"
        },
        {
          "name": "Sequence",
          "value": "sequence"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Add Entry",
          "value": "add",
          "action": "Add entry to blocklist",
          "routing": {
            "request": {
              "url": "/blocklist",
              "method": "POST"
            }
          },
          "description": "Add an email or domain to the blocklist"
        },
        {
          "name": "Bulk Add Entries",
          "value": "bulkAdd",
          "action": "Bulk add entries to blocklist",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/blocklist",
              "method": "POST"
            }
          },
          "description": "Add multiple emails or domains to the blocklist in one request"
        },
        {
          "name": "Check",
          "value": "check",
          "action": "Check if email is blocked",
          "routing": {
            "request": {
              "url": "/blocklist/check",
              "method": "GET"
            }
          },
          "description": "Check if an email is blocked. Returns true if the email matches an entry directly, or if its domain (or any parent domain) is on the blocklist."
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Remove from blocklist",
          "routing": {
            "request": {
              "url": "=/blocklist/{{$parameter.entryId}}",
              "method": "DELETE"
            }
          },
          "description": "Remove an entry from the blocklist"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get blocklist entries",
          "routing": {
            "request": {
              "url": "/blocklist",
              "method": "GET"
            }
          },
          "description": "Get many blocklist entries"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "blocklist"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Attach Inboxes",
          "value": "attachInboxes",
          "action": "Attach inboxes to a campaign",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/inboxes/attach",
              "method": "POST"
            }
          },
          "description": "Attach a set of inboxes to a campaign"
        },
        {
          "name": "Create",
          "value": "create",
          "action": "Create a campaign",
          "routing": {
            "request": {
              "url": "/campaigns",
              "method": "POST"
            }
          },
          "description": "Create a new campaign"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}",
              "method": "DELETE"
            }
          },
          "description": "Permanently delete a campaign"
        },
        {
          "name": "Detach Inboxes",
          "value": "detachInboxes",
          "action": "Detach inboxes from a campaign",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/inboxes/detach",
              "method": "POST"
            }
          },
          "description": "Detach a set of inboxes from a campaign"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific campaign"
        },
        {
          "name": "Get Analytics",
          "value": "getAnalytics",
          "action": "Get campaign analytics",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/analytics",
              "method": "GET"
            }
          },
          "description": "Get analytics data for a campaign"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get campaigns",
          "routing": {
            "request": {
              "url": "/campaigns",
              "method": "GET"
            }
          },
          "description": "Get many campaigns"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a campaign",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}",
              "method": "PATCH"
            }
          },
          "description": "Update a campaign"
        },
        {
          "name": "Update Schedule",
          "value": "updateSchedule",
          "action": "Update campaign schedule",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/schedule",
              "method": "PATCH"
            }
          },
          "description": "Update the campaign's sending schedule"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "campaign"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a conversation",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "/unibox/conversations",
              "method": "POST"
            }
          },
          "description": "Create a new conversation and send the first email"
        },
        {
          "name": "Download Attachment",
          "value": "downloadAttachment",
          "action": "Download a conversation attachment",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "binaryData",
                  "properties": {
                    "destinationProperty": "data"
                  }
                }
              ]
            },
            "request": {
              "url": "=/unibox/conversations/{{$parameter.conversationId}}/attachments/{{$parameter.attachmentId}}",
              "method": "GET",
              "encoding": "arraybuffer",
              "returnFullResponse": true
            }
          },
          "description": "Download an attachment from a conversation message"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a conversation",
          "routing": {
            "request": {
              "url": "=/unibox/conversations/{{$parameter.conversationId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific conversation"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get conversations",
          "routing": {
            "request": {
              "url": "/unibox/conversations",
              "method": "GET"
            }
          },
          "description": "Get many conversations"
        },
        {
          "name": "Reply",
          "value": "reply",
          "action": "Reply to a conversation",
          "routing": {
            "request": {
              "url": "=/unibox/conversations/{{$parameter.conversationId}}/reply",
              "method": "POST"
            }
          },
          "description": "Send a reply in a conversation"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a conversation",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/unibox/conversations/{{$parameter.conversationId}}",
              "method": "PATCH"
            }
          },
          "description": "Update label override or read state"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "conversation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get an inbox",
          "routing": {
            "request": {
              "url": "=/inboxes/{{$parameter.inboxId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific inbox"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get inboxes",
          "routing": {
            "request": {
              "url": "/inboxes",
              "method": "GET"
            }
          },
          "description": "Get many inboxes"
        },
        {
          "name": "Get Warmup Stats",
          "value": "getWarmupStats",
          "action": "Get warmup statistics",
          "routing": {
            "request": {
              "url": "=/inboxes/{{$parameter.inboxId}}/warmup/stats",
              "method": "GET"
            }
          },
          "description": "Get warmup statistics for an inbox"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update an inbox",
          "routing": {
            "request": {
              "url": "=/inboxes/{{$parameter.inboxId}}",
              "method": "PATCH"
            }
          },
          "description": "Update editable settings on an inbox"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "inbox"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a lead",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads",
              "method": "POST"
            }
          },
          "description": "Create a new lead in a campaign"
        },
        {
          "name": "Delete",
          "value": "delete",
          "action": "Delete a lead",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a lead from a campaign"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a lead",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
              "method": "GET"
            }
          },
          "description": "Get details of a specific lead"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get leads",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/leads",
              "method": "GET"
            }
          },
          "description": "Get many leads from a campaign"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "lead"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Create Step",
          "value": "createStep",
          "action": "Create a sequence step",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/sequences",
              "method": "POST"
            }
          },
          "description": "Add a new step to a campaign sequence"
        },
        {
          "name": "Create Variant",
          "value": "createVariant",
          "action": "Create a sequence variant",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/sequences/{{$parameter.sequenceId}}/variants",
              "method": "POST"
            }
          },
          "description": "Add a new variant to a sequence step"
        },
        {
          "name": "Delete Step",
          "value": "deleteStep",
          "action": "Delete a sequence step",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/sequences/{{$parameter.sequenceId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a step and all of its variants"
        },
        {
          "name": "Delete Variant",
          "value": "deleteVariant",
          "action": "Delete a sequence variant",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/variants/{{$parameter.variantId}}",
              "method": "DELETE"
            }
          },
          "description": "Delete a variant from a sequence"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get sequences",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/sequences",
              "method": "GET"
            }
          },
          "description": "Get many sequences for a campaign"
        },
        {
          "name": "Update Step",
          "value": "updateStep",
          "action": "Update a sequence step",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/sequences/{{$parameter.sequenceId}}",
              "method": "PATCH"
            }
          },
          "description": "Update a sequence step (delay days)"
        },
        {
          "name": "Update Variant",
          "value": "updateVariant",
          "action": "Update a sequence variant",
          "routing": {
            "request": {
              "url": "=/campaigns/{{$parameter.campaignId}}/variants/{{$parameter.variantId}}",
              "method": "PATCH"
            }
          },
          "description": "Update a sequence variant (subject, body, enabled)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sequence"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Add Entry",
      "value": "add",
      "action": "Add entry to blocklist",
      "routing": {
        "request": {
          "url": "/blocklist",
          "method": "POST"
        }
      },
      "description": "Add an email or domain to the blocklist",
      "resource": "blocklist"
    },
    {
      "name": "Bulk Add Entries",
      "value": "bulkAdd",
      "action": "Bulk add entries to blocklist",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/blocklist",
          "method": "POST"
        }
      },
      "description": "Add multiple emails or domains to the blocklist in one request",
      "resource": "blocklist"
    },
    {
      "name": "Check",
      "value": "check",
      "action": "Check if email is blocked",
      "routing": {
        "request": {
          "url": "/blocklist/check",
          "method": "GET"
        }
      },
      "description": "Check if an email is blocked. Returns true if the email matches an entry directly, or if its domain (or any parent domain) is on the blocklist.",
      "resource": "blocklist"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Remove from blocklist",
      "routing": {
        "request": {
          "url": "=/blocklist/{{$parameter.entryId}}",
          "method": "DELETE"
        }
      },
      "description": "Remove an entry from the blocklist",
      "resource": "blocklist"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get blocklist entries",
      "routing": {
        "request": {
          "url": "/blocklist",
          "method": "GET"
        }
      },
      "description": "Get many blocklist entries",
      "resource": "blocklist"
    },
    {
      "name": "Attach Inboxes",
      "value": "attachInboxes",
      "action": "Attach inboxes to a campaign",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/inboxes/attach",
          "method": "POST"
        }
      },
      "description": "Attach a set of inboxes to a campaign",
      "resource": "campaign"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a campaign",
      "routing": {
        "request": {
          "url": "/campaigns",
          "method": "POST"
        }
      },
      "description": "Create a new campaign",
      "resource": "campaign"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}",
          "method": "DELETE"
        }
      },
      "description": "Permanently delete a campaign",
      "resource": "campaign"
    },
    {
      "name": "Detach Inboxes",
      "value": "detachInboxes",
      "action": "Detach inboxes from a campaign",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/inboxes/detach",
          "method": "POST"
        }
      },
      "description": "Detach a set of inboxes from a campaign",
      "resource": "campaign"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific campaign",
      "resource": "campaign"
    },
    {
      "name": "Get Analytics",
      "value": "getAnalytics",
      "action": "Get campaign analytics",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/analytics",
          "method": "GET"
        }
      },
      "description": "Get analytics data for a campaign",
      "resource": "campaign"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get campaigns",
      "routing": {
        "request": {
          "url": "/campaigns",
          "method": "GET"
        }
      },
      "description": "Get many campaigns",
      "resource": "campaign"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a campaign",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}",
          "method": "PATCH"
        }
      },
      "description": "Update a campaign",
      "resource": "campaign"
    },
    {
      "name": "Update Schedule",
      "value": "updateSchedule",
      "action": "Update campaign schedule",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/schedule",
          "method": "PATCH"
        }
      },
      "description": "Update the campaign's sending schedule",
      "resource": "campaign"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a conversation",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "/unibox/conversations",
          "method": "POST"
        }
      },
      "description": "Create a new conversation and send the first email",
      "resource": "conversation"
    },
    {
      "name": "Download Attachment",
      "value": "downloadAttachment",
      "action": "Download a conversation attachment",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "binaryData",
              "properties": {
                "destinationProperty": "data"
              }
            }
          ]
        },
        "request": {
          "url": "=/unibox/conversations/{{$parameter.conversationId}}/attachments/{{$parameter.attachmentId}}",
          "method": "GET",
          "encoding": "arraybuffer",
          "returnFullResponse": true
        }
      },
      "description": "Download an attachment from a conversation message",
      "resource": "conversation"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a conversation",
      "routing": {
        "request": {
          "url": "=/unibox/conversations/{{$parameter.conversationId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific conversation",
      "resource": "conversation"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get conversations",
      "routing": {
        "request": {
          "url": "/unibox/conversations",
          "method": "GET"
        }
      },
      "description": "Get many conversations",
      "resource": "conversation"
    },
    {
      "name": "Reply",
      "value": "reply",
      "action": "Reply to a conversation",
      "routing": {
        "request": {
          "url": "=/unibox/conversations/{{$parameter.conversationId}}/reply",
          "method": "POST"
        }
      },
      "description": "Send a reply in a conversation",
      "resource": "conversation"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a conversation",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/unibox/conversations/{{$parameter.conversationId}}",
          "method": "PATCH"
        }
      },
      "description": "Update label override or read state",
      "resource": "conversation"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get an inbox",
      "routing": {
        "request": {
          "url": "=/inboxes/{{$parameter.inboxId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific inbox",
      "resource": "inbox"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get inboxes",
      "routing": {
        "request": {
          "url": "/inboxes",
          "method": "GET"
        }
      },
      "description": "Get many inboxes",
      "resource": "inbox"
    },
    {
      "name": "Get Warmup Stats",
      "value": "getWarmupStats",
      "action": "Get warmup statistics",
      "routing": {
        "request": {
          "url": "=/inboxes/{{$parameter.inboxId}}/warmup/stats",
          "method": "GET"
        }
      },
      "description": "Get warmup statistics for an inbox",
      "resource": "inbox"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update an inbox",
      "routing": {
        "request": {
          "url": "=/inboxes/{{$parameter.inboxId}}",
          "method": "PATCH"
        }
      },
      "description": "Update editable settings on an inbox",
      "resource": "inbox"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a lead",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads",
          "method": "POST"
        }
      },
      "description": "Create a new lead in a campaign",
      "resource": "lead"
    },
    {
      "name": "Delete",
      "value": "delete",
      "action": "Delete a lead",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a lead from a campaign",
      "resource": "lead"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a lead",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads/{{$parameter.leadId}}",
          "method": "GET"
        }
      },
      "description": "Get details of a specific lead",
      "resource": "lead"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get leads",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/leads",
          "method": "GET"
        }
      },
      "description": "Get many leads from a campaign",
      "resource": "lead"
    },
    {
      "name": "Create Step",
      "value": "createStep",
      "action": "Create a sequence step",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/sequences",
          "method": "POST"
        }
      },
      "description": "Add a new step to a campaign sequence",
      "resource": "sequence"
    },
    {
      "name": "Create Variant",
      "value": "createVariant",
      "action": "Create a sequence variant",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/sequences/{{$parameter.sequenceId}}/variants",
          "method": "POST"
        }
      },
      "description": "Add a new variant to a sequence step",
      "resource": "sequence"
    },
    {
      "name": "Delete Step",
      "value": "deleteStep",
      "action": "Delete a sequence step",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/sequences/{{$parameter.sequenceId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a step and all of its variants",
      "resource": "sequence"
    },
    {
      "name": "Delete Variant",
      "value": "deleteVariant",
      "action": "Delete a sequence variant",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/variants/{{$parameter.variantId}}",
          "method": "DELETE"
        }
      },
      "description": "Delete a variant from a sequence",
      "resource": "sequence"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get sequences",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/sequences",
          "method": "GET"
        }
      },
      "description": "Get many sequences for a campaign",
      "resource": "sequence"
    },
    {
      "name": "Update Step",
      "value": "updateStep",
      "action": "Update a sequence step",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/sequences/{{$parameter.sequenceId}}",
          "method": "PATCH"
        }
      },
      "description": "Update a sequence step (delay days)",
      "resource": "sequence"
    },
    {
      "name": "Update Variant",
      "value": "updateVariant",
      "action": "Update a sequence variant",
      "routing": {
        "request": {
          "url": "=/campaigns/{{$parameter.campaignId}}/variants/{{$parameter.variantId}}",
          "method": "PATCH"
        }
      },
      "description": "Update a sequence variant (subject, body, enabled)",
      "resource": "sequence"
    }
  ]

npm_readme:
  # n8n-nodes-reachkit

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

  Reachkit is a cold email outreach platform that helps you manage campaigns, leads, inboxes, and conversations.

  [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 resources and operations:

  ### Blocklist

  - **Add**: Add an email to the blocklist
  - **Check**: Check if an email is in the blocklist
  - **Delete**: Remove an email from the blocklist
  - **Get Many**: Get all blocklist entries with pagination and search

  ### Campaign

  - **Get**: Get details of a specific campaign
  - **Get Many**: List all campaigns with pagination and search
  - **Get Analytics**: Get analytics data for a campaign including daily stats and sequence performance
  - **Update**: Update a campaign status (active/paused)

  ### Conversation

  - **Get**: Get details of a specific conversation with all messages
  - **Get Many**: List all conversations with pagination and filtering by folder
  - **Reply**: Send a reply in a conversation

  ### Inbox

  - **Get**: Get details of a specific inbox
  - **Get Many**: List all inboxes with pagination and search
  - **Get Warmup Stats**: Get warmup statistics for an inbox over the last 7 days

  ### Lead

  - **Create**: Create a new lead in a campaign with custom variables
  - **Delete**: Delete a lead from a campaign
  - **Get**: Get details of a specific lead
  - **Get Many**: List all leads in a campaign with pagination and search

  ### Sequence

  - **Get Many**: List all sequences for a campaign with their variants
  - **Update Variant**: Update the enabled status of a sequence variant

  ## Credentials

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

  ### Getting your API key:

  1. Log in to your Reachkit account
  2. Navigate to **Settings → Integrations**
  3. Click **Add API Key**
  4. Enter a name for the key
  5. Copy the API key (it will only be shown once)

  ### Authentication

  The node uses Bearer token authentication. Simply paste your API key in the credentials configuration.

  **Note**: API access is available exclusively for users on the Professional and Agency plans.

  ## Compatibility

  Tested with n8n version 1.x.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Reachkit n8n Documentation](https://reachkit.ai/help/articles/n8n-integration)
  - [Reachkit API Documentation](https://reachkit.ai/help/articles/api-documentation)
  - [Reachkit Webhooks Documentation](https://reachkit.ai/help/articles/webhooks)

  ## Usage Examples

  ### Create leads from a spreadsheet

  1. Use the **Spreadsheet File** node to read your leads
  2. Connect to **Reachkit** node
  3. Select **Lead** resource and **Create** operation
  4. Map the email, first name, last name fields
  5. Set custom variables for personalization

  ### Get campaign analytics

  1. Use the **Reachkit** node
  2. Select **Campaign** resource and **Get Analytics** operation
  3. Enter the campaign ID
  4. Process the daily stats and sequence performance data

  ### Reply to new conversations

  1. Use the **Reachkit** node with **Conversation** → **Get Many**
  2. Filter by folder (primary/others)
  3. Process unread conversations
  4. Use **Conversation** → **Reply** to send responses

  ### Manage blocklist

  1. Add emails to blocklist from bounced leads
  2. Check if an email is blocked before adding to campaign
  3. Clean up your blocklist periodically

  ## Version History

  ### 0.1.0

  - Initial release
  - Support for all major Reachkit API endpoints
  - Full CRUD operations for leads, campaigns, conversations
  - Blocklist management
  - Inbox and warmup stats
  - Sequence variant management

  ## License

  [MIT](LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of Reachkit cold email outreach workflows, allowing management of campaigns, leads, conversations, inboxes, and blocklists.","capabilities":["Add, check, delete, and retrieve blocklist entries","Retrieve and update campaign details and status","Fetch campaign analytics including daily stats and sequence performance","Retrieve, list, and reply to conversations","Retrieve inbox details and warmup statistics","Create leads with custom variables and delete existing leads","List sequences and update variant enabled status"],"authentication":"API key required (Bearer token)","commonUseCases":["Automated lead creation from spreadsheets","Campaign performance monitoring and analytics","Automated replies to new conversations","Managing email blocklists to prevent bounce rates"],"limitations":["API access restricted to Professional and Agency plans only","Requires manual API key configuration"],"relatedNodes":["Spreadsheet File","HTTP Request","Wait","Code"]}


node_type: n8n-nodes-exa-official.exa
package_name: n8n-nodes-exa-official
display_name: Exa
description: Semantic web search and research via Exa API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: exa-jakub
author_github_url: https://github.com/exa-labs/n8n-integration.git
npm_package_name: n8n-nodes-exa-official
npm_version: 0.3.3
community_fetched_at: 2026-07-14T14:40:33.291Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Answer",
          "value": "answer",
          "description": "Get a web-grounded LLM answer to a query"
        },
        {
          "name": "Content",
          "value": "contents",
          "description": "Get contents from URLs"
        },
        {
          "name": "Search",
          "value": "search",
          "description": "Search the web intelligently"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search",
          "action": "Search the web",
          "routing": {
            "request": {
              "url": "/search",
              "method": "POST"
            }
          },
          "description": "Search the web and optionally extract contents"
        },
        {
          "name": "Deep Search",
          "value": "deepSearch",
          "action": "Deep search the web",
          "routing": {
            "request": {
              "url": "/search",
              "method": "POST"
            }
          },
          "description": "Run a deep or deep-reasoning search with synthesized output"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getContents",
      "options": [
        {
          "name": "Get Contents",
          "value": "getContents",
          "action": "Get contents from urls",
          "routing": {
            "request": {
              "url": "/contents",
              "method": "POST"
            }
          },
          "description": "Retrieve contents from a list of URLs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "contents"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAnswer",
      "options": [
        {
          "name": "Get Answer",
          "value": "getAnswer",
          "action": "Get a web grounded LLM answer",
          "routing": {
            "request": {
              "url": "/answer",
              "method": "POST"
            }
          },
          "description": "Get a web-grounded LLM answer to a query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "answer"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search",
      "value": "search",
      "action": "Search the web",
      "routing": {
        "request": {
          "url": "/search",
          "method": "POST"
        }
      },
      "description": "Search the web and optionally extract contents",
      "resource": "search"
    },
    {
      "name": "Deep Search",
      "value": "deepSearch",
      "action": "Deep search the web",
      "routing": {
        "request": {
          "url": "/search",
          "method": "POST"
        }
      },
      "description": "Run a deep or deep-reasoning search with synthesized output",
      "resource": "search"
    },
    {
      "name": "Get Contents",
      "value": "getContents",
      "action": "Get contents from urls",
      "routing": {
        "request": {
          "url": "/contents",
          "method": "POST"
        }
      },
      "description": "Retrieve contents from a list of URLs",
      "resource": "contents"
    },
    {
      "name": "Get Answer",
      "value": "getAnswer",
      "action": "Get a web grounded LLM answer",
      "routing": {
        "request": {
          "url": "/answer",
          "method": "POST"
        }
      },
      "description": "Get a web-grounded LLM answer to a query",
      "resource": "answer"
    }
  ]

npm_readme:
  # n8n-nodes-exa-official

  This is an n8n community node that provides integration with the Exa API for intelligent web search, async research, and content extraction.

  [Exa](https://exa.ai) is an AI-powered search engine that provides embeddings-based semantic search, deep web research, and structured content extraction.

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

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

  ## Installation

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

  ## Operations

  This node supports the following Exa API operations:

  ### Search
  - **Search**: Intelligently search the web with neural or keyword-based search
    - Supports multiple search types: auto, neural, keyword, fast
    - Filter by domain, date, category, and text content
    - Extract page contents (text, highlights, summaries)
    - Configure livecrawl and subpage crawling

  ### Contents
  - **Get Contents**: Retrieve cleaned text, highlights, and summaries from a list of URLs

  ### Find Similar
  - **Find Similar Links**: Discover pages similar to a given URL

  ### Answer
  - **Get Answer**: Get an AI-generated answer to a query using Exa's research capabilities

  ### Research
  - **Create Research Task**: Launch a long-running research job powered by Exa Research or Research Pro
  - **Get Research Task**: Poll a specific research task for status, findings, and generated artifacts
  - **List Research Tasks**: Fetch paginated task history for monitoring and auditing

  ## Credentials

  To use this node, you need an Exa API key. You can obtain one by:

  1. Signing up at [dashboard.exa.ai](https://dashboard.exa.ai)
  2. Navigating to the API Keys section
  3. Creating a new API key

  Add the API key to your n8n credentials as "Exa API".

  ## Compatibility

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

  ## Usage

  ### Basic Search Example

  1. Add the Exa node to your workflow
  2. Select "Search" as the resource
  3. Enter your search query (e.g., "Latest AI research papers")
  4. Configure search type (auto, neural, keyword, or fast)
  5. Optionally add filters:
     - Category (research paper, news, company, etc.)
     - Date range (published date)
     - Domain filters (include/exclude specific domains)
     - Text filters (include/exclude specific text)

  ### Content Extraction

  Enable content extraction options:
  - **Text**: Get cleaned page text
  - **Highlights**: Get relevant excerpts
  - **Summary**: Get AI-generated summaries
  - **Livecrawl**: Crawl pages in real-time
  - **Subpages**: Crawl linked subpages

  ### Advanced Features

  **Date Filtering**: Filter results by publication date
  ```
  Start Published Date: 2024-01-01
  End Published Date: 2024-12-31
  ```

  **Domain Control**: Focus on or exclude specific domains
  ```
  Include Domains: arxiv.org, github.com
  Exclude Domains: reddit.com
  ```

  **Category Filtering**: Focus on specific content types
  - Company profiles
  - Research papers
  - News articles
  - PDFs
  - GitHub repositories
  - Twitter/LinkedIn profiles
  - Financial reports

  ### Research Workflow Example

  1. Add an Exa node and set **Resource** to `Research` with the **Create Research Task** operation.
  2. Provide a clear research instruction (for example, "Compare emerging open-source RAG frameworks and summarize trade-offs").
  3. Choose the Research product tier (`exa-research` or `exa-research-pro`) and optional guardrails like domain/category allowlists.
  4. Store the returned `id` or use paired nodes (Set/Code) to persist it inside the workflow.
  5. Add another Exa node in the same workflow set to **Get Research Task** and reference the saved `id` to poll results until the status becomes `completed`.
  6. Inspect the response for `insights`, `sources`, `outline`, or generated assets, then continue your workflow (e.g., send a Slack summary or populate a database).

  For bulk monitoring, use **List Research Tasks** and apply parameters for pagination, status filtering, or creation date ranges.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Exa API documentation](https://docs.exa.ai)
  * [Exa API reference](https://docs.exa.ai/reference/search)

  ## Development

  To work on this node locally:

  ```bash
  # Install dependencies
  npm install

  # Build the node
  npm run build

  # Link for local testing
  npm link

  # In your n8n installation directory
  cd ~/.n8n/custom
  npm link n8n-nodes-exa-official

  # Start n8n
  n8n start
  ```

  ## License

  [MIT](https://github.com/exa-labs/n8n-integration/blob/main/LICENSE)

ai_documentation_summary:
  {"purpose":"This n8n community node integrates with the Exa API to perform semantic web search, deep web research, and structured content extraction.","capabilities":["Semantic web search with neural, keyword, and fast search modes","Content extraction (text, highlights, summaries) from search results","Domain, date, category, and text content filtering","Retrieve cleaned text and summaries from specific URLs","Discover similar pages to a given URL","Generate AI-powered answers to research queries","Create and monitor long-running research tasks","List and paginate research task history"],"authentication":"API key required (Exa API key)","commonUseCases":["Conducting deep web research for business intelligence","Extracting and summarizing content from multiple sources","Finding similar web pages or content","Monitoring research tasks and generating reports","Filtering search results by domain, date, or category"],"limitations":["Requires a paid Exa API key (free tier may have limitations)","Research tasks are long-running and require polling for status","Some advanced features like Research Pro may require specific product tiers"],"relatedNodes":["n8n-nodes-webhook","n8n-nodes-code","n8n-nodes-set"]}


node_type: n8n-nodes-phacet-official.phacet
package_name: n8n-nodes-phacet-official
display_name: Phacet
description: Interact with Phacet API to manage spreadsheet data
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: phacetlabs
author_github_url: https://github.com/spx-software/n8n-phacet-official.git
npm_package_name: n8n-nodes-phacet-official
npm_version: 0.3.0
community_fetched_at: 2026-07-14T14:40:33.292Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "row",
      "options": [
        {
          "name": "Row",
          "value": "row"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a row",
          "description": "Create a new row in a table"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a row",
          "description": "Updates an existing row in a specific table with new cell values"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a row",
          "description": "Retrieve a row by its ID from a specific table"
        },
        {
          "name": "Get Cell Download URL",
          "value": "getCellDownloadUrl",
          "action": "Get a cell download URL",
          "description": "Gets a temporary download URL for a file stored in a file-type column"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "row"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a row",
      "description": "Create a new row in a table",
      "resource": "row"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a row",
      "description": "Updates an existing row in a specific table with new cell values",
      "resource": "row"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a row",
      "description": "Retrieve a row by its ID from a specific table",
      "resource": "row"
    },
    {
      "name": "Get Cell Download URL",
      "value": "getCellDownloadUrl",
      "action": "Get a cell download URL",
      "description": "Gets a temporary download URL for a file stored in a file-type column",
      "resource": "row"
    }
  ]

npm_readme:
  # n8n-nodes-phacet-official

  ![Phacet Logo](https://raw.githubusercontent.com/spx-software/n8n-phacet-official/main/nodes/Phacet/phacet.svg)

  This is an n8n community node for [Phacet](https://phacetlabs.com), the AI that prepares, reconciles and controls your financial data. Automate table operations; create rows, update data, retrieve results, and download files directly from 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.

  ### Community Nodes (n8n Cloud & Self-hosted)

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-phacet-official`
  4. Select **Install**

  Once installed, the Phacet node will be available in your node palette.

  ## Operations

  This package includes **two nodes**:

  - **Phacet**: manage rows in your Phacet tables
  - **Phacet Trigger**: start workflows when Phacet events occur (webhooks)

  ### Row Operations

  - **Create**: Create new rows in a table with dynamic column mapping (supports inline file upload)
  - **Update**: Update an existing row with new cell values
  - **Get**: Retrieve a row by its ID
  - **Get Cell Download URL**: Get a temporary download URL for a file stored in a file-type column

  ### Trigger Operations (Phacet Trigger)

  - **Row Calculation Completed** (`row.calculation.completed`)
  - **Row Calculation Failed** (`row.calculation.failed`)
  - **Row Created** (`row.created`)

  ## Credentials

  You need a Phacet API key to use this node.

  ### Getting your Phacet API Key

  1. Log in to your [Phacet account](https://app.phacetlabs.com)
  2. Go to **Settings > API**
  3. Generate a new API key
  4. Copy the API key

  ### Setting up the credential in n8n

  1. In n8n, create a new **Phacet API** credential
  2. Enter your API key in the **API Key** field
  3. Save the credential

  ## Compatibility

  - **n8n version**: 1.0.0 or later
  - **Node version**: 18.0.0 or later

  ## Usage

  ### Create Rows

  Use the **Create** operation to add new rows to your Phacet tables:

  1. Add the Phacet node to your workflow
  2. Select **Row** as the resource
  3. Select **Create** as the operation
  4. Choose your **Table** from the dynamic dropdown
  5. Choose your **Session** from the dynamic dropdown (based on selected table)
  6. Map your data to **Cells** using the dynamic column selector (Text and/or File)
  7. The node returns the created row information

  For file-type columns, you can pass a file directly — no separate upload step needed.

  ### Update Rows

  Use the **Update** operation to modify existing rows: select Row > Update, specify the Table and Row ID, then map your updated values to columns.

  ### Get Rows

  Use the **Get** operation to retrieve a row by its ID from a specific table.

  ### Get Cell Download URL

  Use the **Get Cell Download URL** operation to get a temporary download link for files stored in file-type columns.

  ### Phacet Trigger (Webhooks)

  Use **Phacet Trigger** to start a workflow when Phacet emits events:

  Supported events:

  - **Row Calculation Completed** (`row.calculation.completed`)
  - **Row Calculation Failed** (`row.calculation.failed`)
  - **Row Created** (`row.created`)

  1. Add **Phacet Trigger**
  2. Select an **Event**
  3. Select the **Table Name or ID**
  4. Activate the workflow (the node creates a webhook endpoint in Phacet)

  > Your n8n webhook URL must be publicly reachable by Phacet (important for self-hosted setups behind NAT/proxy).

  ### Dynamic Dropdowns

  This node features intelligent dynamic dropdowns that:

  - Load your available tables automatically
  - Show sessions based on your selected table
  - Display column names (not just IDs) for easy mapping
  - Update in real-time as you make selections

  ## Example Workflows

  ### Invoice Processing

  ```
  Email Trigger → Extract Attachments → Phacet Create Row (with invoice file) → Notification
  ```

  ### Bank Reconciliation

  ```
  SFTP/HTTP → Fetch bank statements → Phacet Create Row → Wait for calculation → Get Row results
  ```

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [Phacet API Documentation](https://docs.phacetlabs.com/reference/authentication-1)
  - [Phacet Platform](https://phacetlabs.com)

  ## License

  [MIT](LICENSE.md)

  ---

  **Developed by [Phacet Labs](https://phacetlabs.com)**

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of financial data management by interacting with the Phacet API to create, update, and retrieve spreadsheet rows, as well as trigger workflows based on Phacet events.","capabilities":["Create new rows in Phacet tables with dynamic column mapping and inline file upload","Update existing rows with new cell values","Retrieve rows by ID","Get temporary download URLs for files stored in file-type columns","Trigger workflows on Phacet events (Row Calculation Completed, Row Calculation Failed, Row Created)","Supports both text and file-type columns","Features intelligent dynamic dropdowns for tables, sessions, and columns"],"authentication":"API key required","commonUseCases":["Invoice processing with automatic file attachment","Bank reconciliation and statement processing","Automated financial data reconciliation","Event-driven financial workflow automation"],"limitations":["Requires public webhook URL accessibility for self-hosted setups behind NAT/proxy","Requires Phacet account and API key setup","Node is community-maintained (not official n8n node)"],"relatedNodes":["n8n HTTP Request","n8n SFTP","n8n Email Trigger","n8n Wait","n8n File"]}


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

updated_at: 2026-07-14 14:40:33
author_name: geocapture
author_github_url: https://github.com/geocapture/n8n-nodes-geocapture.git
npm_package_name: @geocapture/n8n-nodes-geocapture
npm_version: 0.1.5
community_fetched_at: 2026-07-14T14:40:33.293Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "project",
      "options": [
        {
          "name": "Project",
          "value": "project"
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a new project",
          "description": "Create a new project"
        },
        {
          "name": "Create or Update",
          "value": "upsert",
          "action": "Create or update a project",
          "description": "Create a new project, or update the current one if it already exists (upsert)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a new project",
      "description": "Create a new project",
      "resource": "project"
    },
    {
      "name": "Create or Update",
      "value": "upsert",
      "action": "Create or update a project",
      "description": "Create a new project, or update the current one if it already exists (upsert)",
      "resource": "project"
    }
  ]

npm_readme:
  # @geocapture/n8n-nodes-geocapture

  This node lets you use the geoCapture API in your n8n workflows.

  ## Installation

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

  ## Operations

  - Projects
    - Create a new project
    - Create or Update a project
    - Watch for Project Events (Create, Update, Delete)

  ## Credentials

  You can use the geoCapture API Token to use this node.

  1. Go to the [API Settings](https://app.geocapture.net/apis) to create a new API Token.
  2. Add a Service to the API Token.
  3. Search for the "n8n" Service and click "Add"
  4. Save the API Token.
  5. Copy the API Token.

  ## Compatibility

  Compatible with n8n@1.60.0 or later

ai_documentation_summary:
  {"purpose":"This n8n node enables interaction with the geoCapture API to manage projects and monitor project events within automated workflows.","capabilities":["Create a new project","Update an existing project","Watch for project events (Create, Update, Delete)","Retrieve project data via API"],"authentication":"API Token required (configured via n8n credentials with geoCapture API Token)","commonUseCases":["Automating project lifecycle management","Monitoring project status changes in real-time","Integrating geoCapture services into n8n workflows"],"limitations":["Requires n8n version 1.60.0 or later","Requires manual setup of API Token and service configuration in geoCapture dashboard"],"relatedNodes":[]}


node_type: n8n-nodes-emailvalidation.emailValidation
package_name: n8n-nodes-emailvalidation
display_name: EmailValidation
description: Validate email addresses via emailvalidation.io API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: everapi-user
author_github_url: https://github.com/everapihq/
npm_package_name: n8n-nodes-emailvalidation
npm_version: 0.1.2
community_fetched_at: 2026-07-14T14:40:33.294Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "operation",
      "type": "options",
      "default": "validateEmail",
      "options": [
        {
          "name": "Validate Email",
          "value": "validateEmail",
          "action": "Validate email address",
          "routing": {
            "request": {
              "qs": {
                "email": "={{$parameter[\"email\"]}}",
                "catch_all": "={{$parameter[\"catchAll\"] ? 1 : undefined}}"
              },
              "url": "/info",
              "method": "GET"
            }
          },
          "description": "Retrieve information about an email address"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Validate Email",
      "value": "validateEmail",
      "action": "Validate email address",
      "routing": {
        "request": {
          "qs": {
            "email": "={{$parameter[\"email\"]}}",
            "catch_all": "={{$parameter[\"catchAll\"] ? 1 : undefined}}"
          },
          "url": "/info",
          "method": "GET"
        }
      },
      "description": "Retrieve information about an email address"
    }
  ]

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

  # n8n-nodes-emailvalidation

  This package provides the EmailValidation community node for [n8n](https://n8n.io). It integrates the [emailvalidation.io API](https://emailvalidation.io) to validate and verify email addresses.

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

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

  ## Prerequisites

  You need the following installed on your development machine:

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

  ## Using this starter

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

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

  ## More information

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

  ## EmailValidation Node

  Validate and verify email addresses using the `emailvalidation.io` API.

  ### Credentials

  - Create credentials of type `EmailValidation API`.
  - Fields:
    - API Key (stored securely)
    - Base URL: defaults to `https://api.emailvalidation.io/v1`

  Authentication is sent via query parameter `apikey` (the API also supports header-based auth). See docs: [`https://emailvalidation.io/docs/`](https://emailvalidation.io/docs/).

  ### Operation

  - Validate Email
    - Email (required) — the email address to validate
    - Catch All (optional) — when enabled, sets `catch_all=1` to perform catch-all detection (paid plans)

  Per endpoint docs: [`https://emailvalidation.io/docs/info`](https://emailvalidation.io/docs/info)

  The node performs a `GET /v1/info` with `email`, optional `catch_all`, and `apikey` query parameters. Example request:

  ```bash
  curl -G "https://api.emailvalidation.io/v1/info" \
    --data-urlencode "email=support@emailvalidation.io" \
    --data-urlencode "apikey=YOUR-API-KEY"
  ```

  ### Example Output

  ```json
  {
    "email": "[email protected]",
    "user": "support",
    "tag": "",
    "domain": "emailvalidation.io",
    "smtp_check": true,
    "mx_found": true,
    "did_you_mean": "",
    "role": true,
    "disposable": false,
    "score": 0.64,
    "state": "deliverable",
    "reason": "valid_mailbox",
    "free": false,
    "format_valid": true,
    "catch_all": null
  }
  ```

  See documentation for field meanings and state/reason descriptions: [`https://emailvalidation.io/docs/info`](https://emailvalidation.io/docs/info)

  ## License

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

ai_documentation_summary:
  {"purpose":"Validates and verifies email addresses using the emailvalidation.io API to check deliverability, format, and other email quality metrics.","capabilities":["Validate email address format and deliverability","Detect disposable email addresses","Identify catch-all domains","Check if email is a role-based address","Verify MX records exist","Perform SMTP checks","Provide validation score and state"],"authentication":"API Key required (sent via query parameter 'apikey' or supported via header-based auth)","commonUseCases":["Email verification before sending campaigns","Cleaning email lists to remove invalid addresses","Preventing bounce rates in email marketing","Validating user email addresses during registration"],"limitations":["Catch-all detection requires paid plans","Requires valid API key from emailvalidation.io","May have rate limits based on API plan"],"relatedNodes":["EmailSend","EmailTemplates","HTTP Request"]}


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

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

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

npm_readme:
  # n8n Community Node for Crossmint

  ## Table of Contents

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

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

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

  ## 🚀 Installation (Local Development Setup)


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

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

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


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


  ## ⚙️ Your First Workflow Using Crossmint

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

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

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

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


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

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


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

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

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


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

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

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


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

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


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

  ### Getting Test USDC for Staging

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

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

  ## 💡 Supported Operations

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

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

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

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

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

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

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

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

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

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


  ## 📖 API Reference

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

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

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


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

  ## 🔑 Understanding Wallet Locators

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

  ### Locator Types

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


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

  ### Chain Types

  - **Solana**: Solana blockchain

  ### Best Practices

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

  ## 🔐 Admin Signer Private Key

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

  ### What is an Admin Signer?

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

  ### Key Requirements by Blockchain

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

  ### Generating Private Keys

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

  ### Security Best Practices

  ⚠️ **Critical Security Guidelines:**

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

  ### How It Works in Crossmint

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

  ## 📁 Example Workflows

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

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

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

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

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

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

  ## 📄 License

  MIT

  -----

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


node_type: n8n-nodes-jsonpost.jsonPostTrigger
package_name: n8n-nodes-jsonpost
display_name: CrispForms Trigger
description: Starts the workflow when a form is submitted to CrispForms
category: Community
development_style: declarative
version: 1
properties_schema: []
operations: []
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: ubergeekady
author_github_url: https://github.com/ubergeekady/
npm_package_name: n8n-nodes-jsonpost
npm_version: 0.1.6
community_fetched_at: 2026-07-14T14:40:33.296Z
ai_summary_generated_at: 2026-03-25 22:51:43
npm_readme:
  # n8n-nodes-jsonpost

  A custom n8n node for integrating with JSONPost.com webhooks. This node allows you to easily create, manage, and receive webhooks from JSONPost endpoints in your n8n workflows.

  ## Features

  - **Easy Webhook Management**: Create and delete webhooks for JSONPost endpoints
  - **Real-time Data Reception**: Receive webhook data in real-time within your n8n workflows
  - **Secure Authentication**: Uses API key authentication for secure access to JSONPost services
  - **Event Filtering**: Subscribe to specific event types from your JSONPost endpoints
  - **Automatic Cleanup**: Properly handles webhook cleanup when workflows are deactivated

  ## Installation

  ### From npm (Recommended)

  ```bash
  npm install n8n-nodes-jsonpost
  ```

  ### n8n Community Nodes

  You can also install this node directly through n8n's community nodes feature:

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

  ## Quick Start

  ### 1. Set up Credentials

  1. In n8n, go to **Credentials** and create a new **JSONPost API** credential
  2. Enter your JSONPost API key (get it from your JSONPost dashboard)
  3. Test the connection to ensure it's working properly

  ### 2. Add the Node

  1. Add the **JSONPost Trigger** node to your workflow
  2. Select your JSONPost API credential
  3. Enter your **Endpoint ID** (from your JSONPost dashboard)
  4. Choose the **Event Type** you want to listen for (POST, GET, PUT, DELETE)

  ### 3. Activate and Test

  1. Activate the workflow
  2. The node will automatically create a webhook subscription with JSONPost
  3. Send data to your JSONPost endpoint to trigger your workflow

  ## Usage

  ### Accessing Webhook Data

  The JSONPost Trigger node outputs the complete webhook payload. You can access this data in subsequent nodes using:

  - `{{ $json.body }}` - The request body
  - `{{ $json.headers }}` - Request headers  
  - `{{ $json.query }}` - Query parameters
  - `{{ $json.method }}` - HTTP method used
  - `{{ $json.timestamp }}` - When the request was received

  ### Example Workflow

  1. **JSONPost Trigger** - Receives webhook data
  2. **Set Node** - Extract specific fields from the payload
  3. **HTTP Request** - Send processed data to another service
  4. **Email Node** - Send notification about the received data

  ## Configuration Options

  ### JSONPost Trigger Node

  - **Credential**: Your JSONPost API credential
  - **Endpoint ID**: The ID of your JSONPost endpoint (found in your JSONPost dashboard)
  - **Event Type**: The HTTP method to listen for:
    - `POST` - Listen for POST requests (default)
    - `GET` - Listen for GET requests
    - `PUT` - Listen for PUT requests
    - `DELETE` - Listen for DELETE requests

  ## Support

  - **Issues & Bug Reports**: [GitHub Issues](https://github.com/yourusername/n8n-nodes-jsonpost/issues)
  - **Feature Requests**: [GitHub Issues](https://github.com/yourusername/n8n-nodes-jsonpost/issues)
  - **General n8n Questions**: [n8n Community Forum](https://community.n8n.io/)
  - **JSONPost API Questions**: [JSONPost.com](https://jsonpost.com)

  ## Documentation

  - **User Guide**: This README
  - **Developer Documentation**: See [DEVELOPER.md](./DEVELOPER.md) for technical details, development setup, and contribution guidelines
  - **Changelog**: See [CHANGELOG.md](./CHANGELOG.md) for version history

  ## License

  This project is licensed under the MIT License. See the LICENSE file for details.

  ---

  **Note**: This is a community-maintained node and is not officially supported by n8n or JSONPost. Use at your own discretion and always test thoroughly in your environment before production use.

ai_documentation_summary:
  {"purpose":"Triggers n8n workflows when a form is submitted to a JSONPost.com webhook endpoint by receiving real-time webhook data.","capabilities":["Create and delete JSONPost webhooks","Receive webhook data in real-time","Filter events by HTTP method (POST, GET, PUT, DELETE)","Access webhook payload data including body, headers, query parameters, HTTP method, and timestamp","Automatic cleanup of webhook subscriptions when workflows are deactivated"],"authentication":"API key required (JSONPost API key)","commonUseCases":["Triggering workflows upon form submissions","Receiving data from third-party services via JSONPost endpoints","Automating tasks based on incoming HTTP requests"],"limitations":["Community-maintained node not officially supported by n8n or JSONPost","Requires manual setup of JSONPost API credentials and Endpoint ID","Users must test thoroughly in their environment before production use"],"relatedNodes":["n8n-nodes-jsonpost.jsonPost","n8n-nodes-http.request","n8n-nodes-set","n8n-nodes-email.sendEmail"]}


node_type: n8n-nodes-htmlcsstopdf.htmlcsstopdf
package_name: n8n-nodes-htmlcsstopdf
display_name: HTML to PDF
description: Convert HTML to PDF, Parse PDF, Extract Data, and Manage PDF Security
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: htmlcsstoimage
author_github_url: https://github.com/PdfMunk/n8n-nodes-htmltopdf.git
npm_package_name: n8n-nodes-htmlcsstopdf
npm_version: 3.2.3
community_fetched_at: 2026-07-14T14:40:33.297Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "pdfCreation",
      "options": [
        {
          "name": "PDF Creation",
          "value": "pdfCreation",
          "description": "Create PDF documents from various sources"
        },
        {
          "name": "PDF Manipulation",
          "value": "pdfManipulation",
          "description": "Merge, split, or compress PDF documents"
        },
        {
          "name": "PDF Security",
          "value": "pdfSecurity",
          "description": "Lock and unlock password-protected PDFs"
        },
        {
          "name": "PDF Extraction & Parsing",
          "value": "pdfParsing",
          "description": "Parse PDFs into structured JSON data"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "htmlToPdf",
      "options": [
        {
          "name": "HTML to PDF",
          "value": "htmlToPdf",
          "action": "Convert HTML to PDF",
          "description": "Generate PDF from HTML/CSS"
        },
        {
          "name": "URL to PDF",
          "value": "urlToPdf",
          "action": "Capture a screenshot of a website in PDF format",
          "description": "Capture Website Screenshot to PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfCreation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "mergePdfs",
      "options": [
        {
          "name": "Compress PDF",
          "value": "compressPdf",
          "action": "Compress PDF",
          "description": "Compress a PDF to reduce file size"
        },
        {
          "name": "Convert Image to PDF",
          "value": "convertImageToPdf",
          "action": "Convert image to PDF",
          "description": "Convert one or more images into a PDF"
        },
        {
          "name": "Convert PDF to Image",
          "value": "convertPdfToImage",
          "action": "Convert PDF to image",
          "description": "Convert PDF pages into image files"
        },
        {
          "name": "Merge PDFs",
          "value": "mergePdfs",
          "action": "Merge multiple PDFS into one",
          "description": "Merge multiple PDF files into one"
        },
        {
          "name": "Split PDF",
          "value": "splitPdf",
          "action": "Split PDF",
          "description": "Split or extract pages from a PDF"
        },
        {
          "name": "Watermark PDF",
          "value": "watermarkPdf",
          "action": "Watermark PDF",
          "description": "Add a text watermark to a PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfManipulation"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "lockPdf",
      "options": [
        {
          "name": "Lock PDF",
          "value": "lockPdf",
          "action": "Lock PDF with password",
          "description": "Add password protection to a PDF"
        },
        {
          "name": "Unlock PDF",
          "value": "unlockPdf",
          "action": "Unlock password protected PDF",
          "description": "Remove password protection from a PDF"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfSecurity"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "parsePdf",
      "options": [
        {
          "name": "Parse PDF",
          "value": "parsePdf",
          "action": "Parse PDF to JSON",
          "description": "Extract structured data from text-based PDF"
        },
        {
          "name": "Parse PDF with OCR",
          "value": "parsePdfOcr",
          "action": "Parse PDF with OCR",
          "description": "Extract text using ocr from scanned pdf pages"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pdfParsing"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "HTML to PDF",
      "value": "htmlToPdf",
      "action": "Convert HTML to PDF",
      "description": "Generate PDF from HTML/CSS",
      "resource": "pdfCreation"
    },
    {
      "name": "URL to PDF",
      "value": "urlToPdf",
      "action": "Capture a screenshot of a website in PDF format",
      "description": "Capture Website Screenshot to PDF",
      "resource": "pdfCreation"
    },
    {
      "name": "Compress PDF",
      "value": "compressPdf",
      "action": "Compress PDF",
      "description": "Compress a PDF to reduce file size",
      "resource": "pdfManipulation"
    },
    {
      "name": "Convert Image to PDF",
      "value": "convertImageToPdf",
      "action": "Convert image to PDF",
      "description": "Convert one or more images into a PDF",
      "resource": "pdfManipulation"
    },
    {
      "name": "Convert PDF to Image",
      "value": "convertPdfToImage",
      "action": "Convert PDF to image",
      "description": "Convert PDF pages into image files",
      "resource": "pdfManipulation"
    },
    {
      "name": "Merge PDFs",
      "value": "mergePdfs",
      "action": "Merge multiple PDFS into one",
      "description": "Merge multiple PDF files into one",
      "resource": "pdfManipulation"
    },
    {
      "name": "Split PDF",
      "value": "splitPdf",
      "action": "Split PDF",
      "description": "Split or extract pages from a PDF",
      "resource": "pdfManipulation"
    },
    {
      "name": "Watermark PDF",
      "value": "watermarkPdf",
      "action": "Watermark PDF",
      "description": "Add a text watermark to a PDF",
      "resource": "pdfManipulation"
    },
    {
      "name": "Lock PDF",
      "value": "lockPdf",
      "action": "Lock PDF with password",
      "description": "Add password protection to a PDF",
      "resource": "pdfSecurity"
    },
    {
      "name": "Unlock PDF",
      "value": "unlockPdf",
      "action": "Unlock password protected PDF",
      "description": "Remove password protection from a PDF",
      "resource": "pdfSecurity"
    },
    {
      "name": "Parse PDF",
      "value": "parsePdf",
      "action": "Parse PDF to JSON",
      "description": "Extract structured data from text-based PDF",
      "resource": "pdfParsing"
    },
    {
      "name": "Parse PDF with OCR",
      "value": "parsePdfOcr",
      "action": "Parse PDF with OCR",
      "description": "Extract text using ocr from scanned pdf pages",
      "resource": "pdfParsing"
    }
  ]

npm_readme:
  # n8n-nodes-htmlcsstopdf

  [![PDFMunk Banner](images/pdfmunkbanner.png)](https://pdfmunk.com/)

  **Get your api key from** [https://pdfmunk.com](https://pdfmunk.com)

  **For PDF Split/Merge and other powerful PDF features**, try our new product [PDFAPIHub](https://pdfapihub.com)

  An n8n community node for creating PDFs from HTML/CSS or URLs, manipulating PDFs (merge/split/compress), securing PDFs (lock/unlock), and parsing PDFs to structured JSON — powered by the PDFMunk API.

  ## Features

  - **PDF Creation**
    - **HTML to PDF**: Render HTML + optional CSS into a PDF
    - **URL to PDF**: Capture a website as a PDF (full-page support)
    - **Dynamic Params**: Template placeholder replacement for HTML generation
    - **Viewport Control**: Configure viewport width/height
    - **Flexible Output**: Return a direct URL or a binary PDF file
    - **Output Filename**: Set the resulting PDF filename
    - **Configurable Timeout**: Increase timeouts for large/slow renders
  - **PDF Manipulation**
    - **Merge PDFs**: Merge 2–15 PDFs from URLs or multiple binary PDF inputs
    - **Split PDF**: Extract specific pages, split each page, or split into chunks
    - **Compress PDF**: Reduce file size with selectable compression levels
    - **Watermark PDF**: Add text watermark with angle/opacity/font controls
    - **Convert PDF to Image**: Convert selected pages to PNG/JPG/JPEG/WEBP
    - **Convert Image to PDF**: Merge one or multiple images into a PDF
  - **PDF Security**
    - **Lock PDF**: Add password protection (optionally provide input password for already-encrypted PDFs), via URL or file input
    - **Unlock PDF**: Remove password protection, via URL or file input
  - **PDF Extraction & Parsing**
    - **Parse PDF to JSON**: Extract text/layout/tables/full extraction with page selection, via URL or file input
    - **Parse PDF with OCR**: OCR parse scanned PDFs with language/PSM/OEM settings

  ## Installation

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

  ### Community Nodes (Recommended)

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

  ### Manual Installation

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

  # Install the package
  npm install n8n-nodes-htmlcsstopdf
  ```

  ### Docker

  Add the package to your n8n Docker container:

  ```dockerfile
  FROM n8nio/n8n:latest
  USER root
  RUN npm install -g n8n-nodes-htmlcsstopdf
  USER node
  ```

  ## Getting Your PDFMunk API Key

  1. **Sign Up**: Visit [PDFMunk.com](https://pdfmunk.com) and create an account
  2. **Verify Email**: Check your email and verify your account
  3. **Access Dashboard**: Log in to your PDFMunk dashboard
  4. **Generate API Key**: 
     - Navigate to the "API Keys" section
     - Click "Generate New API Key"
     - Copy your API key securely
  5. **Choose Plan**: Select a plan based on your usage needs (see PDFMunk pricing for current limits).

  ## Configuration

  ### Setting Up Credentials

  1. In n8n, go to **Credentials**
  2. Click **+ Add Credential**
  3. Search for "HtmlCssToPdf API"
  4. Enter your PDFMunk API key
  5. Test the connection
  6. Save the credential

  ## Operations

  The node exposes operations grouped by **Resource**.

  ### PDF Creation

  #### HTML to PDF
  Generate a PDF from custom HTML and optional CSS.

  **Parameters:**
  - **HTML Content** (`html_content`)
  - **CSS Content** (`css_content`, optional)
  - **Dynamic Params** (`dynamic_params`, optional key/value pairs for templating)
  - **Viewport Width/Height** (`viewPortWidth`, `viewPortHeight`)
  - **Output Format** (`output_format`: `url` or `file`)
  - **Output Filename** (`output_filename`, without `.pdf`)
  - **Timeout (in Seconds)** (`timeout`, default: 300)

  #### URL to PDF
  Generate a PDF from a website URL.

  **Parameters:**
  - **URL** (`url`)
  - **Full Page** (`full_page`, default: `true`)
  - **Wait Till** (`wait_till`, milliseconds to wait before capture)
  - **Viewport Width/Height** (`viewPortWidth`, `viewPortHeight`)
  - **Output Format** (`output_format`: `url` or `file`)
  - **Output Filename** (`output_filename`, without `.pdf`)
  - **Timeout (in Seconds)** (`timeout`, default: 300)

  ### PDF Manipulation

  #### Merge PDFs
  Merge multiple PDFs into one document.

  **Parameters:**
  - **Input Type** (`merge_input_type`: `url` or `file`)
  - **PDF URLs** (`pdf_urls`, comma-separated; minimum 2, maximum 15; URL mode)
  - **File Binary Property Name (CSV)** (`merge_file_binary_properties`, file mode)
  - **Output Type** (`merge_output`: `url`, `file`, or `base64`)

  #### Split PDF
  Split or extract pages from a PDF.

  **Parameters:**
  - **Input Type** (`split_input_type`: `url` or `file`)
  - **PDF URL** (`split_url`, URL mode)
  - **File Binary Property** (`split_file_binary_property`, file mode)
  - **Split Mode** (`split_mode`)
    - `pages`: extract a page range/list via **Page Range** (`pages`)
    - `each`: split each page into its own PDF
    - `chunks`: split into **Number of Chunks** (`chunks`)
  - **Output Type** (`split_output`: `url`, `file`, or `base64`)

  #### Compress PDF
  Compress a PDF to reduce file size.

  **Parameters:**
  - **Input Type** (`compress_input_type`: `url` or `file`)
  - **PDF URL** (`compress_url`, max 10MB, URL mode)
  - **File Binary Property** (`compress_file_binary_property`, file mode)
  - **Compression Level** (`compression`: `low`, `medium`, `high`, `max`)
  - **Output Type** (`compress_output`: `url`, `file`, or `base64`)
  - **Output Filename** (`compress_output_name`, e.g. `compressed.pdf`)

  #### Watermark PDF
  Add text watermark to a PDF.

  **Parameters:**
  - **Input Type** (`watermark_input_type`: `url` or `file`)
  - **PDF URL** (`watermark_file_url`, URL mode)
  - **File Binary Property** (`watermark_file_binary_property`, file mode)
  - **Output Format** (`watermark_output_format`: `file`, `url`, `base64`, or `both`)
  - **Watermark Text** (`watermark_text`)
  - **Opacity** (`watermark_opacity`)
  - **Angle** (`watermark_angle`)
  - **Font Size** (`watermark_font_size`, optional)

  #### Convert PDF to Image
  Convert one or more PDF pages to images.

  **Parameters:**
  - **Input Type** (`convert_pdf_image_input_type`: `url` or `file`)
  - **PDF URL** (`convert_pdf_image_url`, URL mode)
  - **File Binary Property** (`convert_pdf_image_file_binary_property`, file mode)
  - **Page** (`convert_pdf_image_page`, used when `Pages` is empty)
  - **Pages** (`convert_pdf_image_pages`, e.g. `1-3` or `1,3,5`)
  - **Image Format** (`convert_pdf_image_format`: `png`, `jpg`, `jpeg`, `webp`)
  - **DPI** (`convert_pdf_image_dpi`)
  - **Quality** (`convert_pdf_image_quality`)
  - **Output Type** (`convert_pdf_image_output`: `url`, `base64`, `both`, or `file`)

  #### Convert Image to PDF
  Convert one or multiple image URLs into a PDF.

  **Parameters:**
  - **Image URLs** (`convert_image_pdf_urls`, comma-separated)
  - **Output Type** (`convert_image_pdf_output`: `url`, `base64`, `both`, or `file`)
  - **Output Filename** (`convert_image_pdf_filename`)

  ### PDF Security

  #### Lock PDF
  Add password protection to a PDF.

  **Parameters:**
  - **Input Type** (`lock_input_type`: `url` or `file`)
  - **PDF URL** (`lock_url`, max 10MB, URL mode)
  - **File Binary Property** (`lock_file_binary_property`, file mode)
  - **Password** (`lock_password`)
  - **Input Password** (`lock_input_password`, optional)
  - **Output Type** (`lock_output`: `url`, `file`, or `base64`)
  - **Output Filename** (`lock_output_name`, e.g. `locked.pdf`)

  #### Unlock PDF
  Remove password protection from a PDF.

  **Parameters:**
  - **Input Type** (`unlock_input_type`: `url` or `file`)
  - **PDF URL** (`unlock_url`, max 10MB, URL mode)
  - **File Binary Property** (`unlock_file_binary_property`, file mode)
  - **Password** (`unlock_password`)
  - **Output Type** (`unlock_output`: `url`, `file`, or `base64`)
  - **Output Filename** (`unlock_output_name`, e.g. `unlocked.pdf`)

  ### PDF Extraction & Parsing

  #### Parse PDF
  Parse a PDF into structured JSON.

  **Parameters:**
  - **Input Type** (`parse_input_type`: `url` or `file`)
  - **PDF URL** (`parse_url`, URL mode)
  - **File Binary Property** (`parse_file_binary_property`, file mode)
  - **Parse Mode** (`parse_mode`: `text`, `layout`, `tables`, `full`)
  - **Pages** (`parse_pages`: `all` or ranges like `1-3`)

  #### Parse PDF with OCR
  Parse scanned PDFs using OCR.

  **Parameters:**
  - **Input Type** (`parse_input_type`: `url` or `file`)
  - **PDF URL** (`parse_url`, URL mode)
  - **File Binary Property** (`parse_file_binary_property`, file mode)
  - **Language** (`lang`, e.g. `eng` or `eng+hin`)
  - **Pages** (`parse_pages`: `all` or ranges like `1-3`)
  - **DPI** (`dpi`)
  - **PSM** (`psm`)
  - **OEM** (`oem`)

  ## Usage

  ### Basic HTML to PDF Conversion

  ```json
  {
    "operation": "htmlToPdf",
    "html_content": "<h1>Hello World</h1><p>This is a test document.</p>",
    "css_content": "h1 { color: blue; } p { font-size: 14px; }",
    "viewPortWidth": 1080,
    "viewPortHeight": 720,
    "output_format": "file",
    "output_filename": "hello-world",
    "timeout": 300
  }
  ```

  ### Advanced Usage Examples

  #### 1. Invoice Generation
  ```html
  <!DOCTYPE html>
  <html>
  <head>
      <style>
          .invoice { font-family: Arial, sans-serif; }
          .header { background-color: #f0f0f0; padding: 20px; }
          .total { font-weight: bold; font-size: 18px; }
      </style>
  </head>
  <body>
      <div class="invoice">
          <div class="header">
              <h1>Invoice #12345</h1>
          </div>
          <div class="total">Total: $299.99</div>
      </div>
  </body>
  </html>
  ```

  #### 2. Report Generation
  ```html
  <div class="report">
      <h1>Monthly Report</h1>
      <table border="1">
          <tr><th>Metric</th><th>Value</th></tr>
          <tr><td>Sales</td><td>$50,000</td></tr>
          <tr><td>Growth</td><td>15%</td></tr>
      </table>
  </div>
  ```

  #### 3. Certificate Generation
  ```html
  <div class="certificate">
      <h1>Certificate of Completion</h1>
      <p>This certifies that <strong>John Doe</strong> has completed the course.</p>
      <div class="signature">Authorized Signature</div>
  </div>
  ```

  ### PDF Manipulation Examples

  #### Merge PDFs
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "mergePdfs",
    "merge_input_type": "url",
    "pdf_urls": "https://example.com/a.pdf, https://example.com/b.pdf",
    "merge_output": "url"
  }
  ```

  #### Merge PDFs (File input)
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "mergePdfs",
    "merge_input_type": "file",
    "merge_file_binary_properties": "data1,data2",
    "merge_output": "file"
  }
  ```

  #### Split PDF (extract pages)
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "splitPdf",
    "split_input_type": "url",
    "split_url": "https://example.com/document.pdf",
    "split_mode": "pages",
    "pages": "1-3",
    "split_output": "url"
  }
  ```

  #### Compress PDF
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "compressPdf",
    "compress_input_type": "url",
    "compress_url": "https://example.com/document.pdf",
    "compression": "high",
    "compress_output": "file",
    "compress_output_name": "compressed.pdf"
  }
  ```

  #### Watermark PDF
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "watermarkPdf",
    "watermark_input_type": "url",
    "watermark_file_url": "https://example.com/document.pdf",
    "watermark_output_format": "file",
    "watermark_text": "CONFIDENTIAL",
    "watermark_opacity": 0.15,
    "watermark_angle": 30
  }
  ```

  #### Convert PDF to Image
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "convertPdfToImage",
    "convert_pdf_image_input_type": "url",
    "convert_pdf_image_url": "https://example.com/document.pdf",
    "convert_pdf_image_pages": "1-3",
    "convert_pdf_image_format": "png",
    "convert_pdf_image_output": "url"
  }
  ```

  #### Convert Image to PDF
  ```json
  {
    "resource": "pdfManipulation",
    "operation": "convertImageToPdf",
    "convert_image_pdf_urls": "https://example.com/a.png, https://example.com/b.jpg",
    "convert_image_pdf_output": "file",
    "convert_image_pdf_filename": "combined-images.pdf"
  }
  ```

  ### PDF Security Examples

  #### Lock PDF
  ```json
  {
    "resource": "pdfSecurity",
    "operation": "lockPdf",
    "lock_input_type": "url",
    "lock_url": "https://example.com/document.pdf",
    "lock_password": "your-password",
    "lock_output": "file",
    "lock_output_name": "locked.pdf"
  }
  ```

  #### Unlock PDF
  ```json
  {
    "resource": "pdfSecurity",
    "operation": "unlockPdf",
    "unlock_input_type": "url",
    "unlock_url": "https://example.com/locked.pdf",
    "unlock_password": "your-password",
    "unlock_output": "file",
    "unlock_output_name": "unlocked.pdf"
  }
  ```

  ### PDF Parsing Example

  #### Parse PDF to JSON
  ```json
  {
    "resource": "pdfParsing",
    "operation": "parsePdf",
    "parse_input_type": "url",
    "parse_url": "https://example.com/document.pdf",
    "parse_mode": "full",
    "parse_pages": "all"
  }
  ```

  #### Parse PDF with OCR
  ```json
  {
    "resource": "pdfParsing",
    "operation": "parsePdfOcr",
    "parse_input_type": "url",
    "parse_url": "https://example.com/scanned.pdf",
    "lang": "eng",
    "parse_pages": "all",
    "dpi": 200,
    "psm": 3,
    "oem": 3
  }
  ```

  ## Use Cases

  ### Business Applications
  - **Invoice Generation**: Automatically generate invoices from order data
  - **Report Creation**: Convert analytics data into professional PDF reports
  - **Contract Generation**: Create contracts from templates with dynamic data
  - **Certificate Issuance**: Generate certificates for course completions
  - **Receipt Creation**: Convert transaction data into PDF receipts

  ### Content Management
  - **Document Archival**: Convert web pages to PDF for archival purposes
  - **Newsletter PDFs**: Transform HTML newsletters into PDF format
  - **eBook Creation**: Generate PDF books from HTML content
  - **Documentation**: Convert online docs to downloadable PDFs

  ### Marketing & Sales
  - **Proposal Generation**: Create branded proposals from CRM data
  - **Brochure Creation**: Generate marketing materials dynamically
  - **Price Lists**: Convert product catalogs to PDF format
  - **Quotation PDFs**: Transform quotes into professional PDFs

  ## Workflow Examples

  ### Example 1: E-commerce Invoice
  ```json
  {
    "nodes": [
      {
        "name": "Order Webhook",
        "type": "n8n-nodes-base.webhook"
      },
      {
        "name": "Generate Invoice HTML",
        "type": "n8n-nodes-base.function"
      },
      {
        "name": "Convert to PDF",
        "type": "n8n-nodes-htmlcsstopdf.htmlcsstopdf"
      },
      {
        "name": "Email PDF",
        "type": "n8n-nodes-base.emailSend"
      }
    ]
  }
  ```

  ### Example 2: Scheduled Reports
  ```json
  {
    "nodes": [
      {
        "name": "Schedule Trigger",
        "type": "n8n-nodes-base.cron"
      },
      {
        "name": "Fetch Analytics Data",
        "type": "n8n-nodes-base.httpRequest"
      },
      {
        "name": "Build Report HTML",
        "type": "n8n-nodes-base.function"
      },
      {
        "name": "Generate PDF Report",
        "type": "n8n-nodes-htmlcsstopdf.htmlcsstopdf"
      },
      {
        "name": "Save to Google Drive",
        "type": "n8n-nodes-base.googleDrive"
      }
    ]
  }
  ```

  ## Output

  The node returns:
  - **URL output**: A direct link (or URL(s), depending on operation)
  - **File output**: Binary PDF file data in n8n (usable by "Write Binary File", email attachments, etc.)
  - **Base64 output** (where available): Base64-encoded result in the JSON response

  ## Error Handling

  The node provides detailed error messages for common issues:

  - **Invalid API Key**: Check your PDFMunk credentials
  - **HTML Parse Error**: Validate your HTML syntax
  - **CSS Error**: Check your CSS for syntax errors
  - **Rate Limit**: Upgrade your PDFMunk plan or wait for reset
  - **Network Error**: Check your internet connection
  - **Timeout Error**: Increase the timeout setting for large PDFs (default: 300 seconds)

  ## FAQ

  **Q: Is there a free tier?**  
  A: PDFMunk may offer trial/free usage depending on current plans. Check the PDFMunk dashboard/pricing for the latest limits.

  **Q: What HTML features are supported?**  
  A: Most modern HTML5 and CSS3 features are supported, including flexbox, grid, and media queries.

  **Q: Can I use external images?**  
  A: Yes, images accessible via URL will be included in the PDF.

  **Q: What's the maximum file size?**  
  A: Some operations in this node expect PDFs up to 10MB (as indicated in the node parameters). Check PDFMunk documentation for current limits and plan-specific constraints.

  **Q: How do I generate large PDFs (100+ pages)?**  
  A: Increase the timeout setting in the node configuration. For large PDFs, set timeout to 600-900 seconds (10-15 minutes).

  **Q: What should I do if I get a gateway timeout error?**  
  A: Increase the timeout parameter in the node settings. The default is 300 seconds (5 minutes), but large PDFs may need 600-900 seconds.

  ## Compatibility

  - **n8n version**: 0.187.0+
  - **Node.js**: 18.0.0+
  - **Supported formats**: HTML, CSS, PDF

  ## Resources

  ### PDF Creation

  - [PDFMunk](https://pdfmunk.com/)
  - [PDFMunk API Documentation](https://pdfmunk.com/api-docs)
  - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [n8n workflow examples](https://n8n.io/workflows)

  ## Support

  For questions or support, please contact us at: **support@pdfmunk.com**

  You can also join the [n8n community forum](https://community.n8n.io/) for general n8n-related discussions.

  ## Contributing

  Contributions are welcome! Please read our contributing guidelines and submit pull requests for any improvements.

  ## License

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

  ## Changelog

  ### v2.1.1
  - Added configurable timeout parameter for large PDF generation
  - Improved error handling for gateway timeouts
  - Updated documentation with timeout troubleshooting

  ### v2.0.2
  - Improved error handling
  - Performance optimizations

  ### v2.0.1
  - Bug fixes and stability improvements

  ### v2.0.0
  - Complete rewrite with new PDFMunk API
  - Enhanced CSS support
  - Better error messages

  ---

  Built with ❤️ for the n8n community

ai_documentation_summary:
  {"purpose":"Converts HTML/CSS or URLs to PDF, manipulates existing PDFs (merge, split, compress, watermark), secures PDFs with passwords, and extracts structured data from PDFs.","capabilities":["HTML to PDF generation with custom CSS","URL to PDF capture with full-page support","Template parameter replacement in HTML","Viewport width and height configuration","PDF merging (2-15 files)","PDF splitting (page range, per-page, or chunks)","PDF compression with adjustable levels","Watermark addition with angle/opacity/font controls","PDF to image conversion (PNG/JPG/WEBP)","Image to PDF conversion"],"authentication":"API key required (via n8n Credentials node)","commonUseCases":["Generating PDF reports from HTML templates","Archiving websites as PDFs","Combining multiple PDF documents","Protecting sensitive PDF documents","Extracting text data from PDFs for analysis"],"limitations":["Requires external PDFMunk API subscription and API key","Merge operation limited to 2-15 PDFs","Compress operation limited to 10MB files in URL mode","Node is a community node and may not be maintained by n8n core team"],"relatedNodes":["Webhook","Binary File","HTTP Request","JSON","Code"]}


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

updated_at: 2026-07-14 14:40:33
author_name: peliqan-dev
author_github_url: https://github.com/Peliqan-io/
npm_package_name: n8n-nodes-peliqan
npm_version: 0.0.6
community_fetched_at: 2026-07-14T14:40:33.298Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "table",
      "options": [
        {
          "name": "Endpoint",
          "value": "endpoint"
        },
        {
          "name": "Pipeline",
          "value": "pipeline"
        },
        {
          "name": "Query",
          "value": "query"
        },
        {
          "name": "Script",
          "value": "script"
        },
        {
          "name": "Table",
          "value": "table"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "exec",
      "options": [
        {
          "name": "Execute",
          "value": "exec",
          "action": "Execute endpoint",
          "description": "Execute selected endpoint"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "endpoint"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "run",
      "options": [
        {
          "name": "Run",
          "value": "run",
          "action": "Run a pipeline",
          "description": "Start pipeline sync on server"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "pipeline"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create SQL Query",
          "value": "create",
          "action": "Create sql view",
          "description": "Create sql view in Peliqan"
        },
        {
          "name": "Execute SQL Query",
          "value": "exec",
          "action": "Execute sql query",
          "description": "Create sql view in Peliqan"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "query"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "run",
      "options": [
        {
          "name": "Run",
          "value": "run",
          "action": "Run script",
          "description": "Run a script"
        },
        {
          "name": "Logs",
          "value": "logs",
          "action": "Return logs of script",
          "description": "Return logs of script"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "script"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "get",
      "options": [
        {
          "name": "Get",
          "value": "get",
          "action": "Get records",
          "description": "Get data from a Peliqan table"
        },
        {
          "name": "List",
          "value": "list",
          "action": "List tables",
          "description": "List all available tables"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "table"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Execute",
      "value": "exec",
      "action": "Execute endpoint",
      "description": "Execute selected endpoint",
      "resource": "endpoint"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run a pipeline",
      "description": "Start pipeline sync on server",
      "resource": "pipeline"
    },
    {
      "name": "Create SQL Query",
      "value": "create",
      "action": "Create sql view",
      "description": "Create sql view in Peliqan",
      "resource": "query"
    },
    {
      "name": "Execute SQL Query",
      "value": "exec",
      "action": "Execute sql query",
      "description": "Create sql view in Peliqan",
      "resource": "query"
    },
    {
      "name": "Run",
      "value": "run",
      "action": "Run script",
      "description": "Run a script",
      "resource": "script"
    },
    {
      "name": "Logs",
      "value": "logs",
      "action": "Return logs of script",
      "description": "Return logs of script",
      "resource": "script"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get records",
      "description": "Get data from a Peliqan table",
      "resource": "table"
    },
    {
      "name": "List",
      "value": "list",
      "action": "List tables",
      "description": "List all available tables",
      "resource": "table"
    }
  ]

npm_readme:
  # n8n-nodes-peliqan

  This is an **n8n community node** that lets you use [Peliqan](https://peliqan.io) in your [n8n](https://n8n.io) workflows.  

  Peliqan.io is an all-in-one data platform with **ELT**, a **built-in data warehouse**, **data transformations**, and a **data cockpit**.  

  ## Table of contents

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


  ## Installation

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


  ## Operations

  The node currently supports:

  - **List tables** – Retrieve available tables  
  - **Get data from table** – Query records from a Peliqan table  
  - **Run pipeline** – Trigger an existing pipeline  
  - **Execute endpoint** – Call an API endpoint defined in Peliqan  
  - **Create SQL query** – Create a new SQL query in Peliqan  
  - **Execute SQL query** – Run a query against Peliqan’s data warehouse  
  - **Run script** – Execute a script stored in Peliqan  
  - **Get script logs** – Retrieve execution logs of a script  

  ## Credentials

  1. Log in to [Peliqan.io](https://peliqan.io).  
  2. Go to **Settings → API Token**.  
  3. Copy your API Token.  
  4. In n8n, go to **Credentials → New → Peliqan API** and paste your Token.  

  🔑 More details here: [Configure credentials in n8n](https://help.peliqan.io/build-ai-agents-with-n8n-and-peliqan#2401aa9b38798047ad22e353042f5d74).  


  ## Usage

  - Visit the [Peliqan Documentation](https://help.peliqan.io) for guides and tutorials:
      - To set up **AI Agents in n8n** with RAG and SQL: [step-by-step guide](https://help.peliqan.io/build-ai-agents-with-n8n-and-peliqan).  

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)  
  - [Peliqan.io](https://peliqan.io)  
  - [Peliqan Documentation](https://help.peliqan.io)  


  ## Version history

  - **May 2025** – `v0.0.1` initial implementation  
  - **June 2025** – `v0.0.3` add table list operation  
  - **June 2025** – `v0.0.4` enable tool usage of node  
  - **September 2025** – `v0.0.5` UX fixes and code overhaul
  - **October 2025** – `v0.0.6` replace deprecated functions

ai_documentation_summary:
  {"purpose":"This n8n community node enables integration with Peliqan.io, an all-in-one data platform, allowing users to query data, execute pipelines, and manage scripts within n8n workflows.","capabilities":["List available tables in Peliqan","Query records from specific tables","Trigger existing data pipelines","Call custom API endpoints","Create new SQL queries","Execute SQL queries against the data warehouse","Run stored scripts","Retrieve script execution logs"],"authentication":"API Token required (obtained from Peliqan.io Settings → API Token)","commonUseCases":["Building AI agents with RAG and SQL capabilities","Automating data extraction and transformation workflows","Connecting n8n to Peliqan's built-in data warehouse","Executing scheduled data pipelines via n8n"],"limitations":["Community node (may have fewer updates than official nodes)","Initial implementation status (v0.0.6) suggests potential for future feature additions"],"relatedNodes":["n8n-nodes-base.httpRequest","n8n-nodes-base.code","n8n-nodes-base.sql"]}


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

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

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

npm_readme:
  # n8n-nodes-verifi-email

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

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

  ## Features

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

  ## Installation

  ### Install via n8n Community Nodes

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

  ### Manual Installation

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

  ## Setup

  ### 1. Get Your API Key

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

  ### 2. Configure Credentials

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

  ## Usage

  ### Basic Email Validation

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

  ### Example Workflow

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

  ### Bulk Validation

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

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

  ## Node Operations

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

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

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

  ## API Documentation

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

  ## Use Cases

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

  ## Example Workflows

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

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

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

  ## Error Handling

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

  ## Rate Limits

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

  ## Support

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

  ## Contributing

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

  ### Development Setup

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

  ### Testing

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

  ## Changelog

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

  ## License

  [MIT](LICENSE.md)

  ---

  **Secure • Private • Accurate**

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

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


node_type: @postnitro/n8n-nodes-postnitro-ai.postNitro
package_name: @postnitro/n8n-nodes-postnitro-ai
display_name: PostNitro
description: Interact with PostNitro Embed API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: postnitro
author_github_url: https://github.com/postnitro/n8n-nodes-postnitro-ai.git
npm_package_name: @postnitro/n8n-nodes-postnitro-ai
npm_version: 0.1.2
community_fetched_at: 2026-07-14T14:40:33.300Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "embedPost",
      "options": [
        {
          "name": "Embed Post",
          "value": "embedPost"
        }
      ],
      "displayName": "Resource"
    },
    {
      "name": "operation",
      "type": "options",
      "default": "aiFromText",
      "options": [
        {
          "name": "Generate Carousel from Text (AI)",
          "value": "aiFromText",
          "action": "Generate carousel using AI from plain text"
        },
        {
          "name": "Generate Carousel from an Article URL (AI)",
          "value": "aiFromArticle",
          "action": "Generate carousel using AI from an Article URL"
        },
        {
          "name": "Generate Carousel from an X (Twitter) Post (AI)",
          "value": "aiFromXPost",
          "action": "Generate carousel using AI from an X (Twitter) post URL"
        },
        {
          "name": "Import Carousel Slides",
          "value": "importSlides",
          "action": "Create carousel by Importing a predefined set of slides content"
        }
      ],
      "displayName": "Operation",
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Generate Carousel from Text (AI)",
      "value": "aiFromText",
      "action": "Generate carousel using AI from plain text"
    },
    {
      "name": "Generate Carousel from an Article URL (AI)",
      "value": "aiFromArticle",
      "action": "Generate carousel using AI from an Article URL"
    },
    {
      "name": "Generate Carousel from an X (Twitter) Post (AI)",
      "value": "aiFromXPost",
      "action": "Generate carousel using AI from an X (Twitter) post URL"
    },
    {
      "name": "Import Carousel Slides",
      "value": "importSlides",
      "action": "Create carousel by Importing a predefined set of slides content"
    }
  ]

npm_readme:
  # n8n-nodes-postnitro-ai

  This is an n8n community node. It lets you use [PostNitro](https://postnitro.ai) in your n8n workflows.

  PostNitro.ai is a platform for creating and publishing social media carousels and visuals.

  The PostNitro Embed API is an embed-friendly API to generate carousel posts, images, and PDFs using AI or imported slide content to create carousels.


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

  ## Installation

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

  ## Operations

  The PostNitro node supports:
  - Generate Carousel from Text (AI)
  - Generate Carousel from Article URL (AI)
  - Generate Carousel from X (Twitter) Post (AI)
  - Import Carousel Slides

  Optional behaviors:
  - Wait for completion: Poll the post status until it completes or fails
  - On complete: Return status only, or fetch the generated output
  - Download output as binary: Attach the generated file(s) to the workflow item

  ## Credentials

  This node requires API credentials for the PostNitro Embed API.

  Prerequisites:
  - A PostNitro account and API key

  Setup in n8n:
  - Create credentials of type `PostNitro Embed API`
  - Fields:
    - API Base URL: Base URL of the PostNitro Embed API (for example, `https://embed-api.postnitro.ai`)
    - API Key: Your API key (sent as `embed-api-key` header)

  ## Compatibility

  - Minimum n8n version: 1.0+
  - Tested with `n8n-workflow` ^1.40.0 and TypeScript ^5.4.0

  ## Usage

  Basic flow:
  1. Choose an operation (AI generation from Text/Article/X, or Import Slides)
  2. Provide required fields such as `templateId`, `brandId`, and (for AI flows) `presetId`
  3. Optionally enable "Wait for Completion" to poll status and then fetch output
  4. If you choose to fetch output, you can return just the JSON or download the file(s) as binary

  Output formats:
  - PDF: Single file
  - PNG: Multiple images (array). If "Download Output as Binary" is enabled, multiple binary properties will be attached (e.g., `data1`, `data2`, ...)

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [PostNitro Embed API documentation](https://postnitro.ai/docs/embed/api)

  ## Version history

  - 0.1.0: Initial release with AI generation (Text/Article/X), Import Slides, status polling, and binary download options.
  - 0.1.1: postType drop down set to CAROUSEL type only
  - 0.1.2: implemented fixes suggested in node review

ai_documentation_summary:
  {"purpose":"This n8n community node enables interaction with the PostNitro Embed API to generate social media carousels, images, and PDFs using AI or imported slide content.","capabilities":["Generate carousel from text using AI","Generate carousel from article URL using AI","Generate carousel from X (Twitter) post using AI","Import existing carousel slides","Poll post status until completion","Fetch generated output as JSON or binary files","Download output as PDF or PNG images"],"authentication":"API key required (sent as embed-api-key header)","commonUseCases":["Automated social media content creation","Generating carousel posts from blog articles","Creating visual content from text prompts","Batch processing slide decks into carousels"],"limitations":["Limited to carousel post type only","Requires separate PostNitro account and API key setup","Minimum n8n version 1.0+"],"relatedNodes":["HTTP Request","Binary File","JSON"]}


node_type: n8n-nodes-olostep.olostepScrape
package_name: n8n-nodes-olostep
display_name: Olostep Web Scraper
description: Search, extract, and structure web data using Olostep's Web search, scraping, and crawling API
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: olostep
author_github_url: https://github.com/olostep/
npm_package_name: n8n-nodes-olostep
npm_version: 0.2.7
community_fetched_at: 2026-07-14T14:40:33.301Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "scrape",
      "options": [
        {
          "name": "Answer",
          "value": "answer"
        },
        {
          "name": "Batch",
          "value": "batch"
        },
        {
          "name": "Crawl",
          "value": "crawl"
        },
        {
          "name": "Map",
          "value": "map"
        },
        {
          "name": "Scrape",
          "value": "scrape"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Scrape Website",
          "value": "create",
          "action": "Scrape a URL",
          "description": "Extract content from a single URL"
        },
        {
          "name": "Search",
          "value": "search",
          "action": "Search",
          "description": "Search the Web and get structured results"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scrape"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Batch Scrape URLs",
          "value": "create",
          "action": "Batch scrape urls",
          "description": "Scrape up to 10k URLs at the same time"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "batch"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Crawl",
          "value": "create",
          "action": "Create a crawl",
          "description": "Get the content of subpages of a URL"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "crawl"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Map",
          "value": "create",
          "action": "Create a map",
          "description": "Get all URLs on a website"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "map"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create Answer",
          "value": "create",
          "action": "Create answer",
          "description": "Search the web and return AI-powered answers with sources"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "answer"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Scrape Website",
      "value": "create",
      "action": "Scrape a URL",
      "description": "Extract content from a single URL",
      "resource": "scrape"
    },
    {
      "name": "Search",
      "value": "search",
      "action": "Search",
      "description": "Search the Web and get structured results",
      "resource": "scrape"
    },
    {
      "name": "Batch Scrape URLs",
      "value": "create",
      "action": "Batch scrape urls",
      "description": "Scrape up to 10k URLs at the same time",
      "resource": "batch"
    },
    {
      "name": "Create Crawl",
      "value": "create",
      "action": "Create a crawl",
      "description": "Get the content of subpages of a URL",
      "resource": "crawl"
    },
    {
      "name": "Create Map",
      "value": "create",
      "action": "Create a map",
      "description": "Get all URLs on a website",
      "resource": "map"
    },
    {
      "name": "Create Answer",
      "value": "create",
      "action": "Create answer",
      "description": "Search the web and return AI-powered answers with sources",
      "resource": "answer"
    }
  ]

npm_readme:
  # n8n-nodes-olostep

  The Olostep n8n integration brings powerful web search, scraping, and crawling capabilities to n8n workflows. Build automated workflows that search, extract, and structure web data from any website without writing code.

  Olostep is a web search, scraping, and crawling API that extracts structured web data from any website in real time. Perfect for automating research workflows, monitoring competitors, and collecting data at scale.

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

  [Installation](#installation)  
  [Operations](#operations)  
  [Credentials](#credentials)  
  [Workflow Template](#workflow-template)  
  [Testing Locally](#testing-locally)  
  [Publishing to npm](#publishing-to-npm)  
  [Compatibility](#compatibility)  
  [Resources](#resources)

  ## Installation

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

  Or install directly via npm:

  ```bash
  npm install n8n-nodes-olostep
  ```

  Then restart n8n to load the new node.

  ## Operations

  ### Scrape Website

  Extract content from a single URL. Supports multiple formats and JavaScript rendering.

  **Use Cases:**
  - Monitor specific pages for changes
  - Extract product information from e-commerce sites
  - Gather data from news articles or blog posts
  - Pull content for content aggregation

  **Parameters:**
  - **URL to Scrape** (required): The URL of the website you want to scrape
  - **Output Format**: Choose format (HTML, Markdown, JSON, or Plain Text) - default: Markdown
  - **Country Code**: Optional country code (e.g., US, GB, CA) for location-specific scraping
  - **Wait Before Scraping**: Wait time in milliseconds before scraping (0-10000) - useful for dynamic content
  - **Parser**: Optional parser ID for specialized extraction (e.g., @olostep/amazon-product)

  **Output Fields:**
  - `id`: Scrape ID
  - `url`: Scraped URL
  - `markdown_content`: Markdown formatted content
  - `html_content`: HTML formatted content
  - `json_content`: JSON formatted content
  - `text_content`: Plain text content
  - `status`: Status of the scrape
  - `timestamp`: Timestamp of the scrape
  - `screenshot_hosted_url`: URL to screenshot (if available)
  - `page_metadata`: Page metadata

  ### Search

  Search the Web for a given query and get structured results (non-AI, parser-based search results).

  **Use Cases:**
  - Automated research workflows
  - Lead discovery and enrichment
  - Competitive analysis
  - Content research

  **Parameters:**
  - **Query** (required): Search query

  **Output:** Returns structured search results as JSON.

  ### Answers (AI)

  Search the web and return AI-powered answers in the JSON structure you want, with sources and citations.

  **Use Cases:**
  - Enrich spreadsheets or records with web-sourced facts
  - Ground AI applications on real-world data and sources
  - Research tasks that require verified outputs with citations

  **Parameters:**
  - **Task** (required): Question or task to answer using web data
  - **JSON Schema (Optional)**: JSON schema/object or a short description of the desired output shape

    Examples:
    - Object schema: `{ "book_title": "", "author": "", "release_date": "" }`
    - Description string: `"Return a list of the top 5 competitors with name and homepage URL"`

  **Output Fields:**
  - `answer_id`: Answer ID
  - `object`: Object type
  - `task`: Original task
  - `result`: Parsed JSON if `json` was provided; otherwise the answer object
  - `sources`: Array of source URLs used
  - `created`: Creation timestamp

  ### Batch Scrape URLs

  Scrape up to 10k urls at the same time. Perfect for large-scale data extraction.

  **Use Cases:**
  - Scrape entire product catalogs
  - Extract data from multiple search results
  - Process lists of URLs from spreadsheets
  - Bulk content extraction

  **Parameters:**
  - **URLs to Scrape** (required): JSON array of objects with `url` and `custom_id` fields
    - Example: `[{"url":"https://example.com","custom_id":"site1"}]`
  - **Output Format**: Choose format for all URLs - default: Markdown
  - **Country Code**: Optional country code for location-specific scraping
  - **Wait Before Scraping**: Wait time in milliseconds before scraping each URL
  - **Parser**: Optional parser ID for specialized extraction

  **Output Fields:**
  - `batch_id`: Batch ID (use this to retrieve results later)
  - `status`: Status of the batch
  - `total_urls`: Total number of URLs in the batch
  - `created_at`: Creation timestamp
  - `formats`: Requested format
  - `country`: Country code used
  - `parser`: Parser used
  - `urls`: Array of URLs in the batch

  ### Create Crawl

  Get the content of subpages of a URL. Autonomously discover and scrape entire websites by following links. Perfect for documentation sites, blogs, and content repositories.

  **Use Cases:**
  - Crawl and archive entire documentation sites
  - Extract all blog posts from a website
  - Build knowledge bases from web content
  - Monitor website structure changes

  **Parameters:**
  - **Start URL** (required): Starting URL for the crawl
  - **Maximum Pages**: Maximum number of pages to crawl (default: 10)
  - **Follow Links**: Whether to follow links found on pages (default: true)
  - **Output Format**: Format for scraped content - default: Markdown
  - **Country Code**: Optional country code for location-specific crawling
  - **Parser**: Optional parser ID for specialized content extraction

  **Output Fields:**
  - `crawl_id`: Crawl ID (use this to retrieve results later)
  - `object`: Object type
  - `status`: Status of the crawl
  - `start_url`: Starting URL
  - `max_pages`: Maximum pages
  - `follow_links`: Whether links are followed
  - `created`: Creation timestamp
  - `formats`: Formats requested
  - `country`: Country code used
  - `parser`: Parser used

  ### Create Map

  Get all URLs on a website. Extract all URLs from a website for content discovery and site structure analysis.

  **Use Cases:**
  - Build sitemaps and site structure diagrams
  - Discover all pages before batch scraping
  - Find broken or missing pages
  - SEO audits and analysis

  **Parameters:**
  - **Website URL** (required): Website URL to extract links from
  - **Search Query**: Optional search query to filter URLs (e.g., "blog")
  - **Top N URLs**: Limit the number of URLs returned
  - **Include URL Patterns**: Glob patterns to include specific paths (e.g., "/blog/**")
  - **Exclude URL Patterns**: Glob patterns to exclude specific paths (e.g., "/admin/**")

  **Output Fields:**
  - `map_id`: Map ID
  - `object`: Object type
  - `url`: Website URL
  - `total_urls`: Total URLs found
  - `urls`: Array of discovered URLs
  - `search_query`: Search query used
  - `top_n`: Top N limit

  ## Credentials

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

  1. Sign up for an account on [olostep.com](https://www.olostep.com) to get an API key.
  2. Get your API key from the [Olostep Dashboard](https://olostep.com/dashboard).
  3. Add a new credential in n8n for the Olostep Scrape API.
  4. Enter your API key in the 'API Key' field.

  ## Workflow Template

  A sample workflow template is included in `workflow-template.json`. To use it:

  1. Open n8n
  2. Click on "Workflows" in the sidebar
  3. Click the three dots menu and select "Import from File"
  4. Select the `workflow-template.json` file
  5. Configure the Olostep credentials
  6. Customize the workflow as needed

  The template includes a basic workflow that scrapes a website using the Olostep Scrape Website operation.

  ## Testing Locally

  To test your node locally before publishing:

  ### Prerequisites

  - Node.js version 20.15 or higher
  - npm installed

  ### Steps

  1. **Build the node:**
     ```bash
     npm run build
     ```

  2. **Link the node locally:**
     ```bash
     npm link
     ```

  3. **Install n8n globally (if not already installed):**
     ```bash
     npm install n8n -g
     ```

  4. **Link the node to n8n:**
     ```bash
     # Find your n8n custom nodes directory (usually ~/.n8n/custom/)
     # Or if using n8n locally, navigate to the n8n installation directory
     cd ~/.n8n/custom
     npm link n8n-nodes-olostep
     ```

  5. **Start n8n:**
     ```bash
     n8n start
     ```

  6. **Test the node:**
     - Open n8n in your browser (usually http://localhost:5678)
     - Create a new workflow
     - Add the "Olostep Scrape" node
     - Configure it with your API credentials
     - Test each operation to ensure they work correctly

  ### Running Linter

  Before publishing, make sure your code passes linting:

  ```bash
  npm run lint
  ```

  If there are any issues, fix them:

  ```bash
  npm run lintfix
  ```

  ## Publishing to npm

  Once your node is tested and ready:

  ### Prerequisites

  - npm account (create one at [npmjs.com](https://www.npmjs.com/signup) if needed)
  - Node.js version 20.15 or higher

  ### Steps

  1. **Ensure package.json is correct:**
     - Verify version number
     - Check that all required fields are filled
     - Ensure the package name is `n8n-nodes-olostep`

  2. **Build the package:**
     ```bash
     npm run build
     ```

  3. **Run prepublish checks:**
     ```bash
     npm run prepublishOnly
     ```
     This will build and lint your code.

  4. **Login to npm:**
     ```bash
     npm login
     ```
     Enter your npm username, password, and email when prompted.

  5. **Publish to npm:**
     ```bash
     npm publish
     ```

  6. **Verify publication:**
     - Visit https://www.npmjs.com/package/n8n-nodes-olostep
     - Check that your latest version is published

  ### Version Management

  When making updates:

  1. Update the version in `package.json` following [semantic versioning](https://semver.org/):
     - **Patch** (1.0.0 → 1.0.1): Bug fixes
     - **Minor** (1.0.0 → 1.1.0): New features, backward compatible
     - **Major** (1.0.0 → 2.0.0): Breaking changes

  2. Update the CHANGELOG.md (if you have one)

  3. Build and publish:
     ```bash
     npm run build
     npm publish
     ```

  ## Compatibility

  This node is tested against n8n version 1.x and requires Node.js version 20.15 or higher.

  ## Specialized Parsers

  Olostep provides pre-built parsers for popular websites and tasks. Use them with the `Parser` parameter:

  - **@olostep/amazon-product** - Extract product details, prices, reviews, images, variants
  - **@olostep/google-search** - Extract search results, titles, snippets, URLs
  - **@olostep/google-maps** - Extract business info, reviews, ratings, location
  - **@olostep/extract-emails** - Extract emails from pages and contact sections
  - **@olostep/extract-socials** - Extract social profile links (X/Twitter, GitHub, etc.)
  - **@olostep/extract-calendars** - Extract calendar links (Google Calendar, ICS)

  ## Resources

  * [Olostep API Documentation](https://docs.olostep.com)
  * [Olostep Dashboard](https://olostep.com/dashboard) - Get your API key and manage usage
  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [n8n Node Development Guide](https://docs.n8n.io/integrations/creating-nodes/)

  ## Support

  Need help with the n8n integration?

  * **Documentation:** [docs.olostep.com](https://docs.olostep.com)
  * **Support Email:** info@olostep.com
  * **Website:** [olostep.com](https://www.olostep.com)

ai_documentation_summary:
  {"purpose":"This n8n node enables web search, scraping, and crawling operations to extract and structure data from websites without writing code.","capabilities":["Scrape single URLs with multiple output formats (HTML, Markdown, JSON, Plain Text)","Search the web with parser-based structured results","Generate AI-powered answers with sources and citations","Batch scrape up to 10,000 URLs simultaneously","Crawl entire websites autonomously following links","Extract all URLs from a website for structure analysis","Support JavaScript rendering","Apply specialized parsers for specific extraction needs","Apply location-specific scraping via country codes"],"authentication":"API key required (handled via credentials)","commonUseCases":["Automated research workflows","Competitor monitoring and analysis","Lead discovery and enrichment","Content aggregation","Building knowledge bases from web content"],"limitations":["Batch scraping has a maximum limit of 10,000 URLs","Crawling has a default maximum of 10 pages (configurable)","Wait time before scraping is limited to 0-10,000 milliseconds","Requires n8n restart after npm installation"],"relatedNodes":["n8n-nodes-base.code","n8n-nodes-base.httpRequest","n8n-nodes-base.webhook"]}


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

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

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

npm_readme:
  # n8n-nodes-orgo

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

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

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

  ## Installation

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

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

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

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

  ## Operations

  This package provides two powerful nodes for comprehensive Orgo integration:

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

  **Available Resources:**

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

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

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

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

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

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

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

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

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

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

  ## Credentials

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

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

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

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

  ### Getting Your API Token

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

  ### Testing Your Credentials

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

  ## API Documentation

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

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

  ## Webhook Setup

  The Orgo Trigger node provides automated webhook management:

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

  ### Webhook Payload Structure

  Orgo webhooks deliver standardized payloads:

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

  ### Accessing Webhook Data in n8n

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

  ## Example Workflows

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

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

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

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

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

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

  ## Multi-Tenant Architecture

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

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

  ## Error Handling & Reliability

  The nodes include comprehensive error handling:

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

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

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

  ## Performance & Best Practices

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

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

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

  ## Compatibility

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

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

  ## Troubleshooting

  ### Common Issues

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

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

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

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

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

  ## Resources

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

  ## License

  [MIT](LICENSE.md)

  ---

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

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


node_type: n8n-nodes-gleanclient.gleanClient
package_name: n8n-nodes-gleanclient
display_name: Glean
description: Retrieve results from the Glean index for the given query and filters
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: djuang1
author_github_url: https://github.com/djuang1/
npm_package_name: n8n-nodes-gleanclient
npm_version: 0.2.0
community_fetched_at: 2026-07-14T14:40:33.303Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "searchGlean",
      "options": [
        {
          "name": "Search Glean",
          "value": "searchGlean"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "post",
      "options": [
        {
          "name": "Search Glean",
          "value": "post",
          "action": "Search",
          "routing": {
            "request": {
              "url": "/rest/api/v1/search",
              "body": {
                "query": "={{$parameter[\"query\"]}}",
                "pageSize": 10,
                "trackingToken": "1"
              },
              "method": "POST"
            }
          },
          "description": "Retrieve results from the index for the given query"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "searchGlean"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search Glean",
      "value": "post",
      "action": "Search",
      "routing": {
        "request": {
          "url": "/rest/api/v1/search",
          "body": {
            "query": "={{$parameter[\"query\"]}}",
            "pageSize": 10,
            "trackingToken": "1"
          },
          "method": "POST"
        }
      },
      "description": "Retrieve results from the index for the given query",
      "resource": "searchGlean"
    }
  ]

npm_readme:
  # n8n-nodes-gleanclient

  This is an n8n community node. It lets you use the [Glean Client API](https://developers.glean.com/api/client-api/search/search) in your n8n workflows.

  The Glean Work AI platform lets you embed enterprise search, chat, and agent capabilities into your applications while honoring source‑system permissions by default.

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

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

  ## Installation

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

  ## Operations

  This node allows you to run the search endpoint against your Glean instance.

  ## Credentials

  A Glean account and an API token with the Search scope is required. 

  ## Compatibility

  Tested locally against n8n 1.105.4

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Glean Developers - Client API Reference - Search](https://developers.glean.com/api/client-api/search/search)

  ## Version history

  * August 8, 2025 - 0.1.2 - First.
  * August 8, 2025 - 0.1.3 - Fixed AI Agent tool usage.
  * August 9, 2025 - 0.1.4 - Updated names and added credential test.
  * August 9, 2025 - 0.1.5 - Fixed query body to pass the correct value.

ai_documentation_summary:
  {"purpose":"Retrieves search results from a Glean index using the Glean Client API within n8n workflows.","capabilities":["Execute search queries against Glean instances","Apply filters to search results","Retrieve enterprise search data","Support AI Agent tool usage"],"authentication":"API token required with Search scope","commonUseCases":["Enterprise search integration","Embedding search capabilities into applications","Querying Glean-indexed documents"],"limitations":["Requires a Glean account with appropriate API token","Search scope permission is mandatory"],"relatedNodes":["n8n-nodes-gleanclient.gleanClient"]}


node_type: n8n-nodes-kargo-entegrator.kargoEntegrator
package_name: n8n-nodes-kargo-entegrator
display_name: Kargo Entegratör
description: Interact with Kargo Entegratör API for shipment management
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: gurmesoftcom
author_github_url: https://github.com/gurmesoft/
npm_package_name: n8n-nodes-kargo-entegrator
npm_version: 0.1.4
community_fetched_at: 2026-07-14T14:40:33.304Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "shipment",
      "options": [
        {
          "name": "Cargo Integration",
          "value": "cargo",
          "description": "List cargo company integrations linked to your account. <a href=\"https://dev.kargoentegrator.com/api/integrations/kargo-listeleme\">API Docs</a>."
        },
        {
          "name": "Return",
          "value": "return",
          "description": "Create and manage return shipments. <a href=\"https://dev.kargoentegrator.com/api/returneds/olusturma\">API Docs</a>."
        },
        {
          "name": "Setting",
          "value": "settings",
          "description": "Get shipment and return settings for your account"
        },
        {
          "name": "Shipment",
          "value": "shipment",
          "description": "Create, list, and manage shipments. <a href=\"https://dev.kargoentegrator.com/api/shipments/olusturma\">API Docs</a>."
        },
        {
          "name": "Warehouse",
          "value": "warehouse",
          "description": "List warehouses linked to your account. <a href=\"https://dev.kargoentegrator.com/api/settings/depo-listeleme\">API Docs</a>."
        }
      ],
      "required": true,
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a shipment",
          "description": "Create a new shipment. <a href=\"https://dev.kargoentegrator.com/api/shipments/olusturma\">API Docs</a>."
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a shipment",
          "description": "Get shipment details by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many shipments",
          "description": "Get many shipments with pagination"
        },
        {
          "name": "Print PDF",
          "value": "printPdf",
          "action": "Print shipment PDF",
          "description": "Download label/barcode PDF for one or more shipments. <a href=\"https://dev.kargoentegrator.com/api/print-pdf\">API Docs</a>."
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "shipment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a return shipment",
          "description": "Create a new return shipment. <a href=\"https://dev.kargoentegrator.com/api/returneds/olusturma\">API Docs</a>."
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a return shipment",
          "description": "Get a return shipment by ID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many return shipments",
          "description": "List many return shipments linked to your account. <a href=\"https://dev.kargoentegrator.com/api/returneds/listeleme\">API Docs</a>."
        },
        {
          "name": "Print Return PDF",
          "value": "printReturnedPdf",
          "action": "Print return PDF",
          "description": "Generate PDF label for a return shipment. <a href=\"https://dev.kargoentegrator.com/api/print-pdf\">API Docs</a>."
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "return"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many cargo integrations",
          "description": "List many cargo company integrations linked to your account. <a href=\"https://dev.kargoentegrator.com/api/integrations/kargo-listeleme\">API Docs</a>."
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a cargo integration",
          "description": "Get a specific cargo company integration by ID"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "cargo"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many warehouses",
          "description": "List many warehouses linked to your account. Use this to get warehouse_id values for shipment creation. <a href=\"https://dev.kargoentegrator.com/api/settings/depo-listeleme\">API Docs</a>."
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a warehouse",
          "description": "Get a specific warehouse by ID"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "warehouse"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getShipmentSettings",
      "options": [
        {
          "name": "Get Shipment Settings",
          "value": "getShipmentSettings",
          "action": "Get shipment settings",
          "description": "Get shipment configuration settings for your account"
        },
        {
          "name": "Get Return Settings",
          "value": "getReturnSettings",
          "action": "Get return settings",
          "description": "Get return shipment configuration settings for your account"
        }
      ],
      "required": true,
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "settings"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a shipment",
      "description": "Create a new shipment. <a href=\"https://dev.kargoentegrator.com/api/shipments/olusturma\">API Docs</a>.",
      "resource": "shipment"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a shipment",
      "description": "Get shipment details by ID",
      "resource": "shipment"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many shipments",
      "description": "Get many shipments with pagination",
      "resource": "shipment"
    },
    {
      "name": "Print PDF",
      "value": "printPdf",
      "action": "Print shipment PDF",
      "description": "Download label/barcode PDF for one or more shipments. <a href=\"https://dev.kargoentegrator.com/api/print-pdf\">API Docs</a>.",
      "resource": "shipment"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a return shipment",
      "description": "Create a new return shipment. <a href=\"https://dev.kargoentegrator.com/api/returneds/olusturma\">API Docs</a>.",
      "resource": "return"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a return shipment",
      "description": "Get a return shipment by ID",
      "resource": "return"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many return shipments",
      "description": "List many return shipments linked to your account. <a href=\"https://dev.kargoentegrator.com/api/returneds/listeleme\">API Docs</a>.",
      "resource": "return"
    },
    {
      "name": "Print Return PDF",
      "value": "printReturnedPdf",
      "action": "Print return PDF",
      "description": "Generate PDF label for a return shipment. <a href=\"https://dev.kargoentegrator.com/api/print-pdf\">API Docs</a>.",
      "resource": "return"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many cargo integrations",
      "description": "List many cargo company integrations linked to your account. <a href=\"https://dev.kargoentegrator.com/api/integrations/kargo-listeleme\">API Docs</a>.",
      "resource": "cargo"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a cargo integration",
      "description": "Get a specific cargo company integration by ID",
      "resource": "cargo"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many warehouses",
      "description": "List many warehouses linked to your account. Use this to get warehouse_id values for shipment creation. <a href=\"https://dev.kargoentegrator.com/api/settings/depo-listeleme\">API Docs</a>.",
      "resource": "warehouse"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a warehouse",
      "description": "Get a specific warehouse by ID",
      "resource": "warehouse"
    },
    {
      "name": "Get Shipment Settings",
      "value": "getShipmentSettings",
      "action": "Get shipment settings",
      "description": "Get shipment configuration settings for your account",
      "resource": "settings"
    },
    {
      "name": "Get Return Settings",
      "value": "getReturnSettings",
      "action": "Get return settings",
      "description": "Get return shipment configuration settings for your account",
      "resource": "settings"
    }
  ]

npm_readme:
  # n8n-nodes-kargo-entegrator

  This is an n8n community node. It lets you use Kargo Entegratör API in your n8n workflows.

  Kargo Entegratör is a Turkish cargo integration platform that allows you to manage shipments across multiple cargo companies from a single interface.

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

  ## Table of Contents

  - [Quick Start](#quick-start)
  - [Development Setup](#development-setup)
  - [Docker Environment](#docker-environment)
  - [Installation](#installation)
  - [Operations](#operations)
  - [Credentials](#credentials)
  - [Scripts](#scripts)
  - [Compatibility](#compatibility)
  - [Usage](#usage)
  - [Resources](#resources)
  - [Version History](#version-history)
  - [License](#license)

  ## Quick Start

  ### Prerequisites
  - Node.js >= 20.15
  - npm or yarn
  - Docker (optional, for containerized development)

  ### Local Development

  1. **Clone and Install**
     ```bash
     git clone https://github.com/gurmesoft/n8n-nodes-kargo-entegrator.git
     cd n8n-nodes-kargo-entegrator
     npm install
     ```

  2. **Build the Project**
     ```bash
     npm run build
     ```

  3. **Start Development**
     ```bash
     npm run dev
     ```

  ### Docker Development (Recommended)

  1. **Quick Start with Docker**
     ```bash
     # Build and start development environment
     npm run dev:docker
     
     # Access N8N at http://localhost:5678
     # Username: admin
     # Password: admin123
     ```

  2. **View Logs**
     ```bash
     npm run dev:docker:logs
     ```

  3. **Stop Environment**
     ```bash
     npm run dev:docker:stop
     ```

  ## Development Setup

  ### Environment Requirements
  - **Node.js**: >= 20.15
  - **TypeScript**: ^5.8.2
  - **n8n-workflow**: Latest (peer dependency)

  ### Project Structure
  ```
  n8n-nodes-kargo-entegrator/
  ├── credentials/           # API credentials configuration
  ├── nodes/                # Node implementations
  │   └── KargoEntegrator/
  │       ├── *.node.ts     # Node logic
  │       ├── actions/      # Node actions
  │       └── resources/    # Node resources
  ├── dist/                 # Built files (generated)
  ├── docker-compose*.yml   # Docker configurations
  └── package.json          # Project configuration
  ```

  ### Development Workflow

  1. **Make Changes**: Edit TypeScript files in `nodes/` or `credentials/`
  2. **Build**: Run `npm run build` to compile TypeScript
  3. **Test**: Use Docker environment or local N8N instance
  4. **Format**: Run `npm run format` to format code
  5. **Lint**: Run `npm run lint` to check code quality

  ## Docker Environment

  Three Docker configurations are available:

  ### 1. Development Environment (Recommended)
  ```bash
  npm run dev:docker
  # or
  docker-compose -f docker-compose.dev.yml up -d
  ```
  - **Services**: N8N + PostgreSQL + Node development container
  - **Features**: Hot reload, debugging, persistent data
  - **Access**: http://localhost:5678

  ### 2. Simple Environment
  ```bash
  docker-compose -f docker-compose.simple.yml up -d
  ```
  - **Services**: N8N only (SQLite database)
  - **Use Case**: Quick testing
  - **Access**: http://localhost:5678

  ### 3. Production Environment
  ```bash
  docker-compose up -d
  ```
  - **Services**: N8N + PostgreSQL
  - **Use Case**: Production deployment
  - **Access**: http://localhost:5678

  ### Docker Commands
  ```bash
  # Start development environment
  npm run dev:docker

  # View logs
  npm run dev:docker:logs

  # Restart services
  npm run dev:docker:restart

  # Stop environment
  npm run dev:docker:stop

  # Build and restart with live reload
  npm run dev:live
  ```

  ### Access Information
  - **N8N Web Interface**: http://localhost:5678
  - **Username**: admin
  - **Password**: admin123
  - **PostgreSQL**: localhost:5432 (production) / localhost:5433 (development)
    - User: n8n
    - Password: n8n123
    - Database: n8n

  ## Scripts

  | Script | Description |
  |--------|-------------|
  | `npm run build` | Build TypeScript and copy icons |
  | `npm run dev` | Watch TypeScript files for changes |
  | `npm run dev:live` | Development with auto-restart |
  | `npm run dev:docker` | Start Docker development environment |
  | `npm run dev:docker:logs` | View Docker logs |
  | `npm run dev:docker:stop` | Stop Docker environment |
  | `npm run dev:docker:restart` | Restart Docker services |
  | `npm run format` | Format code with Prettier |
  | `npm run lint` | Lint code with ESLint |
  | `npm run lintfix` | Fix linting issues automatically |  

  ## Installation

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

  ### Community Nodes (Recommended)

  1. Go to **Settings > Community Nodes**
  2. Select **Install**
  3. Enter `n8n-nodes-kargo-entegrator`
  4. Agree to the risks of using community nodes
  5. Select **Install**

  ### Manual Installation

  ```bash
  npm install n8n-nodes-kargo-entegrator
  ```

  ## Operations

  ### Shipment
  - **Create**: Create a new shipment
  - **Get**: Retrieve shipment details
  - **Create Return**: Create a return shipment

  ### Customer
  - **Update**: Update customer information

  ### Cargo
  - **Get All**: Get all available cargo companies
  - **Get**: Get specific cargo company details

  ## Credentials

  To use this node, you need:

  1. Sign up for an account at [https://app.kargoentegrator.com](https://app.kargoentegrator.com)
  2. Get your API key from the dashboard
  3. Configure the credentials in n8n:
     - **API Key**: Your Kargo Entegratör API key
     - **Base URL**: https://app.kargoentegrator.com/api (default)

  ## Compatibility

  Tested against n8n version 1.0+.

  ## Usage

  ### Creating a Shipment

  1. Select "Shipment" as the resource
  2. Choose "Create" as the operation
  3. Fill in the required fields:
     - Receiver name, phone, and address
     - City and district
     - Cargo company ID
     - Package details (weight, count, description)

  ### Managing Returns

  Use the "Create Return" operation to create return shipments with the same interface as regular shipments.

  ### Getting Cargo Companies

  Use the "Cargo" resource to get information about available cargo companies and their IDs for use in shipment creation.

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
  * [Kargo Entegratör API Documentation](https://documenter.getpostman.com/view/25047990/2sAY4vg2RR)
  * [Kargo Entegratör Website](https://kargoentegrator.com/)

  ## Version History

  ### 0.1.0
  - Initial release
  - Support for shipment creation, retrieval, and PDF generation
  - Support for return shipment management
  - Cargo company and warehouse information retrieval
  - Webhook trigger for shipment status changes
  - System settings access

  ## Contributing

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

  ## Support

  For support, please contact [destek@kargoentegrator.com](mailto:destek@kargoentegrator.com) or visit our [website](https://kargoentegrator.com/).

  ## License

  [MIT](https://github.com/gurmesoft/n8n-nodes-kargo-entegrator/blob/main/LICENSE.md)

ai_documentation_summary:
  {"purpose":"This n8n community node enables workflow automation for managing shipments across multiple Turkish cargo companies via the Kargo Entegratör API.","capabilities":["Create new shipments","Retrieve shipment details","Create return shipments","Update customer information","List all available cargo companies","Retrieve specific cargo company details"],"authentication":"API key required","commonUseCases":["Automating cross-company logistics tracking","Managing return shipments for e-commerce","Centralizing cargo company data retrieval","Integrating Turkish shipping services into n8n workflows"],"limitations":["Community node (requires manual installation)","Requires separate account at Kargo Entegratör","Requires Node.js >= 20.15 for development"],"relatedNodes":["HTTP Request","Credentials","Shipment"]}


node_type: @quire-io/n8n-nodes-quire.quire
package_name: @quire-io/n8n-nodes-quire
display_name: Quire
description: Perform actions on Quire project management platform
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: izwhiter
author_github_url: https://github.com/quire-api/n8n-nodes-quire.git
npm_package_name: @quire-io/n8n-nodes-quire
npm_version: 0.1.2
community_fetched_at: 2026-07-14T14:40:33.305Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "task",
      "options": [
        {
          "name": "Comment",
          "value": "comment"
        },
        {
          "name": "Partner",
          "value": "partner"
        },
        {
          "name": "Project",
          "value": "project"
        },
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Sublist",
          "value": "sublist"
        },
        {
          "name": "Tag",
          "value": "tag"
        },
        {
          "name": "Task",
          "value": "task"
        },
        {
          "name": "User",
          "value": "user"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a task",
          "description": "Create a new task"
        },
        {
          "name": "Get",
          "value": "get",
          "action": "Get a task",
          "description": "Get a task by ID"
        },
        {
          "name": "Get by OID",
          "value": "getByOid",
          "action": "Get task by OID",
          "description": "Get a task by OID"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tasks",
          "description": "Get many tasks in a project"
        },
        {
          "name": "Update",
          "value": "update",
          "action": "Update a task",
          "description": "Update an existing task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "task"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many users",
          "description": "Get many accessible users"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "user"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "create",
      "options": [
        {
          "name": "Create",
          "value": "create",
          "action": "Create a comment",
          "description": "Create a new comment"
        },
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many comments",
          "description": "Get many comments for a task"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "comment"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many tags",
          "description": "Get many tags in a project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "tag"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many sublists",
          "description": "Get many sublists in a project"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "sublist"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many partners",
          "description": "Get many partners in an organization"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "partner"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "findTaskInProject",
      "options": [
        {
          "name": "Find Task in Project",
          "value": "findTaskInProject",
          "action": "Find task in project",
          "description": "Find tasks in a project"
        },
        {
          "name": "Find User",
          "value": "findUser",
          "action": "Find user",
          "description": "Find a user by email or ID"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getAll",
      "options": [
        {
          "name": "Get Many",
          "value": "getAll",
          "action": "Get many projects",
          "description": "Get many accessible projects"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "project"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Create",
      "value": "create",
      "action": "Create a task",
      "description": "Create a new task",
      "resource": "task"
    },
    {
      "name": "Get",
      "value": "get",
      "action": "Get a task",
      "description": "Get a task by ID",
      "resource": "task"
    },
    {
      "name": "Get by OID",
      "value": "getByOid",
      "action": "Get task by OID",
      "description": "Get a task by OID",
      "resource": "task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tasks",
      "description": "Get many tasks in a project",
      "resource": "task"
    },
    {
      "name": "Update",
      "value": "update",
      "action": "Update a task",
      "description": "Update an existing task",
      "resource": "task"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many users",
      "description": "Get many accessible users",
      "resource": "user"
    },
    {
      "name": "Create",
      "value": "create",
      "action": "Create a comment",
      "description": "Create a new comment",
      "resource": "comment"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many comments",
      "description": "Get many comments for a task",
      "resource": "comment"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many tags",
      "description": "Get many tags in a project",
      "resource": "tag"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many sublists",
      "description": "Get many sublists in a project",
      "resource": "sublist"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many partners",
      "description": "Get many partners in an organization",
      "resource": "partner"
    },
    {
      "name": "Find Task in Project",
      "value": "findTaskInProject",
      "action": "Find task in project",
      "description": "Find tasks in a project",
      "resource": "search"
    },
    {
      "name": "Find User",
      "value": "findUser",
      "action": "Find user",
      "description": "Find a user by email or ID",
      "resource": "search"
    },
    {
      "name": "Get Many",
      "value": "getAll",
      "action": "Get many projects",
      "description": "Get many accessible projects",
      "resource": "project"
    }
  ]

npm_readme:
  # n8n-nodes-quire

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

  Quire is a project management applications that improve your productivity.

  [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
  - **Create**: Create a new task
  - **Get**: Get a task by ID
  - **Get by OID**: Get a task by OID
  - **Get Many**: Get all tasks in a project
  - **Update**: Update an existing task

  ### Comment
  - **Create**: Create a new comment for a task
  - **Get Many**: Get all comments for a task

  ### Project
  - **Get Many**: Get all accessible projects

  ### User
  - **Get Many**: Get all accessible users

  ### Tag
  - **Get Many**: Get all tags in a project

  ### Sublist
  - **Get Many**: Get all sublists in a project

  ### Partner
  - **Get Many**: Get all partners in an organization

  ### Search
  - **Find Task in Project**: Find tasks in a project
  - **Find User**: Find a user by email or ID

  ## Credentials

  To use this node, you need to set up OAuth2 credentials for Quire in n8n:

  1. Log in to Quire and create a Quire App to obtain your Client ID and Client Secret.
  2. In n8n, go to the **Credentials** page and add new credentials for **Quire OAuth2 API**.
  3. Enter your Quire App's Client ID and Client Secret in the corresponding fields.
  4. Copy the **OAuth Redirect URL** shown in n8n and add it to your Quire App's Redirect URI settings.
  5. Save the credentials, then click **Connect my account** and authorize access to your Quire projects.

  > Reference: [n8n credentials setup guide](https://docs.n8n.io/credentials/add-edit-credentials/)

  ## Resources

  * [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  * [Quire App Directory](https://quire.io/apps)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation workflows with the Quire project management platform by allowing users to perform CRUD operations on tasks, comments, projects, users, tags, sublists, and partners.","capabilities":["Create tasks","Get tasks by ID","Get tasks by OID","Retrieve all tasks in a project","Update existing tasks","Create comments for tasks","Retrieve all comments for a task","Get all accessible projects","Get all accessible users","Get all tags in a project"],"authentication":"OAuth2","commonUseCases":["Automating task creation and updates from external sources","Syncing project data between Quire and other tools","Retrieving project status or user lists for reporting","Searching for specific tasks or users within Quire"],"limitations":["Limited to community node status (fair-code licensed)","Does not support creating, updating, or deleting comments or projects","Requires manual setup of OAuth2 credentials and redirect URI configuration"],"relatedNodes":["n8n OAuth2 credential node","n8n HTTP Request node","n8n community nodes"]}


node_type: n8n-nodes-browseract.browserAct
package_name: n8n-nodes-browseract
display_name: BrowserAct
description: browserAct description
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: xing-lin
author_github_url: https://github.com/browseract-ai/
npm_package_name: n8n-nodes-browseract
npm_version: 1.3.0
community_fetched_at: 2026-07-14T14:40:33.306Z
ai_summary_generated_at: 2026-03-25 22:47:20
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "workflow",
      "options": [
        {
          "name": "Workflow",
          "value": "workflow"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "runWorkflow",
      "options": [
        {
          "name": "Run a Workflow",
          "value": "runWorkflow",
          "action": "Run a workflow"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "workflow"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Run a Workflow",
      "value": "runWorkflow",
      "action": "Run a workflow",
      "resource": "workflow"
    }
  ]

npm_readme:
  # n8n Nodes - BrowserAct Integration

  This is an n8n community node that integrates [BrowserAct](https://www.browseract.com/) with your n8n workflows.

  [BrowserAct](https://www.browseract.com/) is a platform for anyone to launch AI-powered crawling tasks with one click to automate web crawling, data extraction, and content generation—without coding. while [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation tool that allows you to connect various services.

  ## Table of Contents

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

  ## Installation

  To install this community node, please follow the official [n8n community node installation guide](https://docs.n8n.io/integrations/community-nodes/installation/).

  ## Operations

  This node supports a wide range of BrowserAct operations, including:

  - **Run Agent**
    - Start the specified Agent crawler task to obtain the crawled web page data or structured results.
  - **Run Workflow**
    - Execute the specified BrowserAct Workflow, supporting multi-step task orchestration and data processing.

  ## Credentials

  To use a BrowserAct node, you need to complete the following steps:

  1. Create a free account at [BrowserAct.com](https://browseract.com/).

  2. Log in to BrowserAct and visit the "Integrations" page to create your API key.

  3. In n8n, add your `BrowserActApi` to the node's Credentials configuration.

  ⚠️ **Note:** The API key is sensitive information. Please keep it secure and never share it publicly.

  ## Resources

  - [n8n Community Nodes Documentation](https://docs.n8n.io/integrations/community-nodes/)
  - [BrowserAct API Documentation](http://www.browseract.com/docs-api)

ai_documentation_summary:
  {"purpose":"This n8n community node enables automation of web crawling, data extraction, and content generation by integrating BrowserAct's AI-powered crawling platform into n8n workflows.","capabilities":["Run Agent: Start specified crawler tasks to obtain web page data or structured results","Run Workflow: Execute multi-step task orchestration and data processing workflows","Automated web crawling","Data extraction from websites","Content generation"],"authentication":"API key required (BrowserActApi credential)","commonUseCases":["Automated web scraping for data collection","Multi-step data extraction workflows","AI-powered content generation from web sources","Integrating BrowserAct's crawling tasks with n8n automation"],"limitations":["Community node (not official n8n node)","Requires separate BrowserAct account and API key setup"],"relatedNodes":["n8n-nodes-http.request","n8n-nodes-webhook","n8n-nodes-code"]}


node_type: n8n-nodes-tubelab.tubeLab
package_name: n8n-nodes-tubelab
display_name: TubeLab
description: Get trending YouTube channels and outlier videos data for any niche.
category: Community
development_style: declarative
version: 1
credentials_required: []
outputs:
  [
  "main"
  ]

updated_at: 2026-07-14 14:40:33
author_name: antoniojps
author_github_url: https://github.com/antoniojps/
npm_package_name: n8n-nodes-tubelab
npm_version: 0.4.7
community_fetched_at: 2026-07-14T14:40:33.307Z
ai_summary_generated_at: 2026-03-25 22:51:43
properties_schema:
  [
    {
      "name": "resource",
      "type": "options",
      "default": "search",
      "options": [
        {
          "name": "Search",
          "value": "search"
        },
        {
          "name": "Channel",
          "value": "channel"
        },
        {
          "name": "Video",
          "value": "video"
        },
        {
          "name": "Scan",
          "value": "scan"
        }
      ],
      "displayName": "Resource",
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "searchOutliers",
      "options": [
        {
          "name": "Search Channels",
          "value": "searchChannels",
          "action": "Search for channels",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/channels",
              "method": "GET"
            }
          },
          "description": "Search for channels directly from the YouTube Niche Finder with AI enhanced data and 30+ filters. Updated in real-time, 24/7."
        },
        {
          "name": "Search Similar Channels",
          "value": "searchChannelsRelated",
          "action": "Search for similar channels",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/channels/related",
              "method": "GET"
            }
          },
          "description": "Search for YouTube channels with related content to another channel"
        },
        {
          "name": "Search Outliers",
          "value": "searchOutliers",
          "action": "Search for outliers",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/outliers",
              "method": "GET"
            }
          },
          "description": "Search for videos directly from the TubeLab Outliers library with AI enhanced data and 30+ filters. Updated in real-time, 24/7."
        },
        {
          "name": "Search Similar Outliers",
          "value": "searchOutliersRelated",
          "action": "Search for similar outliers",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "hits"
                  }
                }
              ]
            },
            "request": {
              "url": "/v1/search/outliers/related",
              "method": "GET"
            }
          },
          "description": "Search for YouTube outliers with related content to another outlier(s)"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "search"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "postScan",
      "options": [
        {
          "name": "Start a Scan",
          "value": "postScan",
          "action": "Start a scan",
          "routing": {
            "request": {
              "url": "/v1/scan",
              "method": "POST"
            }
          },
          "description": "Start a TubeLab scan to search for fresh outliers and channels on any given topic"
        },
        {
          "name": "Get Scan",
          "value": "getScan",
          "action": "Get a scan",
          "routing": {
            "request": {
              "url": "=/v1/scan/{{$parameter[\"id\"]}}",
              "method": "GET"
            }
          },
          "description": "Get the status of a scan and used inputs"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "scan"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getVideoTranscript",
      "options": [
        {
          "name": "Details",
          "value": "getVideoDetails",
          "action": "Get details",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "items"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/video/{{$parameter[\"videoId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetch the details of a video"
        },
        {
          "name": "Transcript",
          "value": "getVideoTranscript",
          "action": "Get transcript",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "items"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/video/transcript/{{$parameter[\"videoId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetches the transcript of a video including timestamps"
        },
        {
          "name": "Comments",
          "value": "getVideoComments",
          "action": "Get comments",
          "routing": {
            "send": {
              "preSend": [
                null
              ]
            },
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "items"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/video/comments/{{$parameter[\"videoId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetch the first 100 comments of a video"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "video"
          ]
        }
      },
      "noDataExpression": true
    },
    {
      "name": "operation",
      "type": "options",
      "default": "getChannelVideos",
      "options": [
        {
          "name": "Get Videos",
          "value": "getChannelVideos",
          "action": "Get videos",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "item"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/channel/videos/{{$parameter[\"channelId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetch the videos of a channel and relevant metrics"
        },
        {
          "name": "Get Shorts",
          "value": "getChannelShorts",
          "action": "Get shorts",
          "routing": {
            "output": {
              "postReceive": [
                {
                  "type": "rootProperty",
                  "properties": {
                    "property": "item"
                  }
                }
              ]
            },
            "request": {
              "url": "=/v1/channel/shorts/{{$parameter[\"channelId\"]}}",
              "method": "GET"
            }
          },
          "description": "Fetches the shorts of a channel and relevant metrics"
        }
      ],
      "displayName": "Operation",
      "displayOptions": {
        "show": {
          "resource": [
            "channel"
          ]
        }
      },
      "noDataExpression": true
    }
  ]

operations:
  [
    {
      "name": "Search Channels",
      "value": "searchChannels",
      "action": "Search for channels",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/channels",
          "method": "GET"
        }
      },
      "description": "Search for channels directly from the YouTube Niche Finder with AI enhanced data and 30+ filters. Updated in real-time, 24/7.",
      "resource": "search"
    },
    {
      "name": "Search Similar Channels",
      "value": "searchChannelsRelated",
      "action": "Search for similar channels",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/channels/related",
          "method": "GET"
        }
      },
      "description": "Search for YouTube channels with related content to another channel",
      "resource": "search"
    },
    {
      "name": "Search Outliers",
      "value": "searchOutliers",
      "action": "Search for outliers",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/outliers",
          "method": "GET"
        }
      },
      "description": "Search for videos directly from the TubeLab Outliers library with AI enhanced data and 30+ filters. Updated in real-time, 24/7.",
      "resource": "search"
    },
    {
      "name": "Search Similar Outliers",
      "value": "searchOutliersRelated",
      "action": "Search for similar outliers",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "hits"
              }
            }
          ]
        },
        "request": {
          "url": "/v1/search/outliers/related",
          "method": "GET"
        }
      },
      "description": "Search for YouTube outliers with related content to another outlier(s)",
      "resource": "search"
    },
    {
      "name": "Start a Scan",
      "value": "postScan",
      "action": "Start a scan",
      "routing": {
        "request": {
          "url": "/v1/scan",
          "method": "POST"
        }
      },
      "description": "Start a TubeLab scan to search for fresh outliers and channels on any given topic",
      "resource": "scan"
    },
    {
      "name": "Get Scan",
      "value": "getScan",
      "action": "Get a scan",
      "routing": {
        "request": {
          "url": "=/v1/scan/{{$parameter[\"id\"]}}",
          "method": "GET"
        }
      },
      "description": "Get the status of a scan and used inputs",
      "resource": "scan"
    },
    {
      "name": "Details",
      "value": "getVideoDetails",
      "action": "Get details",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "items"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/video/{{$parameter[\"videoId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetch the details of a video",
      "resource": "video"
    },
    {
      "name": "Transcript",
      "value": "getVideoTranscript",
      "action": "Get transcript",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "items"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/video/transcript/{{$parameter[\"videoId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetches the transcript of a video including timestamps",
      "resource": "video"
    },
    {
      "name": "Comments",
      "value": "getVideoComments",
      "action": "Get comments",
      "routing": {
        "send": {
          "preSend": [
            null
          ]
        },
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "items"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/video/comments/{{$parameter[\"videoId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetch the first 100 comments of a video",
      "resource": "video"
    },
    {
      "name": "Get Videos",
      "value": "getChannelVideos",
      "action": "Get videos",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "item"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/channel/videos/{{$parameter[\"channelId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetch the videos of a channel and relevant metrics",
      "resource": "channel"
    },
    {
      "name": "Get Shorts",
      "value": "getChannelShorts",
      "action": "Get shorts",
      "routing": {
        "output": {
          "postReceive": [
            {
              "type": "rootProperty",
              "properties": {
                "property": "item"
              }
            }
          ]
        },
        "request": {
          "url": "=/v1/channel/shorts/{{$parameter[\"channelId\"]}}",
          "method": "GET"
        }
      },
      "description": "Fetches the shorts of a channel and relevant metrics",
      "resource": "channel"
    }
  ]

npm_readme:
  # n8n-nodes-tubelab

  This is an n8n community node. It lets you get enhanced YouTube data - including 400K+ trending channels, 4M+ outliers and scan niches in real-time with [TubeLab](https://tubelab.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)
  [Compatibility](#compatibility)
  [Usage](#usage)
  [Resources](#resources)
  [Version history](#version-history)

  ## Installation

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

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

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

  ## Operations

  It supports these TubeLab operations:

  - **Search Outliers**: Search for videos directly from the TubeLab Outliers library with AI enhanced data and 30+ filters. Updated in real-time, 24/7.
  - **Search Similar Outliers**: Search for YouTube outliers with related content to another outlier(s)
  - **Search Channels**: Search for channels directly from the YouTube Niche Finder with AI enhanced data and 30+ filters. Updated in real-time, 24/7.
  - **Search Similar Channels**: Search for YouTube channels with related content to another channel
  - **Get Channel Videos**: Fetch the videos of a channel and relevant metrics (max 100 videos)
  - **Get Channel Shorts**: Fetch the shorts of a channel and relevant metrics (max 100 shorts)
  - **Get Video Details**: Fetch the details of a video
  - **Get Video Transcript**: Fetch the transcript & timestamps of a video
  - **Get Video Comments**: Fetch the first 100 comments of a video
  - **Start a Scan**: Start a TubeLab scan to search for fresh outliers and channels on any given topic
  - **Get a Scan**: Get the status of a scan and used inputs

  ## Credentials

  To use this node, you will need to authenticate with [TubeLab's API](https://tubelab.net/docs/api).

  1. Sign up for a [TubeLab](https://tubelab.net/) account
  2. Go to the [Developers Dashboard](https://tubelab.net/developers) and create an API key
  3. Create new credential in n8n
     - Use TubeLab's node
     - Under Credential to connect with, click Create New Credential
     - Paste API Key

  ## Compatibility

  This node was developed & tested with the `1.112.5` version.

  ## Usage

  Please refer to [TubeLab's Automation documentation](https://tubelab.net/docs/api/automation) with example templates on how to use this node.

  ## Resources

  - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
  - [TubeLab's API Documentation](https://tubelab.net/docs/api)
  - [Sign up for a TubeLab API key](https://tubelab.net)
  - Contact support if you have any issues: [https://tubelab.net/support](https://tubelab.net/support)

  ## Version history

  - 0.4.7 - Remove deprecated `requestWithAuthentication` in favor of `httpRequestWithAuthentication`
  - 0.4.5 - Fix `/channel/videos` endpoint
  - 0.4.3 - Fix query params as expressions compiling
  - 0.4.0 - Add operations `Get Channel Videos`, `Get Channel Shorts`, `Get Video Details`, `Get Video Transcript`, `Get Video Comments`
  - 0.3.3 - Fix Start Scan `findBy` input
  - 0.3.2 - Add "publishedAtFrom" to Outliers Filters
  - 0.3.0 - Fix Webhooks Trigger
  - 0.2.0 - Fix API base URL
  - 0.1.1 - Fix package.json metadata details
  - 0.1.0 - Initial release

  ## Contribution Guidelines

  Refer to the [official documentation](https://docs.n8n.io/integrations/creating-nodes/build/n8n-node/#new).

  Requirements:

  - Node JS
  - Install `n8n-node`: `npm install --global @n8n/node-cli`
  - Run `npm run dev`

ai_documentation_summary:
  {"purpose":"This n8n community node retrieves enhanced YouTube data, including trending channels, outlier videos, and niche scans, using TubeLab's AI-powered analytics.","capabilities":["Search for outlier videos with 30+ filters","Search for similar outlier videos based on related content","Search for channels with 30+ filters","Search for similar channels based on related content","Fetch channel videos with metrics (max 100)","Fetch channel shorts with metrics (max 100)","Retrieve detailed video information","Fetch video transcripts and timestamps","Fetch up to 100 comments per video","Start real-time niche scans for fresh outliers and channels"],"authentication":"API key required (TubeLab API key)","commonUseCases":["Identifying trending YouTube channels in specific niches","Finding viral or outlier videos for content inspiration","Analyzing competitor channels and their performance metrics","Discovering new content opportunities through real-time niche scanning","Extracting video transcripts and comments for sentiment analysis"],"limitations":["Channel videos retrieval is limited to a maximum of 100 videos","Channel shorts retrieval is limited to a maximum of 100 shorts","Video comments retrieval is limited to the first 100 comments","Tested and compatible with n8n version 1.112.5"],"relatedNodes":["n8n-nodes-youtube","n8n-nodes-webhook","n8n-nodes-code"]}


