Mon workflow 3
Ceci est unSocial Media, Multimodal AIworkflow d'automatisation du domainecontenant 14 nœuds.Utilise principalement des nœuds comme Code, HttpRequest, ScheduleTrigger. Surveillance automatisée des transactions des concurrents avec la segmentation par IA et le marketing par email
- •Peut nécessiter les informations d'identification d'authentification de l'API cible
Nœuds utilisés (14)
Catégorie
{
"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": "Aperçu du Workflow",
"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": "Déclencheur Quotidien",
"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": "Configuration de la Collecte de Données",
"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": "Récupération des Données d'Offres",
"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": "Analyse des Offres",
"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": "Segmentation des Clients",
"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": "Traitement des Informations",
"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": "Générer des Offres Personnalisées",
"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": "Créer des Campagnes Email",
"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": "Génération de Campagne",
"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": "Générer un Rapport d'Analyses",
"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": "Envoyer le Rapport Quotidien",
"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": "Analyses et Reporting",
"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": "Configuration Email",
"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
}
]
]
}
}
}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é ?
Intermédiaire - Réseaux sociaux, IA Multimodale
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