Mi flujo de trabajo 3

Intermedio

Este es unSocial Media, Multimodal AIflujo de automatización del dominio deautomatización que contiene 14 nodos.Utiliza principalmente nodos como Code, HttpRequest, ScheduleTrigger. Monitoreo automatizado de acuerdos de la competencia con segmentación por IA y marketing por correo personalizado

Requisitos previos
  • Pueden requerirse credenciales de autenticación para la API de destino
Vista previa del flujo de trabajo
Visualización de las conexiones entre nodos, con soporte para zoom y panorámica
Exportar flujo de trabajo
Copie la siguiente configuración JSON en n8n para importar y usar este flujo de trabajo
{
  "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": "Descripción General del Flujo",
      "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": "Activador Diario",
      "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": "Configuración de Recopilación de Datos",
      "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": "Obtener Datos de Ofertas",
      "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": "Analizar Ofertas",
      "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": "Segmentar Clientes",
      "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": "Procesamiento de Inteligencia",
      "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": "Generar Ofertas Personalizadas",
      "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": "Crear Campañas de 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": "Generación de Campaña",
      "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": "Generar Informe Analítico",
      "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": "Enviar Informe Diario",
      "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": "Análisis e Informes",
      "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": "Configuración de 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
          }
        ]
      ]
    }
  }
}
Preguntas frecuentes

¿Cómo usar este flujo de trabajo?

Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.

¿En qué escenarios es adecuado este flujo de trabajo?

Intermedio - Redes sociales, IA Multimodal

¿Es de pago?

Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.

Información del flujo de trabajo
Nivel de dificultad
Intermedio
Número de nodos14
Categoría2
Tipos de nodos4
Descripción de la dificultad

Adecuado para usuarios con experiencia intermedia, flujos de trabajo de complejidad media con 6-15 nodos

Enlaces externos
Ver en n8n.io

Compartir este flujo de trabajo

Categorías

Categorías: 34