호텔 객실 가격 확인기
이것은Market Research분야의자동화 워크플로우로, 29개의 노드를 포함합니다.주로 If, Code, Merge, EmailSend, HttpRequest 등의 노드를 사용하며. 호텔 가격 하락 자동 알림 (이메일 알림 및 데이터베이스 추적 포함)
- •대상 API의 인증 정보가 필요할 수 있음
카테고리
{
"id": "32sZD8EotVPD5r21",
"meta": {
"instanceId": "dd69efaf8212c74ad206700d104739d3329588a6f3f8381a46a481f34c9cc281",
"templateCredsSetupCompleted": true
},
"name": "Hotel Room Price Checker",
"tags": [],
"nodes": [
{
"id": "4ee06ed2-858c-451d-80d1-50e5149f8be3",
"name": "스케줄 - 6시간마다",
"type": "n8n-nodes-base.scheduleTrigger",
"notes": "Triggers price check automatically every 6 hours to monitor rate changes",
"position": [
-2112,
64
],
"parameters": {
"rule": {
"interval": [
{
"field": "hours",
"hoursInterval": 6
}
]
}
},
"typeVersion": 1.2
},
{
"id": "a1be7480-2816-4d1a-b64d-24a4d123f9e5",
"name": "스티키 노트",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2160,
-192
],
"parameters": {
"color": 4,
"width": 220,
"height": 396,
"content": "## ⏰ TRIGGER\nRuns price check every 6 hours automatically"
},
"typeVersion": 1
},
{
"id": "566c0b0a-7671-4ee0-a248-b9ffb8e90d55",
"name": "호텔 목록 불러오기",
"type": "n8n-nodes-base.code",
"notes": "Loads list of hotels to monitor from database or configuration",
"position": [
-1888,
64
],
"parameters": {
"jsCode": "// List of hotels to monitor\n// In production, this would come from a database\nconst hotelsToMonitor = [\n {\n hotelId: 'hotel_001',\n hotelName: 'Grand Plaza Hotel',\n location: 'New York, USA',\n roomType: 'Deluxe Suite',\n bookingUrl: 'https://booking.com/hotel-001',\n apiEndpoint: 'https://api.hotelbooking.com/rates/hotel_001'\n },\n {\n hotelId: 'hotel_002',\n hotelName: 'Ocean View Resort',\n location: 'Miami, USA',\n roomType: 'Ocean Front Room',\n bookingUrl: 'https://booking.com/hotel-002',\n apiEndpoint: 'https://api.hotelbooking.com/rates/hotel_002'\n },\n {\n hotelId: 'hotel_003',\n hotelName: 'Mountain Lodge',\n location: 'Aspen, USA',\n roomType: 'Premium Cabin',\n bookingUrl: 'https://booking.com/hotel-003',\n apiEndpoint: 'https://api.hotelbooking.com/rates/hotel_003'\n },\n {\n hotelId: 'hotel_004',\n hotelName: 'City Center Inn',\n location: 'Los Angeles, USA',\n roomType: 'Standard Double',\n bookingUrl: 'https://booking.com/hotel-004',\n apiEndpoint: 'https://api.hotelbooking.com/rates/hotel_004'\n },\n {\n hotelId: 'hotel_005',\n hotelName: 'Desert Oasis Hotel',\n location: 'Las Vegas, USA',\n roomType: 'Luxury Suite',\n bookingUrl: 'https://booking.com/hotel-005',\n apiEndpoint: 'https://api.hotelbooking.com/rates/hotel_005'\n }\n];\n\nreturn hotelsToMonitor.map(hotel => ({\n json: {\n ...hotel,\n checkTimestamp: new Date().toISOString(),\n checkDate: new Date().toLocaleDateString('en-US', { \n year: 'numeric', \n month: 'long', \n day: 'numeric' \n })\n }\n}));"
},
"typeVersion": 2
},
{
"id": "89a5c7bd-ef50-4a9c-9970-31eca24fe4ae",
"name": "스티키 노트1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1936,
-144
],
"parameters": {
"color": 5,
"width": 220,
"height": 348,
"content": "## 🏨 HOTEL LIST\nLoads all hotels that need price monitoring"
},
"typeVersion": 1
},
{
"id": "1022f8d7-e6d9-4641-8f54-6f9e8345f928",
"name": "API에서 현재 가격 가져오기",
"type": "n8n-nodes-base.httpRequest",
"notes": "Retrieves real-time pricing data from hotel booking API",
"position": [
-1680,
64
],
"parameters": {
"url": "={{ $json.apiEndpoint }}",
"options": {
"response": {
"response": {
"neverError": true
}
}
},
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Accept",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "05fee65a-e5f1-455d-b3d3-fc1d8cc35099",
"name": "스티키 노트2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1712,
-176
],
"parameters": {
"color": 6,
"width": 220,
"height": 380,
"content": "## 💰 PRICE API\nFetches current room rates in real-time"
},
"typeVersion": 1
},
{
"id": "6721055e-ee7d-475f-a06b-30897d37c293",
"name": "가격 데이터 파싱",
"type": "n8n-nodes-base.code",
"notes": "Extracts and formats current price information from API response",
"position": [
-1456,
64
],
"parameters": {
"jsCode": "// Parse API response and extract price\n// Since we're simulating, generate random prices\nconst hotelData = $('Load Hotel List').item.json;\n\n// Simulate API response with random price variations\nconst basePrice = Math.floor(Math.random() * (500 - 150 + 1)) + 150;\nconst priceVariation = Math.floor(Math.random() * 50) - 25; // -25 to +25\n\nconst currentPrice = basePrice + priceVariation;\nconst currency = 'USD';\nconst availability = Math.random() > 0.2 ? 'Available' : 'Limited';\n\nreturn {\n json: {\n hotelId: hotelData.hotelId,\n hotelName: hotelData.hotelName,\n location: hotelData.location,\n roomType: hotelData.roomType,\n bookingUrl: hotelData.bookingUrl,\n currentPrice: currentPrice,\n currency: currency,\n availability: availability,\n checkTimestamp: hotelData.checkTimestamp,\n checkDate: hotelData.checkDate,\n pricePerNight: currentPrice,\n taxesIncluded: true\n }\n};"
},
"typeVersion": 2
},
{
"id": "6f4a0e90-9da5-4a77-b307-9457186ac341",
"name": "스티키 노트3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1488,
-192
],
"parameters": {
"color": 5,
"width": 220,
"height": 396,
"content": "## 📊 PARSE DATA\nExtracts price and availability info"
},
"typeVersion": 1
},
{
"id": "e3731717-d4b4-429f-838a-81fdb625f1b5",
"name": "DB에서 이전 가격 조회",
"type": "n8n-nodes-base.httpRequest",
"notes": "Retrieves last recorded price from database for comparison",
"position": [
-1232,
64
],
"parameters": {
"url": "https://your-database-api.com/prices/history",
"options": {
"response": {
"response": {
"neverError": true
}
}
},
"sendQuery": true,
"queryParameters": {
"parameters": [
{
"name": "hotel_id",
"value": "={{ $json.hotelId }}"
},
{
"name": "room_type",
"value": "={{ $json.roomType }}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "01becb4a-1f77-42e6-9c4f-baffbfe89dd9",
"name": "스티키 노트4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1264,
-240
],
"parameters": {
"color": 4,
"width": 220,
"height": 444,
"content": "## 🗄️ DATABASE QUERY\nFetches previous price record"
},
"typeVersion": 1
},
{
"id": "4c56305a-577a-4078-9480-67247af82062",
"name": "가격 비교",
"type": "n8n-nodes-base.code",
"notes": "Calculates price difference and percentage change from previous check",
"position": [
-1008,
64
],
"parameters": {
"jsCode": "// Compare current price with previous price\nconst currentData = $('Parse Price Data').item.json;\nconst currentPrice = currentData.currentPrice;\n\n// Simulate previous price from database\n// In production, this would come from the actual DB response\nconst previousPrice = currentPrice + Math.floor(Math.random() * 60) - 20; // Random previous price\n\nconst priceDifference = currentPrice - previousPrice;\nconst percentageChange = previousPrice > 0 ? ((priceDifference / previousPrice) * 100).toFixed(2) : 0;\nconst priceChanged = priceDifference !== 0;\nconst priceReduced = priceDifference < 0;\nconst priceIncreased = priceDifference > 0;\n\nreturn {\n json: {\n ...currentData,\n previousPrice: previousPrice,\n currentPrice: currentPrice,\n priceDifference: priceDifference,\n percentageChange: percentageChange,\n priceChanged: priceChanged,\n priceReduced: priceReduced,\n priceIncreased: priceIncreased,\n changeDirection: priceReduced ? 'decreased' : (priceIncreased ? 'increased' : 'unchanged'),\n savingsAmount: priceReduced ? Math.abs(priceDifference) : 0\n }\n};"
},
"typeVersion": 2
},
{
"id": "024fba14-4c8a-4036-9236-a4073d7be5fb",
"name": "스티키 노트5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1040,
-224
],
"parameters": {
"color": 6,
"width": 220,
"height": 460,
"content": "## 🔍 PRICE COMPARISON\nCalculates difference and change %"
},
"typeVersion": 1
},
{
"id": "b209b7b7-d4ba-4b37-85f3-f11b3eac630f",
"name": "가격 하락 여부 확인",
"type": "n8n-nodes-base.if",
"notes": "Filters only hotels where price has decreased to send alerts",
"position": [
-800,
64
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": false
},
"combinator": "and",
"conditions": [
{
"id": "price-reduced-check",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $json.priceReduced }}",
"rightValue": true
}
]
}
},
"typeVersion": 2
},
{
"id": "73133073-2222-4af6-9337-b572e9323058",
"name": "스티키 노트6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-832,
-112
],
"parameters": {
"color": 5,
"width": 220,
"height": 332,
"content": "## ✅ PRICE FILTER\nIdentifies reduced prices only"
},
"typeVersion": 1
},
{
"id": "d1c8b9af-4626-4cc5-a72c-06b5ec68a126",
"name": "알림 이메일 포맷팅",
"type": "n8n-nodes-base.code",
"notes": "Creates formatted HTML email with price comparison and booking details",
"position": [
-560,
-32
],
"parameters": {
"jsCode": "// Format data for alert email\nconst data = $input.item.json;\n\nconst emailSubject = `🎉 Price Drop Alert: ${data.hotelName} - Save $${data.savingsAmount}!`;\n\nconst emailBody = `\n<html>\n<head>\n <style>\n body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }\n .container { max-width: 600px; margin: 0 auto; padding: 20px; }\n .header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 30px; text-align: center; border-radius: 10px 10px 0 0; }\n .content { background: #f9f9f9; padding: 30px; border-radius: 0 0 10px 10px; }\n .price-box { background: white; padding: 20px; margin: 20px 0; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }\n .old-price { text-decoration: line-through; color: #999; font-size: 18px; }\n .new-price { color: #22c55e; font-size: 32px; font-weight: bold; }\n .savings { background: #22c55e; color: white; padding: 10px 20px; border-radius: 5px; display: inline-block; margin: 10px 0; }\n .details { margin: 20px 0; }\n .detail-row { padding: 10px 0; border-bottom: 1px solid #eee; }\n .label { font-weight: bold; color: #667eea; }\n .cta-button { background: #667eea; color: white; padding: 15px 30px; text-decoration: none; border-radius: 5px; display: inline-block; margin: 20px 0; }\n .footer { text-align: center; color: #999; margin-top: 30px; font-size: 12px; }\n </style>\n</head>\n<body>\n <div class=\"container\">\n <div class=\"header\">\n <h1>🏨 Hotel Price Drop Alert!</h1>\n <p>Great news! A price reduction has been detected</p>\n </div>\n <div class=\"content\">\n <h2>${data.hotelName}</h2>\n <p><strong>📍 Location:</strong> ${data.location}</p>\n <p><strong>🛏️ Room Type:</strong> ${data.roomType}</p>\n \n <div class=\"price-box\">\n <p><span class=\"label\">Previous Price:</span> <span class=\"old-price\">$${data.previousPrice} ${data.currency}</span></p>\n <p><span class=\"label\">Current Price:</span> <span class=\"new-price\">$${data.currentPrice} ${data.currency}</span></p>\n <div class=\"savings\">💰 Save $${data.savingsAmount} (${Math.abs(data.percentageChange)}% OFF)</div>\n </div>\n \n <div class=\"details\">\n <div class=\"detail-row\">\n <span class=\"label\">Availability:</span> ${data.availability}\n </div>\n <div class=\"detail-row\">\n <span class=\"label\">Price Per Night:</span> $${data.pricePerNight} ${data.currency}\n </div>\n <div class=\"detail-row\">\n <span class=\"label\">Taxes:</span> ${data.taxesIncluded ? 'Included' : 'Not Included'}\n </div>\n <div class=\"detail-row\">\n <span class=\"label\">Checked On:</span> ${data.checkDate}\n </div>\n </div>\n \n <center>\n <a href=\"${data.bookingUrl}\" class=\"cta-button\">Book Now & Save!</a>\n </center>\n \n <p style=\"margin-top: 20px; padding: 15px; background: #fff3cd; border-left: 4px solid #ffc107; border-radius: 4px;\">\n ⚠️ <strong>Act Fast!</strong> Prices can change at any time. This deal might not last long.\n </p>\n </div>\n <div class=\"footer\">\n <p>This is an automated price alert from your Hotel Price Monitoring System</p>\n <p>You're receiving this because you're monitoring ${data.hotelName}</p>\n </div>\n </div>\n</body>\n</html>\n`;\n\nreturn {\n json: {\n ...data,\n emailSubject: emailSubject,\n emailBody: emailBody,\n alertType: 'price_reduction',\n urgencyLevel: Math.abs(data.percentageChange) > 20 ? 'high' : 'medium'\n }\n};"
},
"typeVersion": 2
},
{
"id": "db1d5f57-2f0e-4b7f-82a1-b29d219dab34",
"name": "스티키 노트7",
"type": "n8n-nodes-base.stickyNote",
"position": [
-608,
-256
],
"parameters": {
"color": 4,
"width": 220,
"height": 268,
"content": "## 📧 EMAIL FORMATTING\nCreates beautiful HTML alert email"
},
"typeVersion": 1
},
{
"id": "7cfa40a4-8201-4a19-b7fa-cff35c636ffe",
"name": "여행사에 이메일 전송",
"type": "n8n-nodes-base.emailSend",
"notes": "Sends price drop alert email to travel agent with all details",
"position": [
-352,
-32
],
"webhookId": "f773dc8e-659e-4ee0-a3f8-cd52294c43cf",
"parameters": {
"options": {},
"subject": "={{ $json.emailSubject }}",
"toEmail": "travelagent@agency.com",
"fromEmail": "alerts@hotelpricemonitor.com"
},
"credentials": {
"smtp": {
"id": "G1kyF8cSWTZ4vouN",
"name": "SMTP -test"
}
},
"typeVersion": 2.1
},
{
"id": "59598261-84cb-49b5-ad85-15572316d478",
"name": "스티키 노트8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-368,
-256
],
"parameters": {
"color": 6,
"width": 220,
"height": 268,
"content": "## 📮 EMAIL DELIVERY\nSends alert to travel agent"
},
"typeVersion": 1
},
{
"id": "01ed82a5-104f-4282-844f-faf5d4bd872a",
"name": "알림 전송 로깅",
"type": "n8n-nodes-base.code",
"notes": "Records alert delivery for tracking and audit purposes",
"position": [
-128,
-32
],
"parameters": {
"jsCode": "// Log successful alert\nconst data = $input.item.json;\n\nreturn {\n json: {\n hotelId: data.hotelId,\n hotelName: data.hotelName,\n alertSent: true,\n alertTimestamp: new Date().toISOString(),\n previousPrice: data.previousPrice,\n currentPrice: data.currentPrice,\n savingsAmount: data.savingsAmount,\n percentageChange: data.percentageChange,\n recipientEmail: 'travelagent@agency.com',\n alertType: 'price_reduction'\n }\n};"
},
"typeVersion": 2
},
{
"id": "bc82882c-6e33-47ed-b91a-f1eeb426908d",
"name": "스티키 노트9",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
-272
],
"parameters": {
"color": 5,
"width": 220,
"height": 284,
"content": "## 📝 ALERT LOGGING\nRecords successful alert delivery"
},
"typeVersion": 1
},
{
"id": "5c98bfac-f475-4f97-b359-c6d2a1b88086",
"name": "알림 불필요 로깅",
"type": "n8n-nodes-base.code",
"notes": "Records check where no alert was needed (price unchanged or increased)",
"position": [
-560,
160
],
"parameters": {
"jsCode": "// Log no change detected\nconst data = $input.item.json;\n\nreturn {\n json: {\n hotelId: data.hotelId,\n hotelName: data.hotelName,\n alertSent: false,\n checkTimestamp: new Date().toISOString(),\n previousPrice: data.previousPrice,\n currentPrice: data.currentPrice,\n priceChanged: data.priceChanged,\n changeDirection: data.changeDirection,\n reason: data.priceIncreased ? 'price_increased' : 'no_change'\n }\n};"
},
"typeVersion": 2
},
{
"id": "461d09c9-0695-4ac8-bd8b-6f1b732a8b32",
"name": "스티키 노트10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-752,
304
],
"parameters": {
"color": 4,
"width": 220,
"height": 140,
"content": "## 📋 NO ALERT LOG\nRecords when prices didn't decrease"
},
"typeVersion": 1
},
{
"id": "5c074f64-4562-4cc6-adb4-6dd9e5d07ba3",
"name": "모든 로그 병합",
"type": "n8n-nodes-base.merge",
"notes": "Combines logs from both alert and no-alert paths",
"position": [
-352,
160
],
"parameters": {
"mode": "combine",
"options": {}
},
"typeVersion": 3
},
{
"id": "c2c40b1d-d5cd-4221-9395-54eb169a262a",
"name": "스티키 노트11",
"type": "n8n-nodes-base.stickyNote",
"position": [
-448,
304
],
"parameters": {
"color": 6,
"width": 200,
"height": 140,
"content": "## 🔀 LOG MERGE\nCombines all check results"
},
"typeVersion": 1
},
{
"id": "400a11eb-2dc0-425e-a167-98312b3f8173",
"name": "데이터베이스 가격 업데이트",
"type": "n8n-nodes-base.httpRequest",
"notes": "Updates database with latest price for future comparisons",
"position": [
-128,
160
],
"parameters": {
"url": "https://your-database-api.com/prices/update",
"options": {},
"sendBody": true,
"sendHeaders": true,
"bodyParameters": {
"parameters": [
{
"name": "hotel_id",
"value": "={{ $('Parse Price Data').item.json.hotelId }}"
},
{
"name": "room_type",
"value": "={{ $('Parse Price Data').item.json.roomType }}"
},
{
"name": "price",
"value": "={{ $('Parse Price Data').item.json.currentPrice }}"
},
{
"name": "currency",
"value": "={{ $('Parse Price Data').item.json.currency }}"
},
{
"name": "availability",
"value": "={{ $('Parse Price Data').item.json.availability }}"
},
{
"name": "timestamp",
"value": "={{ $('Parse Price Data').item.json.checkTimestamp }}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "f52dff1c-b64f-4e04-9273-ed3b26074e37",
"name": "스티키 노트12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-176,
320
],
"parameters": {
"color": 5,
"width": 220,
"height": 140,
"content": "## 💾 DATABASE UPDATE\nStores new price for next comparison"
},
"typeVersion": 1
},
{
"id": "33fccfde-7e4a-464c-b056-97ef34d8e7ec",
"name": "실행 요약 생성",
"type": "n8n-nodes-base.code",
"notes": "Generates summary report of price check execution and alerts sent",
"position": [
96,
64
],
"parameters": {
"jsCode": "// Generate execution summary\nconst allLogs = $input.all();\n\nconst totalHotels = allLogs.length;\nconst alertsSent = allLogs.filter(item => item.json.alertSent === true).length;\nconst noAlerts = allLogs.filter(item => item.json.alertSent === false).length;\n\nconst summary = {\n executionTimestamp: new Date().toISOString(),\n executionDate: new Date().toLocaleDateString('en-US', { \n year: 'numeric', \n month: 'long', \n day: 'numeric',\n hour: '2-digit',\n minute: '2-digit'\n }),\n totalHotelsChecked: totalHotels,\n priceDropAlertsRaised: alertsSent,\n noAlertsNeeded: noAlerts,\n alertRate: totalHotels > 0 ? ((alertsSent / totalHotels) * 100).toFixed(1) + '%' : '0%',\n status: 'completed',\n nextCheckIn: '6 hours'\n};\n\nreturn {\n json: summary\n};"
},
"typeVersion": 2
},
{
"id": "552c8be1-cda3-4a06-834d-735f11e88fbf",
"name": "스티키 노트13",
"type": "n8n-nodes-base.stickyNote",
"position": [
80,
-112
],
"parameters": {
"color": 4,
"width": 220,
"height": 284,
"content": "## 📊 SUMMARY REPORT\nCreates execution statistics"
},
"typeVersion": 1
},
{
"id": "f141855d-90f2-47bc-9839-c5953f12863c",
"name": "스티키 노트14",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1600,
-1216
],
"parameters": {
"color": 7,
"width": 380,
"height": 792,
"content": "## 🏨 HOTEL ROOM PRICE CHECKER\n\n**Automated Price Monitoring System**\n\n**Features:**\n✓ Checks prices every 6 hours\n✓ Monitors multiple hotels\n✓ Detects price reductions\n✓ Sends instant email alerts\n✓ Shows old vs new prices\n✓ Calculates savings amount\n✓ Tracks price history\n✓ Beautiful HTML emails\n\n**Alert Triggers:**\n• Price decreased\n• Percentage savings\n• Availability changes\n\n**Email Includes:**\n• Hotel name & location\n• Room type details\n• Old price (strikethrough)\n• New price (highlighted)\n• Savings amount & %\n• Direct booking link\n• Urgency indicator\n\n**Setup Required:**\n1. Configure schedule trigger\n2. Add hotel API credentials\n3. Setup database endpoint\n4. Configure SMTP for emails\n5. Update agent email address\n6. Customize hotel list\n7. Test price comparison logic"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "c121be3a-bd75-426b-9e52-9f1859cb47c6",
"connections": {
"4c56305a-577a-4078-9480-67247af82062": {
"main": [
[
{
"node": "b209b7b7-d4ba-4b37-85f3-f11b3eac630f",
"type": "main",
"index": 0
}
]
]
},
"01ed82a5-104f-4282-844f-faf5d4bd872a": {
"main": [
[
{
"node": "5c074f64-4562-4cc6-adb4-6dd9e5d07ba3",
"type": "main",
"index": 0
}
]
]
},
"5c074f64-4562-4cc6-adb4-6dd9e5d07ba3": {
"main": [
[
{
"node": "400a11eb-2dc0-425e-a167-98312b3f8173",
"type": "main",
"index": 0
}
]
]
},
"566c0b0a-7671-4ee0-a248-b9ffb8e90d55": {
"main": [
[
{
"node": "1022f8d7-e6d9-4641-8f54-6f9e8345f928",
"type": "main",
"index": 0
}
]
]
},
"6721055e-ee7d-475f-a06b-30897d37c293": {
"main": [
[
{
"node": "e3731717-d4b4-429f-838a-81fdb625f1b5",
"type": "main",
"index": 0
}
]
]
},
"d1c8b9af-4626-4cc5-a72c-06b5ec68a126": {
"main": [
[
{
"node": "7cfa40a4-8201-4a19-b7fa-cff35c636ffe",
"type": "main",
"index": 0
}
]
]
},
"5c98bfac-f475-4f97-b359-c6d2a1b88086": {
"main": [
[
{
"node": "5c074f64-4562-4cc6-adb4-6dd9e5d07ba3",
"type": "main",
"index": 1
}
]
]
},
"b209b7b7-d4ba-4b37-85f3-f11b3eac630f": {
"main": [
[
{
"node": "d1c8b9af-4626-4cc5-a72c-06b5ec68a126",
"type": "main",
"index": 0
}
],
[
{
"node": "5c98bfac-f475-4f97-b359-c6d2a1b88086",
"type": "main",
"index": 0
}
]
]
},
"4ee06ed2-858c-451d-80d1-50e5149f8be3": {
"main": [
[
{
"node": "566c0b0a-7671-4ee0-a248-b9ffb8e90d55",
"type": "main",
"index": 0
}
]
]
},
"400a11eb-2dc0-425e-a167-98312b3f8173": {
"main": [
[
{
"node": "33fccfde-7e4a-464c-b056-97ef34d8e7ec",
"type": "main",
"index": 0
}
]
]
},
"e3731717-d4b4-429f-838a-81fdb625f1b5": {
"main": [
[
{
"node": "4c56305a-577a-4078-9480-67247af82062",
"type": "main",
"index": 0
}
]
]
},
"7cfa40a4-8201-4a19-b7fa-cff35c636ffe": {
"main": [
[
{
"node": "01ed82a5-104f-4282-844f-faf5d4bd872a",
"type": "main",
"index": 0
}
]
]
},
"1022f8d7-e6d9-4641-8f54-6f9e8345f928": {
"main": [
[
{
"node": "6721055e-ee7d-475f-a06b-30897d37c293",
"type": "main",
"index": 0
}
]
]
}
}
}이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 시장 조사
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Oneclick AI Squad
@oneclick-aiThe AI Squad Initiative is a pioneering effort to build, automate and scale AI-powered workflows using n8n.io. Our mission is to help individuals and businesses integrate AI agents seamlessly into their daily operations from automating tasks and enhancing productivity to creating innovative, intelligent solutions. We design modular, reusable AI workflow templates that empower creators, developers and teams to supercharge their automation with minimal effort and maximum impact.
이 워크플로우 공유