Mon workflow 2
Ceci est unMarket Research, AI Summarizationworkflow d'automatisation du domainecontenant 25 nœuds.Utilise principalement des nœuds comme If, Code, Merge, Slack, EmailSend. Pricing dynamique automatisé avec une surveillance concurrentielle IA et une optimisation des revenus
- •Token Bot Slack ou URL Webhook
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
- •Informations d'identification Google Sheets API
Nœuds utilisés (25)
Catégorie
{
"id": "VhEwspDqzu7ssFVE",
"meta": {
"instanceId": "f4b0efaa33080e7774e0d9285c40c7abcd2c6f7cf1a8b901fa7106170dd4cda3",
"templateCredsSetupCompleted": true
},
"name": "My workflow 2",
"tags": [
{
"id": "IxkcJ2IpYIxivoHV",
"name": "Content Strategy",
"createdAt": "2025-07-25T12:57:37.677Z",
"updatedAt": "2025-07-25T12:57:37.677Z"
},
{
"id": "PAKIJ2Mm9EvRcR3u",
"name": "Trend Monitoring",
"createdAt": "2025-07-25T12:57:37.670Z",
"updatedAt": "2025-07-25T12:57:37.670Z"
},
{
"id": "YtfXmaZk44MYedPO",
"name": "Dynamic Pricing",
"createdAt": "2025-07-25T16:24:30.369Z",
"updatedAt": "2025-07-25T16:24:30.369Z"
},
{
"id": "DxXGubfBzRKh6L8T",
"name": "Revenue Optimization",
"createdAt": "2025-07-25T16:24:30.370Z",
"updatedAt": "2025-07-25T16:24:30.370Z"
}
],
"nodes": [
{
"id": "a6fbe4c4-1091-432d-b21a-9bdc41133bb2",
"name": "Déclencheur de surveillance horaire des prix",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "Triggers every hour for real-time price optimization",
"position": [
-2896,
-160
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "ad01958e-33d3-4b19-95c3-302b57b0e309",
"name": "Processeur de configuration de tarification",
"type": "n8n-nodes-base.code",
"position": [
-2208,
-32
],
"parameters": {
"jsCode": "// Dynamic Pricing Configuration & Product Management\n// Created: 25/7/2025\n\nconst pricingConfig = {\n // Product catalog with pricing parameters\n products: [\n {\n id: 'PROD-001',\n name: 'Wireless Bluetooth Headphones',\n category: 'Electronics',\n current_price: 79.99,\n cost_price: 35.00,\n min_margin: 0.25, // 25% minimum margin\n max_margin: 0.65, // 65% maximum margin\n min_price: 45.00,\n max_price: 120.00,\n inventory_level: 150,\n monthly_sales: 45,\n competitor_products: [\n 'Sony WH-CH720N',\n 'JBL Tune 760NC',\n 'Sennheiser HD 450BT'\n ],\n search_keywords: ['wireless headphones', 'bluetooth headphones', 'noise canceling']\n },\n {\n id: 'PROD-002',\n name: 'Smart Fitness Tracker',\n category: 'Wearables',\n current_price: 149.99,\n cost_price: 65.00,\n min_margin: 0.30,\n max_margin: 0.70,\n min_price: 85.00,\n max_price: 200.00,\n inventory_level: 75,\n monthly_sales: 28,\n competitor_products: [\n 'Fitbit Charge 5',\n 'Garmin Vivosmart 4',\n 'Samsung Galaxy Fit2'\n ],\n search_keywords: ['fitness tracker', 'smart watch', 'activity monitor']\n },\n {\n id: 'PROD-003',\n name: 'Portable Phone Charger',\n category: 'Accessories',\n current_price: 29.99,\n cost_price: 12.00,\n min_margin: 0.20,\n max_margin: 0.60,\n min_price: 15.00,\n max_price: 45.00,\n inventory_level: 300,\n monthly_sales: 120,\n competitor_products: [\n 'Anker PowerCore 10000',\n 'RAVPower 20000mAh',\n 'Belkin Boost Charge'\n ],\n search_keywords: ['power bank', 'portable charger', 'phone battery']\n }\n ],\n \n // Competitor monitoring configuration\n competitors: {\n 'Amazon': {\n base_url: 'https://www.amazon.com/s?k=',\n price_selector: '.a-price-whole',\n weight: 0.35 // Influence on pricing decisions\n },\n 'Best Buy': {\n base_url: 'https://www.bestbuy.com/site/searchpage.jsp?st=',\n price_selector: '.visually-hidden',\n weight: 0.25\n },\n 'Walmart': {\n base_url: 'https://www.walmart.com/search?q=',\n price_selector: '[data-automation-id=\"product-price\"]',\n weight: 0.20\n },\n 'Target': {\n base_url: 'https://www.target.com/s?searchTerm=',\n price_selector: '[data-test=\"product-price\"]',\n weight: 0.20\n }\n },\n \n // Pricing strategy parameters\n strategies: {\n aggressive: {\n description: 'Beat competitor prices by 5-10%',\n price_adjustment: -0.075, // Average 7.5% below competitors\n margin_tolerance: 0.15, // Accept 15% margin reduction\n inventory_threshold: 100 // Use when inventory > 100\n },\n competitive: {\n description: 'Match competitor average prices',\n price_adjustment: 0.00, // Match competitor average\n margin_tolerance: 0.05, // Accept 5% margin reduction\n inventory_threshold: 50 // Use when inventory 50-100\n },\n premium: {\n description: 'Price 10-20% above competitors',\n price_adjustment: 0.15, // 15% above competitors\n margin_tolerance: -0.10, // Allow 10% margin increase\n inventory_threshold: 0 // Use when inventory < 50\n }\n },\n \n // Market demand indicators\n demand_factors: {\n seasonality: {\n 'Q4': 1.3, // Holiday season boost\n 'Q1': 0.8, // Post-holiday decline\n 'Q2': 1.0, // Normal demand\n 'Q3': 1.1 // Back-to-school boost\n },\n day_of_week: {\n 'Monday': 0.9,\n 'Tuesday': 0.95,\n 'Wednesday': 1.0,\n 'Thursday': 1.05,\n 'Friday': 1.2, // Weekend shopping\n 'Saturday': 1.3,\n 'Sunday': 1.1\n },\n time_of_day: {\n 'morning': 0.8, // 6AM-12PM\n 'afternoon': 1.2, // 12PM-6PM\n 'evening': 1.4, // 6PM-10PM\n 'night': 0.6 // 10PM-6AM\n }\n },\n \n // Revenue optimization settings\n optimization: {\n revenue_weight: 0.6, // 60% focus on revenue\n margin_weight: 0.25, // 25% focus on margin\n velocity_weight: 0.15, // 15% focus on sales velocity\n \n // Price change constraints\n max_price_change: 0.15, // Maximum 15% price change per hour\n min_change_threshold: 0.02, // Only change price if >2% difference\n price_change_frequency: 1, // Hours between price changes\n \n // Performance thresholds\n low_performance_threshold: 0.7, // Sales velocity < 70% of target\n high_performance_threshold: 1.3 // Sales velocity > 130% of target\n }\n};\n\n// Get current market context\nconst now = new Date();\nconst currentHour = now.getHours();\nconst currentDay = now.toLocaleDateString('en-US', { weekday: 'long' });\nconst currentQuarter = Math.ceil((now.getMonth() + 1) / 3);\n\n// Determine time-based demand factors\nlet timeOfDay = 'night';\nif (currentHour >= 6 && currentHour < 12) timeOfDay = 'morning';\nelse if (currentHour >= 12 && currentHour < 18) timeOfDay = 'afternoon';\nelse if (currentHour >= 18 && currentHour < 22) timeOfDay = 'evening';\n\nconst demandMultiplier = \n pricingConfig.demand_factors.seasonality[`Q${currentQuarter}`] *\n pricingConfig.demand_factors.day_of_week[currentDay] *\n pricingConfig.demand_factors.time_of_day[timeOfDay];\n\n// Generate competitor monitoring tasks\nconst monitoringTasks = [];\nconst competitors = Object.keys(pricingConfig.competitors);\n\n// Create monitoring tasks for each product-competitor combination\npricingConfig.products.forEach(product => {\n competitors.forEach(competitor => {\n product.search_keywords.forEach(keyword => {\n monitoringTasks.push({\n product_id: product.id,\n product_name: product.name,\n competitor: competitor,\n search_keyword: keyword,\n search_url: pricingConfig.competitors[competitor].base_url + encodeURIComponent(keyword),\n competitor_weight: pricingConfig.competitors[competitor].weight,\n current_price: product.current_price,\n cost_price: product.cost_price,\n inventory_level: product.inventory_level,\n monthly_sales: product.monthly_sales\n });\n });\n });\n});\n\n// Session tracking\nconst sessionId = `pricing_${Date.now()}`;\nconst timestamp = now.toISOString();\n\n// Generate comprehensive monitoring configuration\nreturn [{\n json: {\n sessionId: sessionId,\n timestamp: timestamp,\n market_context: {\n current_hour: currentHour,\n current_day: currentDay,\n current_quarter: currentQuarter,\n time_of_day: timeOfDay,\n demand_multiplier: demandMultiplier\n },\n config: pricingConfig,\n monitoring_tasks: monitoringTasks,\n total_monitoring_tasks: monitoringTasks.length,\n products_count: pricingConfig.products.length,\n competitors_count: competitors.length\n }\n}];"
},
"typeVersion": 2
},
{
"id": "5da725c9-5cf0-406e-a929-a5eaf7d86e10",
"name": "Division des tâches de surveillance",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-1616,
-96
],
"parameters": {
"options": {}
},
"typeVersion": 3
},
{
"id": "1d1e1e73-96ed-48a1-b35f-c6763c7432fc",
"name": "Processeur de tâches",
"type": "n8n-nodes-base.code",
"position": [
-1056,
-160
],
"parameters": {
"jsCode": "// Task Processing and Competitor URL Generation\nconst items = $input.all();\nconst configData = items[0].json;\nconst batchData = $('Split Monitoring Tasks').item.json;\n\n// Get current monitoring task\nconst currentTask = configData.monitoring_tasks[batchData.index];\n\n// Add market context to current task\nconst enhancedTask = {\n ...currentTask,\n ...configData.market_context,\n config: configData.config,\n batchIndex: batchData.index,\n totalBatches: configData.monitoring_tasks.length\n};\n\nreturn [{\n json: enhancedTask\n}];"
},
"typeVersion": 2
},
{
"id": "44854565-bda3-4823-b8aa-221c9d0862aa",
"name": "Récupérateur de prix concurrents par IA",
"type": "n8n-nodes-scrapegraphai.scrapegraphAi",
"position": [
-448,
192
],
"parameters": {
"userPrompt": "Extract competitor pricing data from this e-commerce search results page. Focus on products similar to our target product and their pricing information. Use this schema: { \"competitor\": \"Amazon\", \"search_keyword\": \"wireless headphones\", \"products_found\": [{ \"product_name\": \"Sony WH-CH720N Wireless Headphones\", \"brand\": \"Sony\", \"price\": 89.99, \"original_price\": 129.99, \"discount_percentage\": 31, \"rating\": 4.5, \"review_count\": 1247, \"availability\": \"In Stock\", \"shipping_info\": \"Free shipping\", \"seller\": \"Amazon\", \"product_url\": \"https://amazon.com/dp/B09XXXX\", \"features\": [\"Noise Canceling\", \"30hr Battery\"], \"similar_to_target\": true, \"relevance_score\": 0.85 }], \"price_statistics\": { \"min_price\": 45.99, \"max_price\": 199.99, \"avg_price\": 92.45, \"median_price\": 89.99, \"price_range\": 154.00 }, \"market_insights\": { \"total_products\": 12, \"brands_found\": [\"Sony\", \"JBL\", \"Bose\"], \"avg_rating\": 4.3, \"price_trend\": \"stable\", \"promotion_frequency\": \"high\" } }",
"websiteUrl": "={{ $json.search_url }}"
},
"typeVersion": 1
},
{
"id": "8ef3100b-2c01-403d-8d51-15fc3bed6ee3",
"name": "Récupérateur d'analyse de la demande par IA",
"type": "n8n-nodes-scrapegraphai.scrapegraphAi",
"position": [
-448,
-32
],
"parameters": {
"userPrompt": "Analyze search demand trends for this product keyword to assess market demand and pricing opportunities. Extract trend data and demand indicators. Schema: { \"keyword\": \"wireless headphones\", \"search_volume_trend\": \"rising\", \"interest_score\": 78, \"related_queries\": [{ \"query\": \"best wireless headphones\", \"growth\": \"+25%\" }, { \"query\": \"cheap bluetooth headphones\", \"growth\": \"+15%\" }], \"geographic_interest\": [{ \"region\": \"United States\", \"interest\": 100 }, { \"region\": \"Canada\", \"interest\": 67 }], \"seasonal_patterns\": { \"current_vs_avg\": 1.15, \"peak_months\": [\"November\", \"December\"], \"low_months\": [\"January\", \"February\"] }, \"demand_indicators\": { \"price_sensitivity\": \"medium\", \"brand_loyalty\": \"low\", \"purchase_urgency\": \"medium\", \"comparison_shopping\": \"high\" }, \"market_saturation\": \"medium\", \"growth_opportunity\": \"high\" }",
"websiteUrl": "={{ 'https://trends.google.com/trends/explore?q=' + encodeURIComponent($json.search_keyword) + '&date=now%201-d' }}"
},
"typeVersion": 1
},
{
"id": "08667817-4134-4999-a74f-a83cf0080614",
"name": "Récupérateur d'analyse de sentiment client par IA",
"type": "n8n-nodes-scrapegraphai.scrapegraphAi",
"position": [
-448,
416
],
"parameters": {
"userPrompt": "Analyze customer reviews and sentiment for products in this category to understand price sensitivity and value perception. Extract customer insights that inform pricing decisions. Schema: { \"category\": \"wireless headphones\", \"total_reviews_analyzed\": 156, \"sentiment_analysis\": { \"positive\": 0.68, \"neutral\": 0.22, \"negative\": 0.10 }, \"price_mentions\": [{ \"price_point\": \"$50-80\", \"sentiment\": \"positive\", \"frequency\": 45, \"context\": \"good value for money\" }, { \"price_point\": \"$80-120\", \"sentiment\": \"mixed\", \"frequency\": 32, \"context\": \"expensive but worth it\" }], \"value_drivers\": [{ \"feature\": \"battery life\", \"importance\": 0.85, \"satisfaction\": 0.78 }, { \"feature\": \"sound quality\", \"importance\": 0.92, \"satisfaction\": 0.81 }], \"price_complaints\": [{ \"issue\": \"overpriced for features\", \"frequency\": 23 }, { \"issue\": \"better alternatives available\", \"frequency\": 18 }], \"purchase_drivers\": [\"sound quality\", \"brand reputation\", \"battery life\", \"comfort\"], \"price_elasticity_indicators\": { \"willingness_to_pay_premium\": 0.34, \"price_sensitivity_score\": 0.67, \"brand_premium_acceptance\": 0.45 } }",
"websiteUrl": "={{ 'https://www.amazon.com/s?k=' + encodeURIComponent($json.search_keyword + ' reviews') + '&sort=review-rank' }}"
},
"typeVersion": 1
},
{
"id": "28f0d262-548e-4f3d-b979-dd3f7a83a723",
"name": "Fusion des données de tarification",
"type": "n8n-nodes-base.merge",
"position": [
160,
-160
],
"parameters": {
"mode": "combine",
"options": {},
"mergeByFields": {
"values": [
{}
]
}
},
"typeVersion": 2.1
},
{
"id": "1f84e997-4771-42fb-bb6e-b9d38693e80e",
"name": "Moteur d'optimisation des prix",
"type": "n8n-nodes-base.code",
"position": [
784,
-16
],
"parameters": {
"jsCode": "// Advanced Pricing Optimization Algorithm\nconst allData = $input.all();\nconst taskData = allData[0].json;\nconst competitorData = allData[1]?.json?.result || {};\nconst demandData = allData[2]?.json?.result || {};\nconst sentimentData = allData[3]?.json?.result || {};\n\n// Advanced pricing optimization engine\nconst pricingOptimizer = {\n // Calculate optimal price based on multiple factors\n calculateOptimalPrice(currentPrice, competitorPrices, demandFactors, customerSentiment, productData) {\n const factors = {\n competitor_influence: 0.35,\n demand_influence: 0.25,\n sentiment_influence: 0.20,\n inventory_influence: 0.10,\n margin_influence: 0.10\n };\n \n // Competitor pricing analysis\n const competitorScore = this.analyzeCompetitorPricing(currentPrice, competitorPrices);\n \n // Demand analysis\n const demandScore = this.analyzeDemand(demandFactors, taskData.demand_multiplier);\n \n // Customer sentiment analysis\n const sentimentScore = this.analyzeSentiment(customerSentiment, currentPrice);\n \n // Inventory level analysis\n const inventoryScore = this.analyzeInventory(productData.inventory_level, productData.monthly_sales);\n \n // Margin protection analysis\n const marginScore = this.analyzeMargin(currentPrice, productData.cost_price);\n \n // Calculate weighted optimization score\n const optimizationScore = \n (competitorScore * factors.competitor_influence) +\n (demandScore * factors.demand_influence) +\n (sentimentScore * factors.sentiment_influence) +\n (inventoryScore * factors.inventory_influence) +\n (marginScore * factors.margin_influence);\n \n // Convert score to price adjustment\n const priceAdjustment = this.scoreToPrice(optimizationScore, currentPrice, productData);\n \n return {\n current_price: currentPrice,\n recommended_price: priceAdjustment.new_price,\n price_change: priceAdjustment.change_amount,\n price_change_percentage: priceAdjustment.change_percentage,\n optimization_score: optimizationScore,\n factor_scores: {\n competitor: competitorScore,\n demand: demandScore,\n sentiment: sentimentScore,\n inventory: inventoryScore,\n margin: marginScore\n },\n confidence_level: this.calculateConfidence(competitorPrices, demandFactors, customerSentiment),\n strategy_recommendation: this.recommendStrategy(optimizationScore, productData)\n };\n },\n \n // Analyze competitor pricing impact\n analyzeCompetitorPricing(currentPrice, competitorData) {\n if (!competitorData.price_statistics) return 0;\n \n const avgCompetitorPrice = competitorData.price_statistics.avg_price;\n const minCompetitorPrice = competitorData.price_statistics.min_price;\n const maxCompetitorPrice = competitorData.price_statistics.max_price;\n \n // Calculate position relative to competitors\n const relativePosition = (currentPrice - avgCompetitorPrice) / avgCompetitorPrice;\n \n // Score based on competitive position\n if (relativePosition > 0.15) return -0.8; // Too expensive, reduce price\n if (relativePosition > 0.05) return -0.4; // Slightly expensive\n if (relativePosition > -0.05) return 0.0; // Competitive\n if (relativePosition > -0.15) return 0.3; // Good value\n return 0.6; // Excellent value, can increase\n },\n \n // Analyze demand factors\n analyzeDemand(demandData, demandMultiplier) {\n let demandScore = 0;\n \n // Search volume trend impact\n if (demandData.search_volume_trend === 'rising') demandScore += 0.4;\n else if (demandData.search_volume_trend === 'falling') demandScore -= 0.4;\n \n // Interest score impact\n const interestScore = (demandData.interest_score || 50) / 100;\n demandScore += (interestScore - 0.5) * 0.6;\n \n // Seasonal/time-based demand multiplier\n demandScore += (demandMultiplier - 1.0) * 0.5;\n \n return Math.max(-1, Math.min(1, demandScore));\n },\n \n // Analyze customer sentiment\n analyzeSentiment(sentimentData, currentPrice) {\n if (!sentimentData.price_elasticity_indicators) return 0;\n \n const priceElasticity = sentimentData.price_elasticity_indicators;\n let sentimentScore = 0;\n \n // Price sensitivity analysis\n const priceSensitivity = priceElasticity.price_sensitivity_score || 0.5;\n sentimentScore -= (priceSensitivity - 0.5) * 0.8;\n \n // Willingness to pay premium\n const premiumWillingness = priceElasticity.willingness_to_pay_premium || 0.3;\n sentimentScore += (premiumWillingness - 0.3) * 0.6;\n \n // Brand premium acceptance\n const brandPremium = priceElasticity.brand_premium_acceptance || 0.4;\n sentimentScore += (brandPremium - 0.4) * 0.4;\n \n return Math.max(-1, Math.min(1, sentimentScore));\n },\n \n // Analyze inventory levels\n analyzeInventory(inventoryLevel, monthlySales) {\n const monthsOfInventory = inventoryLevel / (monthlySales || 1);\n \n if (monthsOfInventory > 6) return -0.6; // Excess inventory, reduce price\n if (monthsOfInventory > 3) return -0.3; // High inventory\n if (monthsOfInventory > 1) return 0.0; // Normal inventory\n if (monthsOfInventory > 0.5) return 0.4; // Low inventory, increase price\n return 0.8; // Very low inventory\n },\n \n // Analyze margin protection\n analyzeMargin(currentPrice, costPrice) {\n const currentMargin = (currentPrice - costPrice) / currentPrice;\n \n if (currentMargin < 0.2) return 0.8; // Low margin, increase price\n if (currentMargin < 0.3) return 0.4; // Acceptable margin\n if (currentMargin < 0.5) return 0.0; // Good margin\n if (currentMargin < 0.6) return -0.2; // High margin, can reduce\n return -0.4; // Very high margin\n },\n \n // Convert optimization score to price adjustment\n scoreToPrice(score, currentPrice, productData) {\n // Base price adjustment percentage\n const baseAdjustment = score * 0.15; // Max 15% adjustment\n \n // Apply constraints\n const maxChange = taskData.config.optimization.max_price_change;\n const constrainedAdjustment = Math.max(-maxChange, Math.min(maxChange, baseAdjustment));\n \n // Calculate new price\n const newPrice = currentPrice * (1 + constrainedAdjustment);\n \n // Apply product-specific constraints\n const finalPrice = Math.max(\n productData.min_price || 0,\n Math.min(productData.max_price || 9999, newPrice)\n );\n \n // Check minimum change threshold\n const changeAmount = finalPrice - currentPrice;\n const changePercentage = changeAmount / currentPrice;\n \n if (Math.abs(changePercentage) < taskData.config.optimization.min_change_threshold) {\n return {\n new_price: currentPrice, // No change\n change_amount: 0,\n change_percentage: 0\n };\n }\n \n return {\n new_price: Math.round(finalPrice * 100) / 100, // Round to 2 decimals\n change_amount: Math.round(changeAmount * 100) / 100,\n change_percentage: Math.round(changePercentage * 10000) / 100 // Percentage with 2 decimals\n };\n },\n \n // Calculate confidence level\n calculateConfidence(competitorData, demandData, sentimentData) {\n let confidence = 0.5; // Base confidence\n \n // More data = higher confidence\n if (competitorData.products_found?.length > 5) confidence += 0.2;\n if (demandData.interest_score > 70) confidence += 0.15;\n if (sentimentData.total_reviews_analyzed > 100) confidence += 0.15;\n \n return Math.min(1.0, confidence);\n },\n \n // Recommend pricing strategy\n recommendStrategy(optimizationScore, productData) {\n const inventory = productData.inventory_level;\n const strategies = taskData.config.strategies;\n \n if (optimizationScore < -0.3 && inventory > strategies.aggressive.inventory_threshold) {\n return 'aggressive';\n } else if (optimizationScore > 0.3 && inventory < strategies.premium.inventory_threshold) {\n return 'premium';\n } else {\n return 'competitive';\n }\n }\n};\n\n// Execute pricing optimization\nconst productData = {\n inventory_level: taskData.inventory_level,\n monthly_sales: taskData.monthly_sales,\n cost_price: taskData.cost_price,\n min_price: taskData.config.products.find(p => p.id === taskData.product_id)?.min_price,\n max_price: taskData.config.products.find(p => p.id === taskData.product_id)?.max_price\n};\n\nconst pricingRecommendation = pricingOptimizer.calculateOptimalPrice(\n taskData.current_price,\n competitorData,\n demandData,\n sentimentData,\n productData\n);\n\n// Calculate revenue projections\nconst revenueProjection = {\n current_revenue_estimate: taskData.current_price * taskData.monthly_sales,\n projected_revenue_estimate: pricingRecommendation.recommended_price * taskData.monthly_sales * (1 + (demandData.interest_score || 50) / 500),\n revenue_change_estimate: 0\n};\nrevenueProjection.revenue_change_estimate = revenueProjection.projected_revenue_estimate - revenueProjection.current_revenue_estimate;\n\n// Compile comprehensive pricing analysis\nconst pricingAnalysis = {\n session_id: taskData.sessionId,\n timestamp: new Date().toISOString(),\n product_info: {\n id: taskData.product_id,\n name: taskData.product_name,\n category: taskData.config.products.find(p => p.id === taskData.product_id)?.category,\n current_price: taskData.current_price,\n cost_price: taskData.cost_price\n },\n market_analysis: {\n competitor: taskData.competitor,\n search_keyword: taskData.search_keyword,\n competitor_data: competitorData,\n demand_data: demandData,\n sentiment_data: sentimentData\n },\n pricing_recommendation: pricingRecommendation,\n revenue_projection: revenueProjection,\n market_context: taskData.market_context || {},\n batch_info: {\n batch_index: taskData.batchIndex,\n total_batches: taskData.totalBatches\n }\n};\n\nreturn [{ json: pricingAnalysis }];"
},
"typeVersion": 2
},
{
"id": "863baca7-51c3-4e8e-9f26-b8ac88f722b3",
"name": "Filtre de changement de prix",
"type": "n8n-nodes-base.if",
"position": [
1424,
-80
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "significant-price-change",
"operator": {
"type": "number",
"operation": "gt"
},
"leftValue": "={{ Math.abs($json.pricing_recommendation.price_change_percentage) }}",
"rightValue": 2
},
{
"id": "high-confidence",
"operator": {
"type": "number",
"operation": "gte"
},
"leftValue": "={{ $json.pricing_recommendation.confidence_level }}",
"rightValue": 0.7
}
]
}
},
"typeVersion": 2
},
{
"id": "0a6015f3-9594-43f6-aadb-24b1272078a4",
"name": "Appel Price Update API",
"type": "n8n-nodes-base.httpRequest",
"position": [
2080,
-80
],
"parameters": {
"url": "={{ 'https://your-ecommerce-api.com/products/' + $json.product_info.id + '/price' }}",
"options": {},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "price",
"value": "={{ $json.pricing_recommendation.recommended_price }}"
},
{
"name": "previous_price",
"value": "={{ $json.product_info.current_price }}"
},
{
"name": "change_reason",
"value": "={{ 'Automated optimization: ' + $json.pricing_recommendation.strategy_recommendation + ' strategy' }}"
},
{
"name": "confidence_score",
"value": "={{ $json.pricing_recommendation.confidence_level }}"
},
{
"name": "effective_date",
"value": "={{ new Date().toISOString() }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Authorization",
"value": "Bearer YOUR_API_TOKEN"
},
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "f48d631a-3296-4815-a462-c6c83c3f282a",
"name": "Enregistreur d'historique des prix",
"type": "n8n-nodes-base.googleSheets",
"position": [
2128,
128
],
"parameters": {
"columns": {
"value": {
"Strategy": "={{ $json.pricing_recommendation.strategy_recommendation }}",
"New_Price": "={{ $json.pricing_recommendation.recommended_price }}",
"Timestamp": "={{ $json.timestamp }}",
"Competitor": "={{ $json.market_analysis.competitor }}",
"Confidence": "={{ $json.pricing_recommendation.confidence_level }}",
"Product_ID": "={{ $json.product_info.id }}",
"Session_ID": "={{ $json.session_id }}",
"Demand_Score": "={{ $json.pricing_recommendation.factor_scores.demand }}",
"Price_Change": "={{ $json.pricing_recommendation.price_change }}",
"Product_Name": "={{ $json.product_info.name }}",
"Market_Context": "={{ $json.market_context.time_of_day + ' - ' + $json.market_context.current_day }}",
"Previous_Price": "={{ $json.product_info.current_price }}",
"Revenue_Change": "={{ $json.revenue_projection.revenue_change_estimate }}",
"Sentiment_Score": "={{ $json.pricing_recommendation.factor_scores.sentiment }}",
"Change_Percentage": "={{ $json.pricing_recommendation.price_change_percentage }}",
"Revenue_Projection": "={{ $json.revenue_projection.projected_revenue_estimate }}",
"Competitor_Avg_Price": "={{ $json.market_analysis.competitor_data.price_statistics?.avg_price || 'N/A' }}"
},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Pricing_History"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "1your-pricing-dashboard-sheet-id"
}
},
"typeVersion": 4.5
},
{
"id": "c033cad3-3efe-4504-9c48-56ffb6efdc0a",
"name": "Enregistreur d'analytique des revenus",
"type": "n8n-nodes-base.googleSheets",
"position": [
2112,
272
],
"parameters": {
"columns": {
"value": {
"Date": "={{ new Date().toISOString().split('T')[0] }}",
"Hour": "={{ new Date().getHours() }}",
"Product_ID": "={{ $json.product_info.id }}",
"Session_ID": "={{ $json.session_id }}",
"Revenue_Impact": "={{ $json.revenue_projection.revenue_change_estimate }}",
"Inventory_Level": "={{ $json.product_info.inventory_level || 0 }}",
"Strategy_Applied": "={{ $json.pricing_recommendation.strategy_recommendation }}",
"Demand_Multiplier": "={{ $json.market_context.demand_multiplier || 1 }}",
"Price_Sensitivity": "={{ $json.market_analysis.sentiment_data.price_elasticity_indicators?.price_sensitivity_score || 0.5 }}",
"Optimization_Score": "={{ $json.pricing_recommendation.optimization_score }}",
"Competitor_Price_Avg": "={{ $json.market_analysis.competitor_data.price_statistics?.avg_price || 0 }}",
"Current_Revenue_Rate": "={{ $json.revenue_projection.current_revenue_estimate }}",
"Projected_Revenue_Rate": "={{ $json.revenue_projection.projected_revenue_estimate }}"
},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "name",
"value": "Revenue_Analytics"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "1your-revenue-analytics-sheet-id"
}
},
"typeVersion": 4.5
},
{
"id": "ba6667ca-f603-4a50-a7cd-5242dd8a35f5",
"name": "Expéditeur d'alerte de tarification",
"type": "n8n-nodes-base.slack",
"position": [
2144,
480
],
"parameters": {
"text": "=💰 **Price Optimization Alert**\n\n📦 **Product**: {{ $json.product_info.name }} ({{ $json.product_info.id }})\n💵 **Price Change**: ${{ $json.product_info.current_price }} → ${{ $json.pricing_recommendation.recommended_price }}\n📈 **Change**: {{ $json.pricing_recommendation.price_change_percentage > 0 ? '+' : '' }}{{ $json.pricing_recommendation.price_change_percentage }}%\n\n🎯 **Strategy**: {{ $json.pricing_recommendation.strategy_recommendation.toUpperCase() }}\n📊 **Confidence**: {{ Math.round($json.pricing_recommendation.confidence_level * 100) }}%\n\n**Market Analysis**:\n• 🏪 Competitor Avg: ${{ $json.market_analysis.competitor_data.price_statistics?.avg_price || 'N/A' }}\n• 📈 Demand Score: {{ Math.round($json.pricing_recommendation.factor_scores.demand * 100) }}/100\n• 💭 Sentiment Score: {{ Math.round($json.pricing_recommendation.factor_scores.sentiment * 100) }}/100\n\n💡 **Revenue Impact**: {{ $json.revenue_projection.revenue_change_estimate > 0 ? '+' : '' }}${{ Math.round($json.revenue_projection.revenue_change_estimate) }}/month",
"channel": "pricing-alerts",
"attachments": [],
"otherOptions": {
"icon_emoji": ":money_with_wings:"
}
},
"typeVersion": 1
},
{
"id": "092569d1-062b-4065-8fd8-5d4620889402",
"name": "Expéditeur de rapport de tarification",
"type": "n8n-nodes-base.emailSend",
"position": [
2320,
48
],
"webhookId": "db7ac9a0-5d67-48b8-bc71-4349335ee9f1",
"parameters": {
"options": {
"allowUnauthorizedCerts": false
},
"subject": "=🎯 Dynamic Pricing Update - {{ $json.product_info.name }}"
},
"typeVersion": 2.1
},
{
"id": "4b29177c-0f1a-4e04-8f42-e98a24771777",
"name": "Vue d'ensemble du workflow",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3136,
416
],
"parameters": {
"color": 2,
"width": 580,
"height": 656,
"content": "# 💰 AI-Powered Dynamic Pricing Optimizer\n\n**Created: July 25, 2025**\n\nThis comprehensive workflow automatically monitors competitor prices, analyzes market demand, and optimizes product pricing in real-time for maximum profitability.\n\n## 🚀 Key Features\n- **Hourly Price Monitoring**: Real-time competitor price tracking\n- **Multi-Platform Analysis**: Amazon, Best Buy, Walmart, Target\n- **AI-Powered Optimization**: Advanced pricing algorithms\n- **Demand Analysis**: Google Trends and search volume insights\n- **Customer Sentiment**: Review analysis for price sensitivity\n- **Revenue Projections**: Profit impact calculations\n- **Automated Updates**: Direct e-commerce platform integration\n\n## 📊 Benefits\n- **15-25% Revenue Increase** through optimal pricing\n- **Real-Time Market Response** to competitor changes\n- **Margin Protection** with intelligent constraints\n- **24/7 Automation** without manual intervention\n- **Data-Driven Decisions** with comprehensive analytics"
},
"typeVersion": 1
},
{
"id": "c6823f8e-b8c0-4664-a8f1-a41f85875bb1",
"name": "Étape 1 : Guide du déclencheur horaire",
"type": "n8n-nodes-base.stickyNote",
"position": [
-3120,
-832
],
"parameters": {
"color": 4,
"width": 584,
"height": 882,
"content": "# ⏱️ Step 1: Hourly Pricing Monitor Trigger\n\n**This Node**: Automatically triggers every hour for real-time pricing optimization\n\n## Why Hourly Monitoring?\n- **Competitive Advantage**: Respond to competitor price changes immediately\n- **Market Dynamics**: Capture demand fluctuations throughout the day\n- **Revenue Optimization**: Maximize profits during peak demand periods\n- **Inventory Management**: Adjust prices based on stock levels\n\n## Configuration Options\n- **Frequency**: Adjustable from every 15 minutes to daily\n- **Business Hours Only**: Optional limitation to business hours\n- **Weekend Scheduling**: Configure weekend vs. weekday strategies\n- **Holiday Handling**: Special pricing during sales events\n\n## Performance Considerations\n- **API Rate Limits**: Manages scraping frequency to avoid blocks\n- **Cost Optimization**: Balances monitoring frequency with API costs\n- **Error Handling**: Continues operation despite individual failures\n- **Scalability**: Supports hundreds of products simultaneously"
},
"typeVersion": 1
},
{
"id": "0e01fd2d-66b2-40f3-9a4b-71ef34e5964e",
"name": "Étape 2 : Processeur de configuration",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2400,
-848
],
"parameters": {
"width": 524,
"height": 1016,
"content": "# 🔧 Step 2: Pricing Configuration Processor\n\n**This Node**: Processes product catalog, competitor settings, and market context for pricing optimization\n\n## Product Catalog Management\n- **Product Profiles**: Complete pricing parameters per product\n- **Cost Integration**: Real-time cost price updates\n- **Margin Controls**: Min/max margin protection\n- **Inventory Sync**: Stock level-based pricing strategies\n\n## Competitor Monitoring Setup\n- **Multi-Platform**: Amazon, Best Buy, Walmart, Target\n- **Weighted Influence**: Different competitor impact levels\n- **Product Matching**: AI-powered similar product identification\n- **Price Point Tracking**: Multiple price variants per product\n\n## Market Context Analysis\n- **Seasonality Factors**: Q1-Q4 demand multipliers\n- **Day-of-Week Patterns**: Weekend vs. weekday pricing\n- **Time-of-Day Optimization**: Peak shopping hour adjustments\n- **Demand Correlation**: Multiple factor impact modeling\n\n## Strategy Configuration\n- **Aggressive**: Beat competitors by 5-10% (high inventory)\n- **Competitive**: Match market average (normal inventory)\n- **Premium**: 10-20% above market (low inventory)\n- **Dynamic Switching**: Auto-strategy selection based on conditions"
},
"typeVersion": 1
},
{
"id": "795704cb-5998-44d5-a28b-dba4d61ecfa3",
"name": "Étape 3 : Division des tâches",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1808,
-848
],
"parameters": {
"color": 6,
"width": 520,
"height": 972,
"content": "# 🔄 Step 3: Split Monitoring Tasks\n\n**This Node**: Breaks down the monitoring process into individual product-competitor combinations for parallel processing\n\n## Task Distribution\n- **Batch Processing**: Handles multiple products simultaneously\n- **Load Balancing**: Distributes scraping tasks evenly\n- **Parallel Execution**: Enables concurrent data collection\n- **Error Isolation**: Prevents single failures from stopping entire process\n\n## Efficiency Benefits\n- **Faster Processing**: Multiple scrapers run simultaneously\n- **Resource Optimization**: Better utilization of API limits\n- **Scalability**: Easy to add more products or competitors\n- **Reliability**: Independent processing reduces failure points\n\n## Task Structure\n- **Product Information**: ID, name, current price, costs\n- **Competitor Mapping**: Platform URLs and search terms\n- **Market Context**: Time-based demand factors\n- **Batch Tracking**: Progress monitoring and session management"
},
"typeVersion": 1
},
{
"id": "a5ac5442-b660-4b05-bfd3-6e1e09599ec6",
"name": "Étape 4 : Traitement des tâches",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1232,
-848
],
"parameters": {
"width": 520,
"height": 908,
"content": "# 🎛️ Step 4: Task Processor\n\n**This Node**: Prepares individual monitoring tasks with enhanced context data for the AI scrapers\n\n## Task Enhancement\n- **URL Generation**: Creates specific search URLs for each competitor platform\n- **Context Addition**: Adds market timing and demand factors\n- **Data Structuring**: Formats data for optimal AI scraper performance\n- **Session Tracking**: Maintains batch progress and correlation\n\n## Data Preparation\n- **Product Context**: Current pricing and inventory data\n- **Market Timing**: Hour, day, season, and demand multipliers\n- **Competitor Focus**: Platform-specific search parameters\n- **Quality Controls**: Data validation and error handling\n\n## Output Optimization\n- **Structured Queries**: Consistent format for AI scrapers\n- **Batch Correlation**: Links tasks to overall session\n- **Performance Tracking**: Monitors processing efficiency\n- **Error Handling**: Graceful failure management"
},
"typeVersion": 1
},
{
"id": "00f15e33-1fdd-42b0-9ee2-3fab33578d0a",
"name": "Étapes 5-7 : Réseau de récupération IA",
"type": "n8n-nodes-base.stickyNote",
"position": [
-672,
-880
],
"parameters": {
"color": 3,
"width": 560,
"height": 1528,
"content": "# 🤖 Steps 5-7: Multi-Source AI Scraping Network\n\n**These Nodes**: Three specialized AI scrapers running in parallel for comprehensive market analysis\n\n## 💵 Competitor Price Scraper (Step 5)\n- **Platforms**: Amazon, Best Buy, Walmart, Target\n- **Data Points**: Prices, discounts, ratings, availability\n- **Intelligence**: Product matching, price statistics, market trends\n- **Output**: Min/max/avg prices, promotion frequency, brand analysis\n\n## 📈 Demand Analysis Scraper (Step 6)\n- **Source**: Google Trends and search volume data\n- **Metrics**: Search trends, related queries, geographic interest\n- **Intelligence**: Seasonal patterns, demand indicators, growth opportunities\n- **Output**: Interest scores, trend velocity, market saturation analysis\n\n## 💭 Customer Sentiment Scraper (Step 7)\n- **Source**: Product reviews and customer feedback\n- **Analysis**: Price sensitivity, value perception, satisfaction\n- **Intelligence**: Purchase drivers, price complaints, elasticity indicators\n- **Output**: Sentiment scores, willingness to pay premium, brand loyalty\n\n## 🧠 AI Processing Benefits\n- **Real-Time Analysis**: Fresh market data every hour\n- **Structured Output**: Consistent JSON schemas for analysis\n- **Quality Filtering**: Relevance scoring and data validation\n- **Market Intelligence**: Context-aware pricing insights"
},
"typeVersion": 1
},
{
"id": "9ce3e860-67ae-4aab-b9cd-c6269bd454a2",
"name": "Étape 8 : Fusion des données",
"type": "n8n-nodes-base.stickyNote",
"position": [
-32,
-880
],
"parameters": {
"color": 5,
"width": 520,
"height": 972,
"content": "# 🔗 Step 8: Merge Pricing Data\n\n**This Node**: Combines data from all three AI scrapers into a unified dataset for analysis\n\n## Data Integration\n- **Multi-Source Combination**: Merges competitor, demand, and sentiment data\n- **Data Correlation**: Links related information across different sources\n- **Quality Validation**: Ensures data consistency and completeness\n- **Structure Standardization**: Creates uniform data format for analysis\n\n## Merge Strategy\n- **Position-Based Combination**: Aligns data from parallel scraper executions\n- **Error Handling**: Manages missing or incomplete data gracefully\n- **Data Enrichment**: Adds metadata and processing timestamps\n- **Performance Optimization**: Efficient data structure for analysis engine\n\n## Output Preparation\n- **Unified Dataset**: Single comprehensive data object\n- **Analysis Ready**: Structured for optimization algorithm\n- **Context Preservation**: Maintains market timing and product information\n- **Quality Metrics**: Includes data confidence and completeness scores"
},
"typeVersion": 1
},
{
"id": "4e7939e9-7ce9-494a-b3eb-3196401be13f",
"name": "Étape 9 : Moteur d'optimisation",
"type": "n8n-nodes-base.stickyNote",
"position": [
576,
-896
],
"parameters": {
"color": 5,
"width": 560,
"height": 1130,
"content": "# 🧠 Step 9: Pricing Optimization Engine\n\n**This Node**: Advanced AI algorithm that calculates optimal pricing based on all market factors\n\n## Optimization Factors (Weighted)\n- **Competitor Analysis (35%)**: Position relative to market average\n- **Demand Indicators (25%)**: Search trends and seasonal patterns\n- **Customer Sentiment (20%)**: Price sensitivity and satisfaction\n- **Inventory Levels (10%)**: Stock-based pricing adjustments\n- **Margin Protection (10%)**: Profitability safeguards\n\n## Advanced Algorithms\n- **Competitive Positioning**: Smart pricing relative to market leaders\n- **Demand Elasticity**: Price sensitivity impact modeling\n- **Inventory Optimization**: Stock velocity pricing adjustments\n- **Revenue Maximization**: Profit vs. volume optimization\n- **Risk Assessment**: Confidence scoring for price changes\n\n## Price Change Controls\n- **Maximum Change**: 15% per hour to prevent market shock\n- **Minimum Threshold**: Only change prices >2% difference\n- **Margin Protection**: Never go below minimum margin requirements\n- **Price Constraints**: Respect min/max price boundaries\n\n## Strategy Selection Logic\n- **Aggressive**: High inventory + competitive pressure\n- **Premium**: Low inventory + strong demand\n- **Competitive**: Normal conditions + market alignment"
},
"typeVersion": 1
},
{
"id": "072f6675-ad8c-4817-8cce-809410a2dc5b",
"name": "Étape 10 : Filtre de changement de prix",
"type": "n8n-nodes-base.stickyNote",
"position": [
1232,
-896
],
"parameters": {
"color": 6,
"width": 520,
"height": 1010,
"content": "# 🎯 Step 10: Price Change Filter\n\n**This Node**: Intelligent filtering system that determines which price changes should be implemented\n\n## Filtering Criteria\n- **Significance Threshold**: Only process changes >2% to avoid noise\n- **Confidence Gating**: Require >70% confidence for implementation\n- **Market Validation**: Cross-reference multiple data sources\n- **Risk Assessment**: Evaluate potential negative impacts\n\n## Quality Gates\n- **Data Quality Check**: Ensure all required data is present\n- **Margin Verification**: Confirm profitability is maintained\n- **Competitive Position**: Validate market positioning makes sense\n- **Revenue Impact**: Estimate financial consequences\n\n## Decision Logic\n- **AND Condition**: Both significance AND confidence must be met\n- **Safety Override**: Manual controls can bypass filters\n- **Test Mode**: Option to simulate without actual changes\n- **Approval Workflow**: Optional human review for large changes\n\n## Output Routing\n- **Approved Changes**: Route to price update API and notifications\n- **Rejected Changes**: Log for analysis but don't implement\n- **All Changes**: Log to analytics regardless of approval status"
},
"typeVersion": 1
},
{
"id": "762ffd8e-29a7-4758-a952-806937912878",
"name": "Étapes 11-15 : Analytique & communication",
"type": "n8n-nodes-base.stickyNote",
"position": [
1872,
-928
],
"parameters": {
"color": 7,
"width": 864,
"height": 1588,
"content": "# 📊 Steps 11-15: Analytics & Communication\n\n**These Nodes**: Comprehensive tracking, reporting, and team communication system\n\n## Step 11: Price Update API Call\n- **E-commerce Integration**: Direct price updates to your platform\n- **API Authentication**: Secure connection to pricing system\n- **Batch Processing**: Efficient bulk price updates\n- **Error Handling**: Retry logic and failure management\n\n## Steps 12-13: Google Sheets Logging\n- **Pricing History**: Every change logged with full context\n- **Revenue Analytics**: Performance tracking and projections\n- **Trend Analysis**: Historical patterns and insights\n- **Dashboard Integration**: Real-time reporting capabilities\n\n## Step 14: Slack Notifications\n- **Instant Alerts**: Immediate notifications for price changes\n- **Smart Formatting**: Rich context with market analysis\n- **Team Coordination**: Channel-based communication\n- **Performance Metrics**: Summary statistics and trends\n\n## Step 15: Email Reports\n- **Executive Summaries**: HTML-formatted comprehensive reports\n- **Market Intelligence**: Competitor analysis and insights\n- **Revenue Impact**: Financial performance and projections\n- **Strategic Recommendations**: Next steps and opportunities\n\n## Success Tracking\n- **Real-Time Monitoring**: Continuous performance measurement\n- **ROI Analysis**: Revenue impact and optimization effectiveness\n- **Market Position**: Competitive advantage tracking"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "c1049f9a-f6ff-4423-aae3-8f7b17f5e238",
"connections": {
"1d1e1e73-96ed-48a1-b35f-c6763c7432fc": {
"main": [
[
{
"node": "44854565-bda3-4823-b8aa-221c9d0862aa",
"type": "main",
"index": 0
},
{
"node": "8ef3100b-2c01-403d-8d51-15fc3bed6ee3",
"type": "main",
"index": 0
},
{
"node": "08667817-4134-4999-a74f-a83cf0080614",
"type": "main",
"index": 0
}
]
]
},
"28f0d262-548e-4f3d-b979-dd3f7a83a723": {
"main": [
[
{
"node": "1f84e997-4771-42fb-bb6e-b9d38693e80e",
"type": "main",
"index": 0
}
]
]
},
"863baca7-51c3-4e8e-9f26-b8ac88f722b3": {
"main": [
[
{
"node": "0a6015f3-9594-43f6-aadb-24b1272078a4",
"type": "main",
"index": 0
},
{
"node": "ba6667ca-f603-4a50-a7cd-5242dd8a35f5",
"type": "main",
"index": 0
},
{
"node": "092569d1-062b-4065-8fd8-5d4620889402",
"type": "main",
"index": 0
}
]
]
},
"5da725c9-5cf0-406e-a929-a5eaf7d86e10": {
"main": [
[
{
"node": "1d1e1e73-96ed-48a1-b35f-c6763c7432fc",
"type": "main",
"index": 0
}
]
]
},
"8ef3100b-2c01-403d-8d51-15fc3bed6ee3": {
"main": [
[
{
"node": "28f0d262-548e-4f3d-b979-dd3f7a83a723",
"type": "main",
"index": 1
}
]
]
},
"44854565-bda3-4823-b8aa-221c9d0862aa": {
"main": [
[
{
"node": "28f0d262-548e-4f3d-b979-dd3f7a83a723",
"type": "main",
"index": 0
}
]
]
},
"1f84e997-4771-42fb-bb6e-b9d38693e80e": {
"main": [
[
{
"node": "863baca7-51c3-4e8e-9f26-b8ac88f722b3",
"type": "main",
"index": 0
},
{
"node": "f48d631a-3296-4815-a462-c6c83c3f282a",
"type": "main",
"index": 0
},
{
"node": "c033cad3-3efe-4504-9c48-56ffb6efdc0a",
"type": "main",
"index": 0
}
]
]
},
"08667817-4134-4999-a74f-a83cf0080614": {
"main": [
[
{
"node": "28f0d262-548e-4f3d-b979-dd3f7a83a723",
"type": "main",
"index": 1
}
]
]
},
"a6fbe4c4-1091-432d-b21a-9bdc41133bb2": {
"main": [
[
{
"node": "ad01958e-33d3-4b19-95c3-302b57b0e309",
"type": "main",
"index": 0
}
]
]
},
"ad01958e-33d3-4b19-95c3-302b57b0e309": {
"main": [
[
{
"node": "5da725c9-5cf0-406e-a929-a5eaf7d86e10",
"type": "main",
"index": 0
}
]
]
}
}
}Comment utiliser ce workflow ?
Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.
Dans quelles scénarios ce workflow est-il adapté ?
Avancé - Étude de marché, Résumé IA
Est-ce payant ?
Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.
Workflows recommandés
vinci-king-01
@vinci-king-01Partager ce workflow