{
  "name": "Dashboard de Métricas Consolidado Multi-Plataforma",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "days",
              "triggerAtHour": 6
            }
          ]
        }
      },
      "id": "e1f2a3b4-0011-4a01-b001-ef1234567001",
      "name": "Schedule Trigger - Diario 6AM",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [250, 300]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "=https://graph.facebook.com/v17.0/act_AD_ACCOUNT_ID/insights",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "fields",
              "value": "spend,impressions,clicks,actions,cost_per_action_type"
            },
            {
              "name": "date_preset",
              "value": "yesterday"
            },
            {
              "name": "level",
              "value": "campaign"
            }
          ]
        },
        "options": {}
      },
      "id": "e1f2a3b4-0011-4a02-b002-ef1234567002",
      "name": "HTTP Request - Facebook Ads",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [500, 150]
    },
    {
      "parameters": {
        "method": "GET",
        "url": "=https://analyticsdata.googleapis.com/v1beta/properties/GA4_PROPERTY_ID:runReport",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "{\n  \"dateRanges\": [{\"startDate\": \"yesterday\", \"endDate\": \"yesterday\"}],\n  \"metrics\": [\n    {\"name\": \"sessions\"},\n    {\"name\": \"activeUsers\"},\n    {\"name\": \"bounceRate\"},\n    {\"name\": \"averageSessionDuration\"}\n  ],\n  \"dimensions\": [{\"name\": \"sessionDefaultChannelGroup\"}]\n}",
        "options": {}
      },
      "id": "e1f2a3b4-0011-4a03-b003-ef1234567003",
      "name": "HTTP Request - Google Analytics",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4,
      "position": [500, 300]
    },
    {
      "parameters": {
        "operation": "read",
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": ""
        },
        "sheetName": {
          "__rl": true,
          "mode": "byName",
          "value": "Ventas Diarias"
        },
        "options": {
          "range": "A:F"
        }
      },
      "id": "e1f2a3b4-0011-4a04-b004-ef1234567004",
      "name": "Google Sheets - Leer Ventas",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [500, 450],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": "Google Sheets account"
        }
      }
    },
    {
      "parameters": {
        "mode": "combine",
        "mergeByFields": {},
        "options": {}
      },
      "id": "e1f2a3b4-0011-4a05-b005-ef1234567005",
      "name": "Merge - Combinar Datos",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 2,
      "position": [750, 300]
    },
    {
      "parameters": {
        "functionCode": "const fbData = items[0].json.facebook_ads || {};\nconst gaData = items[0].json.google_analytics || {};\nconst salesData = items[0].json.ventas || {};\n\nconst adSpend = parseFloat(fbData.spend || 0);\nconst totalSales = parseFloat(salesData.total || 0);\nconst conversions = parseInt(fbData.conversions || 0);\nconst sessions = parseInt(gaData.sessions || 0);\n\nconst roi = adSpend > 0 ? ((totalSales - adSpend) / adSpend * 100).toFixed(1) : 0;\nconst cpa = conversions > 0 ? (adSpend / conversions).toFixed(2) : 0;\nconst conversionRate = sessions > 0 ? (conversions / sessions * 100).toFixed(2) : 0;\n\nreturn [{\n  json: {\n    fecha: new Date().toISOString().split('T')[0],\n    gastoPublicidad: adSpend.toFixed(2),\n    totalVentas: totalSales.toFixed(2),\n    roi: roi,\n    costoPorAdquisicion: cpa,\n    conversiones: conversions,\n    sesionesWeb: sessions,\n    tasaConversion: conversionRate,\n    impresiones: fbData.impressions || 0,\n    clics: fbData.clicks || 0\n  }\n}];"
      },
      "id": "e1f2a3b4-0011-4a06-b006-ef1234567006",
      "name": "Function - Calcular ROI y Métricas",
      "type": "n8n-nodes-base.function",
      "typeVersion": 1,
      "position": [1000, 300]
    },
    {
      "parameters": {
        "operation": "append",
        "documentId": {
          "__rl": true,
          "mode": "id",
          "value": ""
        },
        "sheetName": {
          "__rl": true,
          "mode": "byName",
          "value": "Dashboard Consolidado"
        },
        "columns": {
          "mappingMode": "autoMapInputData",
          "value": {}
        },
        "options": {}
      },
      "id": "e1f2a3b4-0011-4a07-b007-ef1234567007",
      "name": "Google Sheets - Actualizar Dashboard",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 4,
      "position": [1250, 300],
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "",
          "name": "Google Sheets account"
        }
      }
    },
    {
      "parameters": {
        "sendTo": "=gerente@empresa.com",
        "subject": "=📈 Dashboard Diario | ROI: {{ $json.roi }}% | Ventas: ${{ $json.totalVentas }}",
        "emailType": "html",
        "message": "=<h2>📈 Resumen Ejecutivo Diario - {{ $json.fecha }}</h2><table style='border-collapse:collapse;width:100%;'><tr style='background:#1a73e8;color:white;'><th style='padding:10px;'>Métrica</th><th style='padding:10px;'>Valor</th></tr><tr><td style='padding:8px;border:1px solid #ddd;'>💰 Total Ventas</td><td style='padding:8px;border:1px solid #ddd;text-align:right;'><strong>${{ $json.totalVentas }}</strong></td></tr><tr style='background:#f2f2f2;'><td style='padding:8px;border:1px solid #ddd;'>📢 Gasto Publicidad</td><td style='padding:8px;border:1px solid #ddd;text-align:right;'>${{ $json.gastoPublicidad }}</td></tr><tr><td style='padding:8px;border:1px solid #ddd;'>📊 ROI</td><td style='padding:8px;border:1px solid #ddd;text-align:right;color:{{ parseFloat($json.roi) >= 0 ? 'green' : 'red' }};'><strong>{{ $json.roi }}%</strong></td></tr><tr style='background:#f2f2f2;'><td style='padding:8px;border:1px solid #ddd;'>🎯 Conversiones</td><td style='padding:8px;border:1px solid #ddd;text-align:right;'>{{ $json.conversiones }}</td></tr><tr><td style='padding:8px;border:1px solid #ddd;'>💵 Costo por Adquisición</td><td style='padding:8px;border:1px solid #ddd;text-align:right;'>${{ $json.costoPorAdquisicion }}</td></tr><tr style='background:#f2f2f2;'><td style='padding:8px;border:1px solid #ddd;'>🌐 Sesiones Web</td><td style='padding:8px;border:1px solid #ddd;text-align:right;'>{{ $json.sesionesWeb }}</td></tr><tr><td style='padding:8px;border:1px solid #ddd;'>📈 Tasa Conversión</td><td style='padding:8px;border:1px solid #ddd;text-align:right;'>{{ $json.tasaConversion }}%</td></tr></table>",
        "options": {}
      },
      "id": "e1f2a3b4-0011-4a08-b008-ef1234567008",
      "name": "Gmail - Enviar Resumen Ejecutivo",
      "type": "n8n-nodes-base.gmail",
      "typeVersion": 2,
      "position": [1500, 300],
      "credentials": {
        "gmailOAuth2": {
          "id": "",
          "name": "Gmail account"
        }
      }
    }
  ],
  "connections": {
    "Schedule Trigger - Diario 6AM": {
      "main": [
        [
          {
            "node": "HTTP Request - Facebook Ads",
            "type": "main",
            "index": 0
          },
          {
            "node": "HTTP Request - Google Analytics",
            "type": "main",
            "index": 0
          },
          {
            "node": "Google Sheets - Leer Ventas",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request - Facebook Ads": {
      "main": [
        [
          {
            "node": "Merge - Combinar Datos",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request - Google Analytics": {
      "main": [
        [
          {
            "node": "Merge - Combinar Datos",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Google Sheets - Leer Ventas": {
      "main": [
        [
          {
            "node": "Merge - Combinar Datos",
            "type": "main",
            "index": 2
          }
        ]
      ]
    },
    "Merge - Combinar Datos": {
      "main": [
        [
          {
            "node": "Function - Calcular ROI y Métricas",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Function - Calcular ROI y Métricas": {
      "main": [
        [
          {
            "node": "Google Sheets - Actualizar Dashboard",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets - Actualizar Dashboard": {
      "main": [
        [
          {
            "node": "Gmail - Enviar Resumen Ejecutivo",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [
    {
      "name": "analytics"
    },
    {
      "name": "dashboard"
    },
    {
      "name": "roi"
    }
  ]
}
