私のワークフロー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(旧Twitter)でハイマラヤの祝日ポスト
Google GeminiとGPT-4o Miniを使って毎日のヒンドゥー節の投稿をXに自動投稿する
Code
Twitter
Http Request
+
Code
Twitter
Http Request
30 ノードHarsh Maniya
ソーシャルメディア