{
  "workflow": {
    "id": 6428,
    "name": "Price monitoring dashboard with AI component and alerts",
    "views": 886,
    "recentViews": 0,
    "totalViews": 886,
    "createdAt": "2025-07-25T10:55:46.694Z",
    "description": "# Competitor Price Monitoring Dashboard with AI and Real-time Alerts\n\n## 🎯 Target Audience\n- E-commerce managers and pricing analysts\n- Retail business owners monitoring competitor pricing\n- Marketing teams tracking market positioning\n- Product managers analyzing competitive landscape\n- Data analysts conducting pricing intelligence\n- Business strategists making pricing decisions\n\n## 🚀 Problem Statement\nManual competitor price monitoring is inefficient and often leads to missed opportunities or delayed responses to market changes. This template solves the challenge of automatically tracking competitor prices, detecting significant changes, and providing actionable insights for strategic pricing decisions.\n\n## 🔧 How it Works\n\nThis workflow automatically monitors competitor product prices using AI-powered web scraping, analyzes price trends, and sends real-time alerts when significant changes are detected.\n\n### Key Components\n\n1. **Scheduled Trigger** - Runs the workflow at specified intervals to maintain up-to-date price data\n2. **AI-Powered Scraping** - Uses ScrapeGraphAI to intelligently extract pricing information from competitor websites\n3. **Price Analysis Engine** - Processes historical data to detect trends and anomalies\n4. **Alert System** - Sends notifications via Slack and email when price changes exceed thresholds\n5. **Dashboard Integration** - Stores all data in Google Sheets for comprehensive analysis and reporting\n\n## 📊 Google Sheets Column Specifications\n\nThe template creates the following columns in your Google Sheets:\n\n| Column | Data Type | Description | Example |\n|--------|-----------|-------------|---------|\n| **timestamp** | DateTime | When the price was recorded | \"2024-01-15T10:30:00Z\" |\n| **competitor_name** | String | Name of the competitor | \"Amazon\" |\n| **product_name** | String | Product name and model | \"iPhone 15 Pro 128GB\" |\n| **current_price** | Number | Current price in USD | 999.00 |\n| **previous_price** | Number | Previous recorded price | 1099.00 |\n| **price_change** | Number | Absolute price difference | -100.00 |\n| **price_change_percent** | Number | Percentage change | -9.09 |\n| **product_url** | URL | Direct link to product page | \"https://amazon.com/iphone15\" |\n| **alert_triggered** | Boolean | Whether alert was sent | true |\n| **trend_direction** | String | Price trend analysis | \"Decreasing\" |\n\n## 🛠️ Setup Instructions\n\n**Estimated setup time: 15-20 minutes**\n\n### Prerequisites\n- n8n instance with community nodes enabled\n- ScrapeGraphAI API account and credentials\n- Google Sheets account with API access\n- Slack workspace for notifications (optional)\n- Email service for alerts (optional)\n\n### Step-by-Step Configuration\n\n#### 1. Install Community Nodes\n```bash\n# Install required community nodes\nnpm install n8n-nodes-scrapegraphai\nnpm install n8n-nodes-slack\n```\n\n#### 2. Configure ScrapeGraphAI Credentials\n- Navigate to Credentials in your n8n instance\n- Add new ScrapeGraphAI API credentials\n- Enter your API key from ScrapeGraphAI dashboard\n- Test the connection to ensure it's working\n\n#### 3. Set up Google Sheets Connection\n- Add Google Sheets OAuth2 credentials\n- Grant necessary permissions for spreadsheet access\n- Create a new spreadsheet for price monitoring data\n- Configure the sheet name (default: \"Price Monitoring\")\n\n#### 4. Configure Competitor URLs\n- Update the `websiteUrl` parameters in ScrapeGraphAI nodes\n- Add URLs for each competitor you want to monitor\n- Customize the user prompt to extract specific pricing data\n- Set appropriate price thresholds for alerts\n\n#### 5. Set up Notification Channels\n- Configure Slack webhook or API credentials\n- Set up email service credentials (SendGrid, SMTP, etc.)\n- Define alert thresholds and notification preferences\n- Test notification delivery\n\n#### 6. Configure Schedule Trigger\n- Set monitoring frequency (hourly, daily, etc.)\n- Choose appropriate time zones for your business hours\n- Consider competitor website rate limits\n\n#### 7. Test and Validate\n- Run the workflow manually to verify all connections\n- Check Google Sheets for proper data formatting\n- Test alert notifications with sample data\n\n## 🔄 Workflow Customization Options\n\n### Modify Monitoring Targets\n- Add or remove competitor websites\n- Change product categories or specific products\n- Adjust monitoring frequency based on market volatility\n\n### Extend Price Analysis\n- Add more sophisticated trend analysis algorithms\n- Implement price prediction models\n- Include competitor inventory and availability tracking\n\n### Customize Alert System\n- Set different thresholds for different product categories\n- Create tiered alert systems (info, warning, critical)\n- Add SMS notifications for urgent price changes\n\n### Output Customization\n- Add data visualization and reporting features\n- Implement price history charts and graphs\n- Create executive dashboards with key metrics\n\n## 📈 Use Cases\n\n- **Dynamic Pricing**: Adjust your prices based on competitor movements\n- **Market Intelligence**: Understand competitor pricing strategies\n- **Promotion Planning**: Time your promotions based on competitor actions\n- **Inventory Management**: Optimize stock levels based on market conditions\n- **Customer Communication**: Proactively inform customers about price changes\n\n## 🚨 Important Notes\n\n- Respect competitor websites' terms of service and robots.txt\n- Implement appropriate delays between requests to avoid rate limiting\n- Regularly review and update your monitoring parameters\n- Monitor API usage to manage costs effectively\n- Keep your credentials secure and rotate them regularly\n- Consider legal implications of automated price monitoring\n\n## 🔧 Troubleshooting\n\n**Common Issues:**\n- ScrapeGraphAI connection errors: Verify API key and account status\n- Google Sheets permission errors: Check OAuth2 scope and permissions\n- Price parsing errors: Review the Code node's JavaScript logic\n- Rate limiting: Adjust monitoring frequency and implement delays\n- Alert delivery failures: Check notification service credentials\n\n**Support Resources:**\n- ScrapeGraphAI documentation and API reference\n- n8n community forums for workflow assistance\n- Google Sheets API documentation for advanced configurations\n- Slack API documentation for notification setup\n",
    "workflow": {
      "id": "CompetitorPriceMonitoring2024",
      "meta": {
        "instanceId": "competitor-price-monitoring-instance",
        "templateCredsSetupCompleted": false
      },
      "name": "Competitor Price Monitoring",
      "tags": [
        "price-monitoring",
        "competitor-analysis",
        "e-commerce",
        "google-sheets",
        "automation",
        "alerts"
      ],
      "nodes": [
        {
          "id": "daily-price-trigger",
          "name": "Daily Price Check Trigger",
          "type": "n8n-nodes-base.scheduleTrigger",
          "position": [
            400,
            700
          ],
          "parameters": {
            "rule": {
              "interval": [
                {
                  "field": "hours",
                  "hoursInterval": 24
                }
              ]
            }
          },
          "typeVersion": 1.2
        },
        {
          "id": "manual-price-trigger",
          "name": "Manual Price Check Webhook",
          "type": "n8n-nodes-base.webhook",
          "position": [
            400,
            500
          ],
          "webhookId": "price-monitoring-webhook",
          "parameters": {
            "path": "price-check-webhook",
            "options": {
              "noResponseBody": false
            },
            "httpMethod": "GET"
          },
          "typeVersion": 1.1
        },
        {
          "id": "amazon-scraper",
          "name": "Amazon Price Scraper",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            800,
            400
          ],
          "parameters": {
            "url": "https://www.amazon.com/s?k=wireless+headphones",
            "options": {
              "headers": {
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
              }
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "bestbuy-scraper",
          "name": "Best Buy Price Scraper",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            800,
            600
          ],
          "parameters": {
            "url": "https://www.bestbuy.com/site/searchpage.jsp?st=wireless+headphones",
            "options": {
              "headers": {
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
              }
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "target-scraper",
          "name": "Target Price Scraper",
          "type": "n8n-nodes-base.httpRequest",
          "position": [
            800,
            800
          ],
          "parameters": {
            "url": "https://www.target.com/s?searchTerm=wireless+headphones",
            "options": {
              "headers": {
                "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
              }
            }
          },
          "typeVersion": 4.2
        },
        {
          "id": "scrapegraph-ai-prices",
          "name": "AI Price Data Extractor",
          "type": "n8n-nodes-scrapegraphai.scrapegraphAi",
          "position": [
            1200,
            600
          ],
          "parameters": {
            "userPrompt": "Extract product pricing information from this e-commerce website. Focus on wireless headphones and similar audio products. Use this schema for response: { \"request_id\": \"unique_id\", \"status\": \"completed\", \"website_url\": \"source_url\", \"products\": [{ \"product_name\": \"Product Title\", \"brand\": \"Brand Name\", \"current_price\": 99.99, \"original_price\": 129.99, \"discount_percentage\": 23, \"currency\": \"USD\", \"product_url\": \"https://product-page-url.com\", \"image_url\": \"https://image-url.com\", \"rating\": 4.5, \"review_count\": 1250, \"availability\": \"In Stock\", \"shipping_info\": \"Free shipping\", \"prime_eligible\": true, \"category\": \"Electronics/Audio\", \"model_number\": \"WH-1000XM4\", \"key_features\": [\"Noise Canceling\", \"30hr Battery\", \"Quick Charge\"] }] }",
            "websiteUrl": "={{ $json.url || 'https://www.amazon.com/s?k=wireless+headphones' }}"
          },
          "credentials": {
            "scrapegraphAIApi": {
              "id": "",
              "name": ""
            }
          },
          "typeVersion": 1
        },
        {
          "id": "price-analysis-code",
          "name": "Price Analysis & Intelligence",
          "type": "n8n-nodes-base.code",
          "notes": "Analyzes pricing data,\ndetects changes, and\ngenerates competitive intelligence",
          "position": [
            1600,
            600
          ],
          "parameters": {
            "jsCode": "// Process extracted product data and analyze price changes\nconst inputData = $input.all();\nconst processedProducts = [];\n\n// Configuration for tracking specific products/brands\nconst trackingConfig = {\n  targetBrands: ['Sony', 'Apple', 'Bose', 'Sennheiser', 'Audio-Technica', 'Beats'],\n  priceThresholds: {\n    significant_drop: 0.15, // 15% price drop\n    significant_increase: 0.10, // 10% price increase\n    discount_threshold: 0.20 // 20%+ discount worth noting\n  },\n  competitors: {\n    'Amazon': { weight: 0.4, priority: 'High' },\n    'Best Buy': { weight: 0.3, priority: 'Medium' },\n    'Target': { weight: 0.3, priority: 'Medium' }\n  }\n};\n\n// Function to calculate price insights\nfunction analyzePricing(product, source) {\n  const insights = {\n    is_on_sale: false,\n    discount_level: 'none',\n    price_competitiveness: 'unknown',\n    value_score: 0\n  };\n  \n  // Check if product is on sale\n  if (product.original_price && product.current_price < product.original_price) {\n    insights.is_on_sale = true;\n    const discountPercent = product.discount_percentage || \n      ((product.original_price - product.current_price) / product.original_price * 100);\n    \n    if (discountPercent >= 30) insights.discount_level = 'high';\n    else if (discountPercent >= 15) insights.discount_level = 'moderate';\n    else insights.discount_level = 'low';\n  }\n  \n  // Calculate value score (price vs rating)\n  if (product.rating && product.current_price) {\n    insights.value_score = (product.rating * 20) / product.current_price;\n  }\n  \n  return insights;\n}\n\n// Function to detect significant changes (would compare with historical data)\nfunction detectPriceChanges(product, source) {\n  // In a real implementation, this would compare with previous prices from database\n  // For now, we'll simulate some logic based on discount levels\n  const changes = {\n    price_direction: 'stable',\n    change_significance: 'none',\n    alert_worthy: false,\n    change_percentage: 0\n  };\n  \n  // Simulate price change detection based on discount percentage\n  if (product.discount_percentage) {\n    changes.price_direction = 'down';\n    changes.change_percentage = -product.discount_percentage;\n    \n    if (product.discount_percentage >= trackingConfig.priceThresholds.significant_drop * 100) {\n      changes.change_significance = 'high';\n      changes.alert_worthy = true;\n    } else if (product.discount_percentage >= 10) {\n      changes.change_significance = 'moderate';\n      changes.alert_worthy = true;\n    }\n  }\n  \n  return changes;\n}\n\n// Function to generate competitive intelligence\nfunction generateCompetitiveIntel(product, source) {\n  return {\n    market_position: product.current_price < 100 ? 'budget' : \n                    product.current_price < 300 ? 'mid-range' : 'premium',\n    brand_strength: trackingConfig.targetBrands.includes(product.brand) ? 'strong' : 'moderate',\n    source_reliability: trackingConfig.competitors[source]?.weight || 0.2,\n    customer_satisfaction: product.rating >= 4.0 ? 'high' : \n                          product.rating >= 3.0 ? 'moderate' : 'low'\n  };\n}\n\n// Process each input (multiple HTTP requests from different sources)\ninputData.forEach(input => {\n  const sourceUrl = input.json.website_url || 'unknown';\n  const sourceName = sourceUrl.includes('amazon') ? 'Amazon' :\n                    sourceUrl.includes('bestbuy') ? 'Best Buy' :\n                    sourceUrl.includes('target') ? 'Target' : 'Unknown';\n  \n  if (input.json.result && input.json.result.products) {\n    input.json.result.products.forEach(product => {\n      // Only process products from target brands or above certain rating\n      if (trackingConfig.targetBrands.includes(product.brand) || \n          (product.rating && product.rating >= 4.0)) {\n        \n        const pricingInsights = analyzePricing(product, sourceName);\n        const priceChanges = detectPriceChanges(product, sourceName);\n        const competitiveIntel = generateCompetitiveIntel(product, sourceName);\n        \n        processedProducts.push({\n          json: {\n            // Product Identification\n            product_id: `${sourceName.toLowerCase()}_${product.model_number || Date.now()}_${Math.random().toString(36).substr(2, 5)}`,\n            product_name: product.product_name,\n            brand: product.brand,\n            model_number: product.model_number,\n            category: product.category,\n            \n            // Pricing Data\n            current_price: product.current_price,\n            original_price: product.original_price,\n            discount_percentage: product.discount_percentage,\n            currency: product.currency || 'USD',\n            \n            // Source Information\n            source: sourceName,\n            source_url: sourceUrl,\n            product_url: product.product_url,\n            source_priority: trackingConfig.competitors[sourceName]?.priority || 'Low',\n            \n            // Product Quality Metrics\n            rating: product.rating,\n            review_count: product.review_count,\n            availability: product.availability,\n            shipping_info: product.shipping_info,\n            \n            // Pricing Insights\n            is_on_sale: pricingInsights.is_on_sale,\n            discount_level: pricingInsights.discount_level,\n            value_score: Math.round(pricingInsights.value_score * 100) / 100,\n            \n            // Price Change Analysis\n            price_direction: priceChanges.price_direction,\n            change_significance: priceChanges.change_significance,\n            alert_worthy: priceChanges.alert_worthy,\n            change_percentage: priceChanges.change_percentage,\n            \n            // Competitive Intelligence\n            market_position: competitiveIntel.market_position,\n            brand_strength: competitiveIntel.brand_strength,\n            customer_satisfaction: competitiveIntel.customer_satisfaction,\n            \n            // Metadata\n            scraped_at: new Date().toISOString(),\n            tracking_priority: priceChanges.alert_worthy ? 'High' : \n                             pricingInsights.is_on_sale ? 'Medium' : 'Low',\n            \n            // Features for analysis\n            key_features: product.key_features || [],\n            image_url: product.image_url\n          }\n        });\n      }\n    });\n  }\n});\n\nreturn processedProducts;"
          },
          "notesInFlow": true,
          "typeVersion": 2
        },
        {
          "id": "google-sheets-storage",
          "name": "Google Sheets Price Log",
          "type": "n8n-nodes-base.googleSheets",
          "position": [
            2000,
            600
          ],
          "parameters": {
            "columns": {
              "value": {},
              "schema": [
                {
                  "id": "product_id",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Product ID",
                  "defaultMatch": true,
                  "canBeUsedToMatch": true
                },
                {
                  "id": "product_name",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Product Name",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "brand",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Brand",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "current_price",
                  "type": "number",
                  "display": true,
                  "required": false,
                  "displayName": "Current Price",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "original_price",
                  "type": "number",
                  "display": true,
                  "required": false,
                  "displayName": "Original Price",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "discount_percentage",
                  "type": "number",
                  "display": true,
                  "required": false,
                  "displayName": "Discount %",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "source",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Source",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "rating",
                  "type": "number",
                  "display": true,
                  "required": false,
                  "displayName": "Rating",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "availability",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Availability",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "is_on_sale",
                  "type": "boolean",
                  "display": true,
                  "required": false,
                  "displayName": "On Sale",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "market_position",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Market Position",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "tracking_priority",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Priority",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "scraped_at",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Scraped At",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                },
                {
                  "id": "product_url",
                  "type": "string",
                  "display": true,
                  "required": false,
                  "displayName": "Product URL",
                  "defaultMatch": false,
                  "canBeUsedToMatch": false
                }
              ],
              "mappingMode": "autoMapInputData",
              "matchingColumns": [
                "product_id"
              ]
            },
            "options": {},
            "operation": "appendOrUpdate",
            "sheetName": {
              "__rl": true,
              "mode": "list",
              "value": "gid=0",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/edit#gid=0",
              "cachedResultName": "Price Data"
            },
            "documentId": {
              "__rl": true,
              "mode": "list",
              "value": "1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
              "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/edit#gid=0",
              "cachedResultName": "Price Monitoring Sheet"
            },
            "authentication": "serviceAccount"
          },
          "credentials": {
            "googleSheetsOAuth2Api": {
              "id": "",
              "name": ""
            }
          },
          "typeVersion": 4.4
        },
        {
          "id": "price-alert-filter",
          "name": "Price Change Alert Filter",
          "type": "n8n-nodes-base.if",
          "position": [
            1600,
            400
          ],
          "parameters": {
            "options": {},
            "conditions": {
              "options": {
                "leftValue": "",
                "caseSensitive": true,
                "typeValidation": "strict"
              },
              "conditions": [
                {
                  "id": "price-drop-alert",
                  "operator": {
                    "type": "boolean",
                    "operation": "true"
                  },
                  "leftValue": "={{ $json.alert_worthy }}",
                  "rightValue": true
                },
                {
                  "id": "high-discount-alert",
                  "operator": {
                    "type": "number",
                    "operation": "gte"
                  },
                  "leftValue": "={{ $json.discount_percentage }}",
                  "rightValue": 20
                },
                {
                  "id": "new-low-price",
                  "operator": {
                    "type": "string",
                    "operation": "equals"
                  },
                  "leftValue": "={{ $json.change_significance }}",
                  "rightValue": "high"
                }
              ],
              "combineOperation": "any"
            }
          },
          "typeVersion": 2
        },
        {
          "id": "slack-price-alert",
          "name": "Slack Price Alert",
          "type": "n8n-nodes-base.slack",
          "position": [
            2000,
            400
          ],
          "parameters": {
            "text": "💰 **PRICE ALERT** 💰\n\n**{{ $json.product_name }}** by {{ $json.brand }}\n\n💸 **Current Price**: ${{ $json.current_price }}\n{% if $json.original_price %}🏷️ **Original Price**: ${{ $json.original_price }}\n✨ **Discount**: {{ $json.discount_percentage }}% OFF{% endif %}\n\n**Source**: {{ $json.source }}\n{% if $json.rating %}⭐ **Rating**: {{ $json.rating }}/5 ({{ $json.review_count }} reviews){% endif %}\n📦 **Availability**: {{ $json.availability }}\n\n**Why this matters:**\n{% if $json.change_significance == 'high' %}🚨 **SIGNIFICANT PRICE DROP** - This is a major price change!\n{% elif $json.discount_percentage >= 25 %}🔥 **HUGE DISCOUNT** - Over 25% off!\n{% elif $json.is_on_sale %}💯 **ON SALE** - Great time to buy!\n{% endif %}\n\n**Market Intelligence:**\n📊 Market Position: {{ $json.market_position | title }}\n🎯 Customer Satisfaction: {{ $json.customer_satisfaction | title }}\n💎 Value Score: {{ $json.value_score }}/10\n\n🛒 [**Buy Now**]({{ $json.product_url }})\n\n*Priority: {{ $json.tracking_priority }} | Tracked at {{ $json.scraped_at | date('short') }}*",
            "select": "channel",
            "channelId": {
              "__rl": true,
              "mode": "name",
              "value": "C1234567890"
            },
            "otherOptions": {
              "includeLinkPreviews": true
            },
            "authentication": "oAuth2"
          },
          "credentials": {
            "slackOAuth2Api": {
              "id": "",
              "name": ""
            }
          },
          "typeVersion": 2.2
        },
        {
          "id": "sticky-triggers",
          "name": "Sticky Note - Triggers",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            280,
            250
          ],
          "parameters": {
            "color": 4,
            "width": 350,
            "height": 450,
            "content": "# Step 1: Price Monitoring Triggers ⏰\n\nDual trigger system for comprehensive price tracking:\n\n## Daily Schedule Trigger\n- **Frequency**: Every 24 hours\n- **Purpose**: Regular automated price monitoring\n- **Timing**: Customizable (recommended: early morning)\n\n## Manual Webhook Trigger  \n- **Purpose**: On-demand price checks\n- **Usage**: External systems or manual triggers\n- **Endpoint**: `/price-check-webhook`\n\n## Benefits\n- Consistent daily monitoring\n- Flexible manual triggers\n- Real-time and scheduled checks\n- Comprehensive coverage"
          },
          "typeVersion": 1
        },
        {
          "id": "sticky-scraping",
          "name": "Sticky Note - Scraping",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            680,
            150
          ],
          "parameters": {
            "color": 4,
            "width": 350,
            "height": 450,
            "content": "# Step 2: Multi-Platform Scraping 🛒\n\nParallel price scraping from major retailers:\n\n## Covered Platforms\n- **Amazon**: Largest product selection\n- **Best Buy**: Electronics specialist\n- **Target**: Retail competitor pricing\n\n## Scraping Features\n- Custom User-Agent headers\n- Parallel processing for speed\n- Error handling and retries\n- Anti-detection measures\n\n## Extensible Design\n- Easy to add new retailers\n- Category-specific searches\n- Custom search parameters\n- Rate limiting compliance"
          },
          "typeVersion": 1
        },
        {
          "id": "sticky-ai-extraction",
          "name": "Sticky Note - AI Extraction",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1080,
            150
          ],
          "parameters": {
            "color": 4,
            "width": 350,
            "height": 450,
            "content": "# Step 3: AI Price Data Extraction 🤖\n\nScrapeGraphAI intelligently extracts product pricing:\n\n## Smart Extraction\n- **Price Detection**: Current and original prices\n- **Product Details**: Names, brands, models\n- **Quality Metrics**: Ratings and reviews\n- **Availability**: Stock status and shipping\n\n## Rich Data Points\n- Discount percentages\n- Product specifications\n- Customer ratings\n- Shipping information\n- Prime eligibility\n- Product images\n\n## AI Advantages\n- Adapts to different site layouts\n- Handles dynamic content\n- High accuracy extraction\n- Structured JSON output"
          },
          "typeVersion": 1
        },
        {
          "id": "sticky-analysis",
          "name": "Sticky Note - Analysis",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1480,
            150
          ],
          "parameters": {
            "color": 4,
            "width": 350,
            "height": 450,
            "content": "# Step 4: Price Analysis & Intelligence 📊\n\nAdvanced analysis of extracted pricing data:\n\n## Price Change Detection\n- **Trend Analysis**: Up, down, or stable\n- **Significance**: High, moderate, or low impact\n- **Alert Triggers**: Configurable thresholds\n- **Historical Comparison**: vs previous prices\n\n## Competitive Intelligence\n- **Market Position**: Budget, mid-range, premium\n- **Value Scoring**: Price vs quality ratio\n- **Brand Strength**: Recognition and trust\n- **Customer Satisfaction**: Review analysis\n\n## Smart Prioritization\n- High: Significant price drops\n- Medium: Regular sales and promotions\n- Low: Minor fluctuations"
          },
          "typeVersion": 1
        },
        {
          "id": "sticky-storage-alerts",
          "name": "Sticky Note - Storage & Alerts",
          "type": "n8n-nodes-base.stickyNote",
          "position": [
            1880,
            150
          ],
          "parameters": {
            "color": 4,
            "width": 350,
            "height": 450,
            "content": "# Step 5: Data Storage & Alerts 💾\n\nStructured logging and intelligent notifications:\n\n## Google Sheets Integration\n- **Complete Price History**: All tracked products\n- **Rich Metadata**: Analysis results and insights\n- **Easy Access**: Web interface and formulas\n- **Export Ready**: Charts and pivot tables\n\n## Smart Slack Alerts\n- **Significant Price Drops**: Immediate notifications\n- **High Discounts**: 20%+ savings alerts\n- **New Low Prices**: Historical price tracking\n- **Rich Formatting**: Actionable information\n\n## Analytics Features\n- Historical price trends\n- Competitor comparison\n- Market position tracking\n- ROI on price monitoring"
          },
          "typeVersion": 1
        }
      ],
      "active": false,
      "pinData": {},
      "settings": {
        "executionOrder": "v1"
      },
      "versionId": "price-monitoring-v1.0",
      "connections": {
        "Amazon Price Scraper": {
          "main": [
            [
              {
                "node": "AI Price Data Extractor",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Target Price Scraper": {
          "main": [
            [
              {
                "node": "AI Price Data Extractor",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Best Buy Price Scraper": {
          "main": [
            [
              {
                "node": "AI Price Data Extractor",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "AI Price Data Extractor": {
          "main": [
            [
              {
                "node": "Price Analysis & Intelligence",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Daily Price Check Trigger": {
          "main": [
            [
              {
                "node": "Amazon Price Scraper",
                "type": "main",
                "index": 0
              },
              {
                "node": "Best Buy Price Scraper",
                "type": "main",
                "index": 0
              },
              {
                "node": "Target Price Scraper",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Price Change Alert Filter": {
          "main": [
            [
              {
                "node": "Slack Price Alert",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Manual Price Check Webhook": {
          "main": [
            [
              {
                "node": "Amazon Price Scraper",
                "type": "main",
                "index": 0
              },
              {
                "node": "Best Buy Price Scraper",
                "type": "main",
                "index": 0
              },
              {
                "node": "Target Price Scraper",
                "type": "main",
                "index": 0
              }
            ]
          ]
        },
        "Price Analysis & Intelligence": {
          "main": [
            [
              {
                "node": "Google Sheets Price Log",
                "type": "main",
                "index": 0
              },
              {
                "node": "Price Change Alert Filter",
                "type": "main",
                "index": 0
              }
            ]
          ]
        }
      }
    },
    "lastUpdatedBy": 29,
    "workflowInfo": {
      "nodeCount": 15,
      "nodeTypes": {
        "n8n-nodes-base.if": {
          "count": 1
        },
        "n8n-nodes-base.code": {
          "count": 1
        },
        "n8n-nodes-base.slack": {
          "count": 1
        },
        "n8n-nodes-base.webhook": {
          "count": 1
        },
        "n8n-nodes-base.stickyNote": {
          "count": 5
        },
        "n8n-nodes-base.httpRequest": {
          "count": 3
        },
        "n8n-nodes-base.googleSheets": {
          "count": 1
        },
        "n8n-nodes-base.scheduleTrigger": {
          "count": 1
        },
        "n8n-nodes-scrapegraphai.scrapegraphAi": {
          "count": 1
        }
      }
    },
    "status": "published",
    "user": {
      "name": "vinci-king-01",
      "username": "vinci-king-01",
      "bio": "",
      "verified": true,
      "links": [
        "https://www.linkedin.com/in/marco-vinciguerra-7ba365242/"
      ],
      "avatar": "https://gravatar.com/avatar/d939eeef03a5fcb5df08bee8196f12ccb248c38209487414e419032004f0c014?r=pg&d=retro&size=200"
    },
    "nodes": [
      {
        "id": 18,
        "icon": "file:googleSheets.svg",
        "name": "n8n-nodes-base.googleSheets",
        "codex": {
          "data": {
            "alias": [
              "CSV",
              "Sheet",
              "Spreadsheet",
              "GS"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/",
                  "icon": "❤️",
                  "label": "Love at first sight: Ricardo’s n8n journey"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/",
                  "icon": "🎫",
                  "label": "Supercharging your conference registration process with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/",
                  "icon": "⏲",
                  "label": "Creating triggers for n8n workflows using polling"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/",
                  "icon": "📈",
                  "label": "Migrating Community Metrics to Orbit using n8n"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/your-business-doesnt-need-you-to-operate/",
                  "icon": " 🖥️",
                  "label": "Hey founders! Your business doesn't need you to operate"
                },
                {
                  "url": "https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/",
                  "icon": "🍔",
                  "label": "How Honest Burgers Use Automation to Save $100k per year"
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"
                }
              ]
            },
            "categories": [
              "Data & Storage",
              "Productivity"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"input\",\"output\"]",
        "defaults": {
          "name": "Google Sheets"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="
        },
        "displayName": "Google Sheets",
        "typeVersion": 5,
        "nodeCategories": [
          {
            "id": 3,
            "name": "Data & Storage"
          },
          {
            "id": 4,
            "name": "Productivity"
          }
        ]
      },
      {
        "id": 19,
        "icon": "file:httprequest.svg",
        "name": "n8n-nodes-base.httpRequest",
        "codex": {
          "data": {
            "alias": [
              "API",
              "Request",
              "URL",
              "Build",
              "cURL"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/",
                  "icon": "📈",
                  "label": "Automatically pulling and visualizing data with n8n"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/",
                  "icon": "✍️",
                  "label": "Learn how to automatically cross-post your content with n8n"
                },
                {
                  "url": "https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/",
                  "icon": "🧾",
                  "label": "Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/",
                  "icon": " 🪢",
                  "label": "What are APIs and how to use them with no code"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/world-poetry-day-workflow/",
                  "icon": "📜",
                  "label": "Celebrating World Poetry Day with a daily poem in Telegram"
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/",
                  "icon": "🎨",
                  "label": "Automate Designs with Bannerbear and n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/",
                  "icon": "📱",
                  "label": "Building an expense tracking app in 10 minutes"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/",
                  "icon": "🧰",
                  "label": "How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/",
                  "icon": "🦄",
                  "label": "Learn how to use webhooks with Mattermost slash commands"
                },
                {
                  "url": "https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/",
                  "icon": "📈",
                  "label": "How a Membership Development Manager automates his work and investments"
                },
                {
                  "url": "https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/",
                  "icon": "📈",
                  "label": "A low-code bitcoin ticker built with QuestDB and n8n.io"
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                },
                {
                  "url": "https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/",
                  "icon": "🤟",
                  "label": "Creating scheduled text affirmations with n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "HTTP Request",
          "color": "#0004F5"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="
        },
        "displayName": "HTTP Request",
        "typeVersion": 4,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 20,
        "icon": "fa:map-signs",
        "name": "n8n-nodes-base.if",
        "codex": {
          "data": {
            "alias": [
              "Router",
              "Filter",
              "Condition",
              "Logic",
              "Boolean",
              "Branch"
            ],
            "details": "The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.",
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/",
                  "icon": "🏭",
                  "label": "Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"
                },
                {
                  "url": "https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/",
                  "icon": "☀️",
                  "label": "2021: The Year to Automate the New You with n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/",
                  "icon": "🧬",
                  "label": "Why business process automation with n8n can change your daily life"
                },
                {
                  "url": "https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/",
                  "icon": "🤬",
                  "label": "Create a toxic language detector for Telegram in 4 step"
                },
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/automate-google-apps-for-productivity/",
                  "icon": "💡",
                  "label": "15 Google apps you can combine and automate to increase productivity"
                },
                {
                  "url": "https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/",
                  "icon": "🏷️",
                  "label": "How to automatically manage contributions to open-source projects"
                },
                {
                  "url": "https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/",
                  "icon": " 🕸️",
                  "label": "How uProc scraped a multi-page website with a low-code workflow"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/",
                  "icon": "🙌",
                  "label": "Sending Automated Congratulations with Google Sheets, Twilio, and n8n "
                },
                {
                  "url": "https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/",
                  "icon": "🎡",
                  "label": "How to set up a no-code CI/CD pipeline with GitHub and TravisCI"
                },
                {
                  "url": "https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/",
                  "icon": "🎖",
                  "label": "Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"
                },
                {
                  "url": "https://n8n.io/blog/aws-workflow-automation/",
                  "label": "7 no-code workflow automations for Amazon Web Services"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Flow"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "If",
          "color": "#408000"
        },
        "iconData": {
          "icon": "map-signs",
          "type": "icon"
        },
        "displayName": "If",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 40,
        "icon": "file:slack.svg",
        "name": "n8n-nodes-base.slack",
        "codex": {
          "data": {
            "alias": [
              "human",
              "form",
              "wait",
              "hitl",
              "approval"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/no-code-ecommerce-workflow-automations/",
                  "icon": "store",
                  "label": "6 e-commerce workflows to power up your Shopify s"
                },
                {
                  "url": "https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/",
                  "icon": "⚙️",
                  "label": "Automate your data processing pipeline in 9 steps"
                },
                {
                  "url": "https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/",
                  "icon": "👥",
                  "label": "How to get started with CRM automation (with 3 no-code workflow ideas"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/build-your-own-virtual-assistant-with-n8n-a-step-by-step-guide/",
                  "icon": "👦",
                  "label": "Build your own virtual assistant with n8n: A step by step guide"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/automations-for-activists/",
                  "icon": "✨",
                  "label": "How Common Knowledge use workflow automation for activism"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.slack/"
                }
              ],
              "credentialDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/credentials/slack/"
                }
              ]
            },
            "categories": [
              "Communication",
              "HITL"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "HITL": [
                "Human in the Loop"
              ]
            }
          }
        },
        "group": "[\"output\"]",
        "defaults": {
          "name": "Slack"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBmaWxsPSIjZmZmIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIHN0cm9rZT0iIzAwMCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiB2aWV3Qm94PSIwIDAgMTUwLjg1MiAxNTAuODUyIj48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIuOTI2IiB5PSIuOTI2Ii8+PHN5bWJvbCBpZD0iYSIgb3ZlcmZsb3c9InZpc2libGUiPjxnIHN0cm9rZS13aWR0aD0iMS44NTIiPjxwYXRoIGZpbGw9IiNlMDFlNWEiIHN0cm9rZT0iI2UwMWU1YSIgZD0iTTQwLjc0MSA5My41NWMwLTguNzM1IDYuNjA3LTE1Ljc3MiAxNC44MTUtMTUuNzcyczE0LjgxNSA3LjAzNyAxNC44MTUgMTUuNzcydjM4LjgyNGMwIDguNzM3LTYuNjA3IDE1Ljc3NC0xNC44MTUgMTUuNzc0cy0xNC44MTUtNy4wMzctMTQuODE1LTE1Ljc3MnoiLz48cGF0aCBmaWxsPSIjZWNiMjJkIiBzdHJva2U9IiNlY2IyMmQiIGQ9Ik05My41NSAxMDcuNDA4Yy04LjczNSAwLTE1Ljc3Mi02LjYwNy0xNS43NzItMTQuODE1czcuMDM3LTE0LjgxNSAxNS43NzItMTQuODE1aDM4LjgyNmM4LjczNSAwIDE1Ljc3MiA2LjYwNyAxNS43NzIgMTQuODE1cy03LjAzNyAxNC44MTUtMTUuNzcyIDE0LjgxNXoiLz48cGF0aCBmaWxsPSIjMmZiNjdjIiBzdHJva2U9IiMyZmI2N2MiIGQ9Ik03Ny43NzggMTUuNzcyQzc3Ljc3OCA3LjAzNyA4NC4zODUgMCA5Mi41OTMgMHMxNC44MTUgNy4wMzcgMTQuODE1IDE1Ljc3MnYzOC44MjZjMCA4LjczNS02LjYwNyAxNS43NzItMTQuODE1IDE1Ljc3MnMtMTQuODE1LTcuMDM3LTE0LjgxNS0xNS43NzJ6Ii8+PHBhdGggZmlsbD0iIzM2YzVmMSIgc3Ryb2tlPSIjMzZjNWYxIiBkPSJNMTUuNzcyIDcwLjM3MUM3LjAzNyA3MC4zNzEgMCA2My43NjMgMCA1NS41NTZzNy4wMzctMTQuODE1IDE1Ljc3Mi0xNC44MTVoMzguODI2YzguNzM1IDAgMTUuNzcyIDYuNjA3IDE1Ljc3MiAxNC44MTVzLTcuMDM3IDE0LjgxNS0xNS43NzIgMTQuODE1eiIvPjxnIHN0cm9rZS1saW5lam9pbj0ibWl0ZXIiPjxwYXRoIGZpbGw9IiNlY2IyMmQiIHN0cm9rZT0iI2VjYjIyZCIgZD0iTTc3Ljc3OCAxMzMuMzMzYzAgOC4yMDggNi42MDcgMTQuODE1IDE0LjgxNSAxNC44MTVzMTQuODE1LTYuNjA3IDE0LjgxNS0xNC44MTUtNi42MDctMTQuODE1LTE0LjgxNS0xNC44MTVINzcuNzc4eiIvPjxwYXRoIGZpbGw9IiMyZmI2N2MiIHN0cm9rZT0iIzJmYjY3YyIgZD0iTTEzMy4zMzQgNzAuMzcxaC0xNC44MTVWNTUuNTU2YzAtOC4yMDcgNi42MDctMTQuODE1IDE0LjgxNS0xNC44MTVzMTQuODE1IDYuNjA3IDE0LjgxNSAxNC44MTUtNi42MDcgMTQuODE1LTE0LjgxNSAxNC44MTV6Ii8+PHBhdGggZmlsbD0iI2UwMWU1YSIgc3Ryb2tlPSIjZTAxZTVhIiBkPSJNMTQuODE1IDc3Ljc3OEgyOS42M3YxNC44MTVjMCA4LjIwNy02LjYwNyAxNC44MTUtMTQuODE1IDE0LjgxNVMwIDEwMC44IDAgOTIuNTkzczYuNjA3LTE0LjgxNSAxNC44MTUtMTQuODE1eiIvPjxwYXRoIGZpbGw9IiMzNmM1ZjEiIHN0cm9rZT0iIzM2YzVmMSIgZD0iTTcwLjM3MSAxNC44MTVWMjkuNjNINTUuNTU2Yy04LjIwNyAwLTE0LjgxNS02LjYwNy0xNC44MTUtMTQuODE1UzQ3LjM0OCAwIDU1LjU1NiAwczE0LjgxNSA2LjYwNyAxNC44MTUgMTQuODE1eiIvPjwvZz48L2c+PC9zeW1ib2w+PC9zdmc+"
        },
        "displayName": "Slack",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 6,
            "name": "Communication"
          },
          {
            "id": 28,
            "name": "HITL"
          }
        ]
      },
      {
        "id": 47,
        "icon": "file:webhook.svg",
        "name": "n8n-nodes-base.webhook",
        "codex": {
          "data": {
            "alias": [
              "HTTP",
              "API",
              "Build",
              "WH"
            ],
            "resources": {
              "generic": [
                {
                  "url": "https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/",
                  "icon": "✍️",
                  "label": "Learn how to automatically cross-post your content with n8n"
                },
                {
                  "url": "https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/",
                  "icon": "🛳",
                  "label": "Running n8n on ships: An interview with Maranics"
                },
                {
                  "url": "https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/",
                  "icon": "🔗",
                  "label": "How to build a low-code, self-hosted URL shortener in 3 steps"
                },
                {
                  "url": "https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/",
                  "icon": " 🪢",
                  "label": "What are APIs and how to use them with no code"
                },
                {
                  "url": "https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/",
                  "icon": "⚡️",
                  "label": "5 tasks you can automate with the new Notion API "
                },
                {
                  "url": "https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/",
                  "icon": "💻",
                  "label": "How a digital strategist uses n8n for online marketing"
                },
                {
                  "url": "https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/",
                  "icon": "📹",
                  "label": "The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/how-to-automatically-give-kudos-to-contributors-with-github-slack-and-n8n/",
                  "icon": "👏",
                  "label": "How to automatically give kudos to contributors with GitHub, Slack, and n8n"
                },
                {
                  "url": "https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/",
                  "icon": "🤖",
                  "label": "5 workflow automations for Mattermost that we love at n8n"
                },
                {
                  "url": "https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/",
                  "icon": "🧠",
                  "label": "Why this Product Manager loves workflow automation with n8n"
                },
                {
                  "url": "https://n8n.io/blog/creating-custom-incident-response-workflows-with-n8n/",
                  "label": "How to automate every step of an incident response workflow"
                },
                {
                  "url": "https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/",
                  "icon": "🧰",
                  "label": "Learn to Build Powerful API Endpoints Using Webhooks"
                },
                {
                  "url": "https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/",
                  "icon": "🦄",
                  "label": "Learn how to use webhooks with Mattermost slash commands"
                },
                {
                  "url": "https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/",
                  "icon": "🛵",
                  "label": "How Goomer automated their operations with over 200 n8n workflows"
                }
              ],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.webhook/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"trigger\"]",
        "defaults": {
          "name": "Webhook"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0OCIgaGVpZ2h0PSI0OCI+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTM1IDM3Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDQiLz48cGF0aCBmaWxsPSIjMzc0NzRmIiBkPSJNMzUgNDNjLTMgMC01LjktMS40LTcuOC0zLjdsMy4xLTIuNWMxLjEgMS40IDIuOSAyLjMgNC43IDIuMyAzLjMgMCA2LTIuNyA2LTZzLTIuNy02LTYtNmMtMSAwLTIgLjMtMi45LjdsLTEuNyAxTDIzLjMgMTZsMy41LTEuOSA1LjMgOS40YzEtLjMgMi0uNSAzLS41IDUuNSAwIDEwIDQuNSAxMCAxMFM0MC41IDQzIDM1IDQzIi8+PHBhdGggZmlsbD0iIzM3NDc0ZiIgZD0iTTE0IDQzQzguNSA0MyA0IDM4LjUgNCAzM2MwLTQuNiAzLjEtOC41IDcuNS05LjdsMSAzLjlDOS45IDI3LjkgOCAzMC4zIDggMzNjMCAzLjMgMi43IDYgNiA2czYtMi43IDYtNnYtMmgxNXY0SDIzLjhjLS45IDQuNi01IDgtOS44IDgiLz48cGF0aCBmaWxsPSIjZTkxZTYzIiBkPSJNMTQgMzdjLTIuMiAwLTQtMS44LTQtNHMxLjgtNCA0LTQgNCAxLjggNCA0LTEuOCA0LTQgNCIvPjxwYXRoIGZpbGw9IiMzNzQ3NGYiIGQ9Ik0yNSAxOWMtMi4yIDAtNC0xLjgtNC00czEuOC00IDQtNCA0IDEuOCA0IDQtMS44IDQtNCA0Ii8+PHBhdGggZmlsbD0iI2U5MWU2MyIgZD0ibTE1LjcgMzQtMy40LTIgNS45LTkuN2MtMi0xLjktMy4yLTQuNS0zLjItNy4zIDAtNS41IDQuNS0xMCAxMC0xMHMxMCA0LjUgMTAgMTBjMCAuOS0uMSAxLjctLjMgMi41bC0zLjktMWMuMS0uNS4yLTEgLjItMS41IDAtMy4zLTIuNy02LTYtNnMtNiAyLjctNiA2YzAgMi4xIDEuMSA0IDIuOSA1LjFsMS43IDF6Ii8+PC9zdmc+"
        },
        "displayName": "Webhook",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 565,
        "icon": "fa:sticky-note",
        "name": "n8n-nodes-base.stickyNote",
        "codex": {
          "data": {
            "alias": [
              "Comments",
              "Notes",
              "Sticky"
            ],
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers"
              ]
            }
          }
        },
        "group": "[\"input\"]",
        "defaults": {
          "name": "Sticky Note",
          "color": "#FFD233"
        },
        "iconData": {
          "icon": "sticky-note",
          "type": "icon"
        },
        "displayName": "Sticky Note",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 834,
        "icon": "file:code.svg",
        "name": "n8n-nodes-base.code",
        "codex": {
          "data": {
            "alias": [
              "cpde",
              "Javascript",
              "JS",
              "Python",
              "Script",
              "Custom Code",
              "Function"
            ],
            "details": "The Code node allows you to execute JavaScript in your workflow.",
            "resources": {
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"
                }
              ]
            },
            "categories": [
              "Development",
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0",
            "subcategories": {
              "Core Nodes": [
                "Helpers",
                "Data Transformation"
              ]
            }
          }
        },
        "group": "[\"transform\"]",
        "defaults": {
          "name": "Code"
        },
        "iconData": {
          "type": "file",
          "fileBuffer": "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="
        },
        "displayName": "Code",
        "typeVersion": 2,
        "nodeCategories": [
          {
            "id": 5,
            "name": "Development"
          },
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      },
      {
        "id": 839,
        "icon": "fa:clock",
        "name": "n8n-nodes-base.scheduleTrigger",
        "codex": {
          "data": {
            "alias": [
              "Time",
              "Scheduler",
              "Polling",
              "Cron",
              "Interval"
            ],
            "resources": {
              "generic": [],
              "primaryDocumentation": [
                {
                  "url": "https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.scheduletrigger/"
                }
              ]
            },
            "categories": [
              "Core Nodes"
            ],
            "nodeVersion": "1.0",
            "codexVersion": "1.0"
          }
        },
        "group": "[\"trigger\",\"schedule\"]",
        "defaults": {
          "name": "Schedule Trigger",
          "color": "#31C49F"
        },
        "iconData": {
          "icon": "clock",
          "type": "icon"
        },
        "displayName": "Schedule Trigger",
        "typeVersion": 1,
        "nodeCategories": [
          {
            "id": 9,
            "name": "Core Nodes"
          }
        ]
      }
    ],
    "categories": [
      {
        "id": 32,
        "name": "Market Research"
      },
      {
        "id": 49,
        "name": "AI Summarization"
      }
    ],
    "image": []
  }
}