내 워크플로우 3
중급
이것은Social Media, Multimodal AI분야의자동화 워크플로우로, 14개의 노드를 포함합니다.주로 Code, HttpRequest, ScheduleTrigger 등의 노드를 사용하며. AI 세분화 및 개인화된 이메일 마케팅을 사용한 자동 경쟁사 거래 모니터링
사전 요구사항
- •대상 API의 인증 정보가 필요할 수 있음
사용된 노드 (14)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "WvrxIu1q3XWWkbdc",
"meta": {
"instanceId": "f4b0efaa33080e7774e0d9285c40c7abcd2c6f7cf1a8b901fa7106170dd4cda3",
"templateCredsSetupCompleted": true
},
"name": "My workflow 3",
"tags": [
{
"id": "IZ3TCbPLnlWJhHZq",
"name": "Amazon Intelligence",
"createdAt": "2025-08-04T14:47:06.250Z",
"updatedAt": "2025-08-04T14:47:06.250Z"
}
],
"nodes": [
{
"id": "132eecf6-60ed-4ed8-b03f-bbbe6953d7ab",
"name": "워크플로우 개요",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
-512
],
"parameters": {
"width": 400,
"height": 336,
"content": "🎯 **DEAL INTELLIGENCE & MARKETING AUTOMATION**\n\nThis workflow automatically:\n• Monitors competitor deals daily\n• Segments customers intelligently \n• Generates personalized offers\n• Creates targeted email campaigns\n• Provides analytics & insights\n\n⏰ Runs every day at 8 AM\n📧 Sends daily reports to management"
},
"typeVersion": 1
},
{
"id": "a2c2a600-ce18-4e32-be65-712efd6ad9e5",
"name": "일일 트리거",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
432,
-96
],
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 8 * * *"
}
]
}
},
"typeVersion": 1.2
},
{
"id": "993aac58-cd3e-4721-80d1-b6fa96df976f",
"name": "데이터 수집 설정",
"type": "n8n-nodes-base.stickyNote",
"position": [
784,
-512
],
"parameters": {
"width": 280,
"height": 344,
"content": "🔍 **DATA COLLECTION**\n\n⚠️ SETUP REQUIRED:\n• Replace URL with your target deal site\n• Add authentication if needed\n• Consider rate limiting\n• Set appropriate timeout\n\n💡 TIP: Use multiple sources for better coverage"
},
"typeVersion": 1
},
{
"id": "6463dcab-4fd9-474d-a245-2e62a5c957e7",
"name": "딜 데이터 가져오기",
"type": "n8n-nodes-base.httpRequest",
"position": [
640,
-96
],
"parameters": {
"url": "https://www.retailmenot.com/coupons/electronics",
"options": {
"timeout": 30000
}
},
"typeVersion": 4.1
},
{
"id": "df3fdb3f-9749-4ea2-90e0-6d4c4ab88288",
"name": "딜 분석",
"type": "n8n-nodes-base.code",
"position": [
832,
-96
],
"parameters": {
"jsCode": "// Deal Analysis Engine\nconst dealData = $input.first().json;\n\nfunction analyzeDealData() {\n // Simulated deal analysis since scraping might fail\n const mockDeals = [\n { store: 'Amazon', discount: 30, category: 'electronics', title: 'Echo Dot Sale' },\n { store: 'Best Buy', discount: 25, category: 'electronics', title: 'Laptop Deals' },\n { store: 'Target', discount: 40, category: 'home', title: 'Home Decor Sale' },\n { store: 'Walmart', discount: 20, category: 'general', title: 'Weekly Specials' }\n ];\n\n const analysis = {\n summary: {\n total_deals: mockDeals.length,\n average_discount: Math.round(mockDeals.reduce((sum, deal) => sum + deal.discount, 0) / mockDeals.length),\n top_categories: ['electronics', 'home', 'general'],\n analyzed_at: new Date().toISOString()\n },\n competitive_intelligence: {\n threat_level: mockDeals.some(d => d.discount > 35) ? 'High' : 'Medium',\n top_discounts: mockDeals.sort((a, b) => b.discount - a.discount).slice(0, 3),\n market_activity: 'Active'\n },\n urgent_deals: mockDeals.filter(d => d.discount >= 30)\n };\n\n return analysis;\n}\n\nconst result = analyzeDealData();\nreturn [{ json: result }];"
},
"typeVersion": 2
},
{
"id": "7f254e0e-3156-467a-900f-79a5731cc2ce",
"name": "고객 세분화",
"type": "n8n-nodes-base.code",
"position": [
1040,
-96
],
"parameters": {
"jsCode": "// Customer Segmentation\nconst dealAnalysis = $input.first().json;\n\nfunction segmentCustomers() {\n // Simulated customer database\n const customers = [\n { id: 'C001', name: 'John Smith', email: 'john@example.com', value: 2500, segment: 'vip' },\n { id: 'C002', name: 'Sarah Johnson', email: 'sarah@example.com', value: 450, segment: 'bargain_hunter' },\n { id: 'C003', name: 'Mike Wilson', email: 'mike@example.com', value: 1200, segment: 'at_risk' },\n { id: 'C004', name: 'Emma Davis', email: 'emma@example.com', value: 180, segment: 'new_prospect' }\n ];\n\n const segments = {\n vip_customers: customers.filter(c => c.segment === 'vip'),\n bargain_hunters: customers.filter(c => c.segment === 'bargain_hunter'),\n at_risk: customers.filter(c => c.segment === 'at_risk'),\n new_prospects: customers.filter(c => c.segment === 'new_prospect')\n };\n\n return {\n segments,\n total_customers: customers.length,\n segmentation_date: new Date().toISOString()\n };\n}\n\nconst segmentation = segmentCustomers();\nreturn [{ json: segmentation }];"
},
"typeVersion": 2
},
{
"id": "72b9f5bf-701b-4cee-84c4-368a1564d266",
"name": "인텔리전스 처리",
"type": "n8n-nodes-base.stickyNote",
"position": [
1056,
-512
],
"parameters": {
"width": 300,
"height": 332,
"content": "🧠 **INTELLIGENCE PROCESSING**\n\nDeals are analyzed for:\n• Average discount rates\n• Competitive threat levels\n• Category performance\n• Market activity patterns\n\nCustomers are segmented into:\n• VIP customers (high value)\n• Bargain hunters (price sensitive)\n• At-risk (need retention)\n• New prospects (acquisition)"
},
"typeVersion": 1
},
{
"id": "832b51e7-1d72-463a-b41c-e8f4a0b1605e",
"name": "개인화된 오퍼 생성",
"type": "n8n-nodes-base.code",
"position": [
1232,
-96
],
"parameters": {
"jsCode": "// Generate Personalized Offers\nconst dealAnalysis = $input.item(0).json;\nconst customerSegments = $input.item(1).json;\n\nfunction generateOffers(deals, segments) {\n const avgDiscount = deals.summary.average_discount;\n const threatLevel = deals.competitive_intelligence.threat_level;\n \n const offers = {\n campaign_batches: [],\n offer_summary: {\n total_campaigns: 0,\n projected_revenue: 0,\n generated_at: new Date().toISOString()\n }\n };\n\n // Generate offers for each segment\n Object.keys(segments.segments).forEach(segmentName => {\n const segmentCustomers = segments.segments[segmentName];\n if (segmentCustomers.length === 0) return;\n\n let discountLevel;\n let priority;\n \n switch(segmentName) {\n case 'vip_customers':\n discountLevel = Math.max(15, avgDiscount - 5);\n priority = 'Medium';\n break;\n case 'bargain_hunters':\n discountLevel = Math.max(avgDiscount + 5, 35);\n priority = threatLevel === 'High' ? 'Critical' : 'High';\n break;\n case 'at_risk':\n discountLevel = Math.max(avgDiscount + 10, 40);\n priority = 'Critical';\n break;\n case 'new_prospects':\n discountLevel = Math.max(20, avgDiscount);\n priority = 'Low';\n break;\n default:\n discountLevel = avgDiscount;\n priority = 'Medium';\n }\n\n const batch = {\n segment: segmentName,\n customer_count: segmentCustomers.length,\n discount_percentage: discountLevel,\n priority: priority,\n estimated_revenue: segmentCustomers.length * 75, // $75 average per customer\n customers: segmentCustomers.map(customer => ({\n id: customer.id,\n email: customer.email,\n name: customer.name,\n discount_code: `DEAL${Math.random().toString(36).substr(2, 6).toUpperCase()}`,\n personalized_discount: discountLevel\n }))\n };\n\n offers.campaign_batches.push(batch);\n });\n\n offers.offer_summary.total_campaigns = offers.campaign_batches.length;\n offers.offer_summary.projected_revenue = offers.campaign_batches.reduce(\n (sum, batch) => sum + batch.estimated_revenue, 0\n );\n\n return offers;\n}\n\nconst personalizedOffers = generateOffers(dealAnalysis, customerSegments);\nreturn [{ json: personalizedOffers }];"
},
"typeVersion": 2
},
{
"id": "e4406cd2-d562-4763-8d00-d144c19a0224",
"name": "이메일 캠페인 생성",
"type": "n8n-nodes-base.code",
"position": [
1440,
-96
],
"parameters": {
"jsCode": "// Email Campaign Generator\nconst offers = $input.first().json;\n\nfunction createEmailCampaigns(offerData) {\n const campaigns = [];\n \n offerData.campaign_batches.forEach(batch => {\n batch.customers.forEach(customer => {\n const emailContent = {\n to: customer.email,\n subject: getSubjectLine(batch.segment, customer.personalized_discount),\n campaign_id: `CAMP_${batch.segment.toUpperCase()}_${Date.now()}`,\n customer_name: customer.name,\n discount_code: customer.discount_code,\n discount_percentage: customer.personalized_discount,\n priority: batch.priority,\n template: getEmailTemplate(batch.segment)\n };\n \n campaigns.push(emailContent);\n });\n });\n\n return {\n email_campaigns: campaigns,\n summary: {\n total_emails: campaigns.length,\n high_priority: campaigns.filter(c => c.priority === 'Critical').length,\n projected_revenue: offerData.offer_summary.projected_revenue,\n created_at: new Date().toISOString()\n }\n };\n}\n\nfunction getSubjectLine(segment, discount) {\n const subjects = {\n 'vip_customers': `Exclusive ${discount}% Off - VIP Access Only`,\n 'bargain_hunters': `Flash Sale: ${discount}% Off Everything!`,\n 'at_risk': `We Miss You! ${discount}% Off to Come Back`,\n 'new_prospects': `Welcome! ${discount}% Off Your First Order`\n };\n return subjects[segment] || `Special ${discount}% Discount Just for You`;\n}\n\nfunction getEmailTemplate(segment) {\n const templates = {\n 'vip_customers': 'elegant_gold_template',\n 'bargain_hunters': 'urgent_red_template',\n 'at_risk': 'warm_comeback_template',\n 'new_prospects': 'welcome_blue_template'\n };\n return templates[segment] || 'default_template';\n}\n\nconst emailCampaigns = createEmailCampaigns(offers);\nreturn [{ json: emailCampaigns }];"
},
"typeVersion": 2
},
{
"id": "c2b6338b-4cbd-4d7c-b9e3-dcca918e0640",
"name": "캠페인 생성",
"type": "n8n-nodes-base.stickyNote",
"position": [
1360,
-512
],
"parameters": {
"width": 300,
"height": 332,
"content": "📧 **CAMPAIGN GENERATION**\n\nPersonalized offers based on:\n• Market threat level\n• Customer segment value\n• Historical behavior\n• Competitive pricing\n\nEmail campaigns include:\n• Dynamic subject lines\n• Unique discount codes\n• Segment-specific templates\n• Priority-based scheduling"
},
"typeVersion": 1
},
{
"id": "786942ab-42c2-4ed5-b101-81209bdb0525",
"name": "분석 보고서 생성",
"type": "n8n-nodes-base.code",
"position": [
1632,
-96
],
"parameters": {
"jsCode": "// Analytics Dashboard\nconst dealAnalysis = $input.item(0).json;\nconst customerSegments = $input.item(1).json;\nconst offers = $input.item(2).json;\nconst emailCampaigns = $input.item(3).json;\n\nfunction generateReport(deals, segments, offerData, campaigns) {\n const report = {\n executive_summary: {\n date: new Date().toISOString().split('T')[0],\n total_deals_analyzed: deals.summary.total_deals,\n average_market_discount: deals.summary.average_discount,\n threat_level: deals.competitive_intelligence.threat_level,\n customers_targeted: segments.total_customers,\n campaigns_created: campaigns.summary.total_emails,\n projected_revenue: campaigns.summary.projected_revenue\n },\n key_insights: [\n `Market average discount: ${deals.summary.average_discount}%`,\n `Competitive threat level: ${deals.competitive_intelligence.threat_level}`,\n `${segments.total_customers} customers across ${Object.keys(segments.segments).length} segments`,\n `${campaigns.summary.high_priority} high-priority campaigns scheduled`\n ],\n immediate_actions: [],\n segment_performance: {},\n next_execution: new Date(Date.now() + 24*60*60*1000).toISOString()\n };\n\n // Generate immediate actions based on threat level\n if (deals.competitive_intelligence.threat_level === 'High') {\n report.immediate_actions.push('Deploy aggressive counter-pricing strategy');\n report.immediate_actions.push('Increase email send frequency');\n }\n\n // Segment performance breakdown\n offerData.campaign_batches.forEach(batch => {\n report.segment_performance[batch.segment] = {\n customers: batch.customer_count,\n discount_offered: batch.discount_percentage + '%',\n priority: batch.priority,\n estimated_revenue: batch.estimated_revenue\n };\n });\n\n return report;\n}\n\nconst analyticsReport = generateReport(dealAnalysis, customerSegments, offers, emailCampaigns);\nreturn [{ json: analyticsReport }];"
},
"typeVersion": 2
},
{
"id": "4927d96d-2da5-4ead-aaf9-c3e334e5097f",
"name": "일일 보고서 발송",
"type": "n8n-nodes-base.httpRequest",
"disabled": true,
"position": [
1840,
-96
],
"parameters": {
"url": "https://api.sendgrid.com/v3/mail/send",
"method": "POST",
"options": {},
"sendBody": true,
"sendHeaders": true,
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "personalizations",
"value": "=[{ \"to\": [{ \"email\": \"manager@company.com\" }], \"subject\": \"Daily Deal Intelligence Report\" }]"
},
{
"name": "from",
"value": "={ \"email\": \"noreply@yourcompany.com\", \"name\": \"Deal Intelligence System\" }"
},
{
"name": "content",
"value": "=[{ \"type\": \"text/html\", \"value\": `<h2>Daily Deal Intelligence Report</h2><p>Market Threat Level: <strong>${$json.executive_summary.threat_level}</strong></p><p>Campaigns Created: <strong>${$json.executive_summary.campaigns_created}</strong></p><p>Projected Revenue: <strong>$${$json.executive_summary.projected_revenue}</strong></p>` }]"
}
]
},
"genericAuthType": "httpHeaderAuth",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
}
},
"typeVersion": 4.1
},
{
"id": "08755947-82c6-4031-a316-aa702fa1ce2d",
"name": "분석 및 보고",
"type": "n8n-nodes-base.stickyNote",
"position": [
1664,
-512
],
"parameters": {
"width": 280,
"height": 328,
"content": "📊 **ANALYTICS & REPORTING**\n\nDaily reports include:\n• Executive summary\n• Key market insights\n• Segment performance\n• Revenue projections\n• Immediate action items\n\n💡 Perfect for daily standup meetings and strategic planning!"
},
"typeVersion": 1
},
{
"id": "f5b2262b-a391-4e6b-9ec3-1278087db280",
"name": "이메일 설정",
"type": "n8n-nodes-base.stickyNote",
"position": [
1936,
-512
],
"parameters": {
"width": 280,
"height": 328,
"content": "⚙️ **EMAIL SETUP REQUIRED**\n\n🔧 TO ACTIVATE:\n1. Enable this node (currently disabled)\n2. Set up SendGrid credentials\n3. Update recipient email\n4. Test email delivery\n\n⚠️ Node is disabled by default for safety"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "636eafc1-e538-49df-bad6-0f5ba335d428",
"connections": {
"df3fdb3f-9749-4ea2-90e0-6d4c4ab88288": {
"main": [
[
{
"node": "7f254e0e-3156-467a-900f-79a5731cc2ce",
"type": "main",
"index": 0
},
{
"node": "786942ab-42c2-4ed5-b101-81209bdb0525",
"type": "main",
"index": 0
}
]
]
},
"a2c2a600-ce18-4e32-be65-712efd6ad9e5": {
"main": [
[
{
"node": "6463dcab-4fd9-474d-a245-2e62a5c957e7",
"type": "main",
"index": 0
}
]
]
},
"6463dcab-4fd9-474d-a245-2e62a5c957e7": {
"main": [
[
{
"node": "df3fdb3f-9749-4ea2-90e0-6d4c4ab88288",
"type": "main",
"index": 0
}
]
]
},
"786942ab-42c2-4ed5-b101-81209bdb0525": {
"main": [
[
{
"node": "4927d96d-2da5-4ead-aaf9-c3e334e5097f",
"type": "main",
"index": 0
}
]
]
},
"832b51e7-1d72-463a-b41c-e8f4a0b1605e": {
"main": [
[
{
"node": "e4406cd2-d562-4763-8d00-d144c19a0224",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 소셜 미디어, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
AI 생성 LinkedIn 게시물 포함 인공 검토
GPT-4, GoToHuman 및 Blotato를 사용한 AI 생성 LinkedIn 게시물 포함 인공 검토
Code
Merge
Filter
+
Code
Merge
Filter
19 노드Robert Breen
소셜 미디어
Arunava의 다중 에이전트 지능형 Reddit 자동화
AI 브랜드 언급 및 Baserow 추적으로 Reddit 게시물 자동 댓글 작성
If
Set
Code
+
If
Set
Code
35 노드Arunava
소셜 미디어
RSS에서 LinkedIn 자동 게시기
RSS + Gemini AI + Templated.io로 LinkedIn 회사 페이지 자동 큐레이션 및 게시
If
Code
Linked In
+
If
Code
Linked In
19 노드Shrishti S Nagar
소셜 미디어
X 트윗 및 Meta Threads 게시器
Late API 및 Google Sheets를 사용하여 플랫폼 최적화 콘텐츠를 X 및 Threads에 자동 게시
If
Set
Code
+
If
Set
Code
20 노드Fariez
소셜 미디어
Claude, OpenAI 및 Perplexity를 사용하여 브랜드 LinkedIn 콘텐츠 자동 생성 및 예약
Claude, OpenAI 및 Perplexity를 사용하여 브랜드 LinkedIn 콘텐츠 자동 생성 및 예약
Code
Limit
Linked In
+
Code
Limit
Linked In
23 노드Abdul Mir
소셜 미디어
X의 힌두교 축제 게시물
Google Gemini 및 GPT-4o Mini를 사용한 일일 힌두교 축제 게시물 X에 자동 게시
Code
Twitter
Http Request
+
Code
Twitter
Http Request
30 노드Harsh Maniya
소셜 미디어