{
  "name": "Automated Slack channel inactivity audit & report generator for workspace cleanup",
  "nodes": [
    {
      "id": "58a17978-d554-4042-ae0e-262a1cd5a285",
      "name": "Get many channels",
      "type": "n8n-nodes-base.slack",
      "position": [
        -224,
        32
      ]
    },
    {
      "id": "12bde87c-f8a8-4eb3-bf81-8e94916f1db6",
      "name": "Get the history of a channel",
      "type": "n8n-nodes-base.slack",
      "position": [
        0,
        32
      ]
    },
    {
      "id": "7043ccc2-4d82-49a5-ba8c-299e9842e92d",
      "name": "Filter channel with last discussion 30 days ago",
      "type": "n8n-nodes-base.filter",
      "position": [
        224,
        32
      ]
    },
    {
      "id": "b3c69271-5007-484d-89d6-48b1384fcf20",
      "name": "Collect expired channel information",
      "type": "n8n-nodes-base.code",
      "position": [
        448,
        32
      ]
    },
    {
      "id": "24fb2413-9c3c-4894-bfa3-f18f15011de9",
      "name": "Consume slack report",
      "type": "n8n-nodes-base.code",
      "position": [
        672,
        32
      ]
    },
    {
      "id": "92353f17-c390-4116-b66d-798605754f4f",
      "name": "Send Channel Inactivity Report",
      "type": "n8n-nodes-base.slack",
      "position": [
        896,
        32
      ]
    },
    {
      "id": "88965563-dfeb-40e4-b0af-19b4d84a5188",
      "name": "Weekly Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -448,
        32
      ]
    },
    {
      "id": "67dc318e-6c64-4f56-b225-0c061236b127",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        -112
      ],
      "parameters": {
        "width": 960,
        "height": 416,
        "content": "![](https://wisestackai.s3.ap-southeast-1.amazonaws.com/Screenshot+2025-08-22+at+4.04.52%E2%80%AFPM.png)"
      }
    },
    {
      "id": "0e5cb456-17a7-4a9e-be55-ffaa66d795fe",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1600,
        -768
      ],
      "parameters": {
        "width": 1040,
        "height": 2224,
        "content": "# Automated Slack Channel Audit Workflow with Chatbot and GPT-4.1\n![](https://wisestackai.s3.ap-southeast-1.amazonaws.com/slack-channel-inactivity-report-workflow.jpg)\n> Automatically scans all public"
      }
    },
    {
      "id": "f788c89e-9c9e-42a9-ab7d-5e9ddd24ea41",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -480,
        224
      ],
      "parameters": {
        "width": 256,
        "height": 144,
        "content": "### 1. ⏰ Weekly Schedule Trigger\nStarts the workflow on a recurring schedule (e.g., every Monday at 9 AM) to automate the review process without manual intervention."
      }
    },
    {
      "id": "d71481ff-856e-493d-b3e4-fd9a44b515f7",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -224,
        -128
      ],
      "parameters": {
        "width": null,
        "height": 128,
        "content": "### 2. 📡 Get Many Channels\nFetches a list of all public Slack channels in the workspace using Slack’s `channels:read` scope."
      }
    },
    {
      "id": "21906417-62bb-4364-8b2f-43e7561134cb",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -48,
        224
      ],
      "parameters": {
        "width": 288,
        "height": 144,
        "content": "### 3. 🕓 Get the History of a Channel\nRetrieves recent message history from each channel using Slack’s `channels:history` scope. This helps determine when the last discussion occurred."
      }
    },
    {
      "id": "7e81e9d5-15c9-438c-8010-a8e4a7355958",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        -160
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": "### 4. 🚫 Filter Channels with No Activity in 30 Days\nFilters out channels that have had no messages or discussion in the last 30 days. These are considered \"expired\" or inactive."
      }
    },
    {
      "id": "f57c3472-2168-4dcf-98a1-ed60cc2f2f96",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        368,
        208
      ],
      "parameters": {
        "width": null,
        "height": 272,
        "content": "### 5. 📦 Collect Expired Channel Information\nExtracts relevant metadata for each inactive channel, including:\n- Channel ID and name\n- Member count\n- Created date\n- Purpose\n\nThis data is prepared for r"
      }
    },
    {
      "id": "089fb6fe-2711-4cfc-ae9a-34c51f8bf277",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        -160
      ],
      "parameters": {
        "width": null,
        "height": 144,
        "content": "### 6. 📝 Consume Slack Report\nGenerates a clean and Slack-friendly Markdown report (or code block format) listing all inactive channels with contextual recommendations."
      }
    },
    {
      "id": "f70b2bd0-6db2-423e-beff-9e8083f0db2b",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        816,
        208
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": "### 7. 📤 Send Channel Inactivity Report\nPosts the formatted report to a specified Slack channel using `chat:write`, notifying admins or moderators to take cleanup action."
      }
    }
  ],
  "connections": {
    "Get many channels": {
      "main": [
        [
          {
            "node": "Get the history of a channel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Consume slack report": {
      "main": [
        [
          {
            "node": "Send Channel Inactivity Report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Weekly Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get many channels",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get the history of a channel": {
      "main": [
        [
          {
            "node": "Filter channel with last discussion 30 days ago",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Collect expired channel information": {
      "main": [
        [
          {
            "node": "Consume slack report",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter channel with last discussion 30 days ago": {
      "main": [
        [
          {
            "node": "Collect expired channel information",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}