{
  "name": "Build the monthly SaaS spend report",
  "nodes": [
    {
      "id": "1000",
      "name": "Monthly schedule",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1,
      "position": [
        240,
        300
      ],
      "parameters": {},
      "notes": "1st of each month 06:00"
    },
    {
      "id": "1001",
      "name": "Get seats",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 1,
      "position": [
        460,
        300
      ],
      "parameters": {},
      "notes": "Pull active seats, plan, and last login per user from each console API."
    },
    {
      "id": "1002",
      "name": "Combine consoles",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 1,
      "position": [
        680,
        300
      ],
      "parameters": {},
      "notes": "Combine every console into one list keyed by user email."
    },
    {
      "id": "1003",
      "name": "Flag inactive",
      "type": "n8n-nodes-base.code",
      "typeVersion": 1,
      "position": [
        900,
        300
      ],
      "parameters": {},
      "notes": "Flag every seat with no login in 30+ days; total the monthly spend it represents. · Added by Spion."
    },
    {
      "id": "1004",
      "name": "Write roster",
      "type": "n8n-nodes-base.googleSheets",
      "typeVersion": 1,
      "position": [
        1120,
        300
      ],
      "parameters": {},
      "notes": "Write the full roster to SaaS Spend plus a Reclaimable summary block."
    },
    {
      "id": "1005",
      "name": "Post summary",
      "type": "n8n-nodes-base.slack",
      "typeVersion": 1,
      "position": [
        1340,
        300
      ],
      "parameters": {},
      "notes": "Post the reclaimable total and seat count to #it-ops."
    }
  ],
  "connections": {
    "Monthly schedule": {
      "main": [
        [
          {
            "node": "Get seats",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get seats": {
      "main": [
        [
          {
            "node": "Combine consoles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Combine consoles": {
      "main": [
        [
          {
            "node": "Flag inactive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Flag inactive": {
      "main": [
        [
          {
            "node": "Write roster",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Write roster": {
      "main": [
        [
          {
            "node": "Post summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "meta": {
    "generated_by": "Spion",
    "generated_at": "2026-06-14T14:13:03.648Z",
    "spion_overview": "Pull seats and plan from each admin console, write to a Sheet, flag seats inactive 30+ days, and total the reclaimable spend."
  },
  "settings": {
    "executionOrder": "v1"
  }
}