{
  "name": "Sales Copilot — Vendor activity monitoring + daily report",
  "description": "Monitors Sales Copilot vendor activity every day at 6PM. Fetches all vendors, checks which ones have been inactive (no orders), and sends a summary report via email. Perfect for distribution managers tracking field sales teams.",
  "tags": [
    "mediavox",
    "sales-copilot",
    "latam",
    "distribution",
    "field-sales",
    "monitoring"
  ],
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 18 * * 1-5"
            }
          ]
        }
      },
      "name": "Weekday 6PM",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        240,
        300
      ],
      "notes": "Runs Mon-Fri at 6PM local time. Adjust timezone in n8n settings.",
      "id": "d4b93155-13bd-42eb-8bb6-cea68c5825a7"
    },
    {
      "parameters": {
        "requestMethod": "GET",
        "url": "={{ $credentials.baseUrl }}/mvai/api/v1/sc/vendors",
        "headerParameters": {
          "parameters": [
            {
              "name": "X-API-Key",
              "value": "={{ $credentials.apiKey }}"
            }
          ]
        },
        "options": {
          "timeout": 10000
        }
      },
      "name": "Get Vendors",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        460,
        300
      ],
      "credentials": {
        "mediavoxApi": {
          "name": "Mediavox SC"
        }
      },
      "notes": "Fetches all registered vendors with their status, zone, client count, and last order date. Uses X-API-Key header for authentication.",
      "id": "e0cc868e-9619-4da5-9fa6-08c9d406c3f5"
    },
    {
      "parameters": {
        "functionCode": "const vendors = $input.all().map(i => i.json);\nconst inactive = vendors.filter(v => v.activo && v.last_activity_days > 1);\nconst totalOrders = vendors.reduce((s, v) => s + (v.orders_today || 0), 0);\nreturn [{ json: { total: vendors.length, active: vendors.filter(v => v.activo).length, inactive: inactive.length, inactive_names: inactive.map(v => v.nombre).join(', '), total_orders: totalOrders, report_date: new Date().toISOString().split('T')[0] } }];"
      },
      "name": "Build Report",
      "type": "n8n-nodes-base.code",
      "position": [
        680,
        300
      ],
      "notes": "Calculates KPIs: active vendors, inactive (>1 day without orders), total orders today.",
      "id": "c36802e9-d98e-40aa-8b68-a23da4cf6cc1"
    },
    {
      "parameters": {
        "fromEmail": "ops@yourcompany.com",
        "toEmail": "manager@yourcompany.com",
        "subject": "=SC Daily Report — {{ $json.report_date }}",
        "text": "=Sales Copilot Report\n\nVendors: {{ $json.active }}/{{ $json.total }} active\nOrders today: {{ $json.total_orders }}\nInactive (>1 day): {{ $json.inactive }} — {{ $json.inactive_names }}\n\nAction needed: Contact inactive vendors."
      },
      "name": "Email Report",
      "type": "n8n-nodes-base.emailSend",
      "position": [
        900,
        300
      ],
      "notes": "Sends summary to zone manager. Replace email addresses with yours.",
      "id": "d9b68fb1-9942-4283-9309-55227f02e5b7"
    }
  ],
  "connections": {
    "Weekday 6PM": {
      "main": [
        [
          {
            "node": "Get Vendors",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Vendors": {
      "main": [
        [
          {
            "node": "Build Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Build Report": {
      "main": [
        [
          {
            "node": "Email Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "pinData": {},
  "settings": {
    "executionOrder": "v1",
    "binaryMode": "separate"
  },
  "active": false,
  "versionId": "47aa0b92-8cf0-4a60-8c17-7c6d542de9db",
  "meta": {
    "templateCredsSetupCompleted": true
  }
}