AutomationFlowsAI & RAG › Monitor Course Forum RSS with AI

Monitor Course Forum RSS with AI

Original n8n title: Course Forum Monitor

Course Forum Monitor. Uses rssFeedRead, openAi, httpRequest. Scheduled trigger; 7 nodes.

Cron / scheduled trigger★★★★☆ complexityAI-powered7 nodesRSS Feed ReadOpenAIHTTP Request
AI & RAG Trigger: Cron / scheduled Nodes: 7 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow follows the HTTP Request → OpenAI recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "name": "Course Forum Monitor",
  "nodes": [
    {
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "minutes",
              "minutesInterval": 30
            }
          ]
        }
      },
      "name": "Every 30 Minutes",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.2,
      "position": [
        240,
        300
      ]
    },
    {
      "parameters": {
        "url": "={{ $vars.COMP2521_FORUM_RSS }}",
        "options": {}
      },
      "name": "Fetch Forum RSS",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1,
      "position": [
        460,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "options": {
            "caseSensitive": false,
            "leftValue": "",
            "typeValidation": "strict"
          },
          "conditions": [
            {
              "id": "new-post",
              "leftValue": "={{ $json.isoDate }}",
              "rightValue": "={{ $now.minus({ hours: 1 }).toISO() }}",
              "operator": {
                "type": "dateTime",
                "operation": "after"
              }
            }
          ],
          "combinator": "and"
        },
        "options": {}
      },
      "name": "Filter New Posts",
      "type": "n8n-nodes-base.filter",
      "typeVersion": 2,
      "position": [
        680,
        300
      ]
    },
    {
      "parameters": {
        "model": "gpt-4o-mini",
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "You are a course forum post classifier. Analyze posts and determine if they are IMPORTANT for students.\n\nIMPORTANT posts include:\n- Exam announcements or changes\n- Assignment releases or deadline changes\n- Grade releases\n- Staff announcements\n- Course logistics changes\n- Pinned/featured topics\n\nNOT IMPORTANT:\n- Student questions\n- General discussion\n- Social posts\n\nRespond with JSON: {\"important\": true/false, \"reason\": \"brief reason\", \"priority\": \"high/medium/low\"}"
            },
            {
              "role": "user",
              "content": "Post Title: {{ $json.title }}\nCategory: {{ $json.categories }}\nContent Preview: {{ $json.contentSnippet }}\nAuthor: {{ $json.creator }}"
            }
          ]
        },
        "options": {
          "temperature": 0.1
        }
      },
      "name": "Classify Importance",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "typeVersion": 1.8,
      "position": [
        900,
        300
      ]
    },
    {
      "parameters": {
        "jsCode": "const response = JSON.parse($input.first().json.message.content);\nreturn [{\n  json: {\n    ...items[0].json,\n    classification: response\n  }\n}];"
      },
      "name": "Parse Classification",
      "type": "n8n-nodes-base.code",
      "typeVersion": 2,
      "position": [
        1120,
        300
      ]
    },
    {
      "parameters": {
        "conditions": {
          "boolean": [
            {
              "value1": "={{ $json.classification.important }}",
              "value2": true
            }
          ]
        }
      },
      "name": "Is Important?",
      "type": "n8n-nodes-base.if",
      "typeVersion": 2,
      "position": [
        1340,
        300
      ]
    },
    {
      "parameters": {
        "method": "POST",
        "url": "={{ $vars.BLINKO_URL }}/api/v1/note/upsert",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"content\": \"\ud83c\udf93 [COMP2521] {{ $json.title }}\\n{{ $json.link }}\\n\\n{{ $json.classification.reason }} #course\",\n  \"type\": 0\n}"
      },
      "name": "Save to Blinko",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        1560,
        200
      ],
      "credentials": {
        "httpHeaderAuth": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Every 30 Minutes": {
      "main": [
        [
          {
            "node": "Fetch Forum RSS",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch Forum RSS": {
      "main": [
        [
          {
            "node": "Filter New Posts",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter New Posts": {
      "main": [
        [
          {
            "node": "Classify Importance",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Classify Importance": {
      "main": [
        [
          {
            "node": "Parse Classification",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Classification": {
      "main": [
        [
          {
            "node": "Is Important?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Is Important?": {
      "main": [
        [
          {
            "node": "Save to Blinko",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    }
  },
  "settings": {
    "executionOrder": "v1"
  },
  "staticData": null,
  "tags": [
    {
      "name": "course-monitor"
    }
  ]
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Course Forum Monitor. Uses rssFeedRead, openAi, httpRequest. Scheduled trigger; 7 nodes.

Source: https://github.com/Genius-Cai/homelab-dashboard/blob/8b1ab1829fd950b7acb417acb48098f3ccd2160e/n8n-workflows/course-forum-monitor.json — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

RSS Summary. Uses github, discord, openAi, httpRequest. Scheduled trigger; 26 nodes.

GitHub, Discord, OpenAI +3
AI & RAG

Daily Economic News Brief for Israel (Hebrew, RTL, GPT-4o)

Email Send, HTTP Request, OpenAI +1
AI & RAG

This workflow automatically creates a daily market intelligence brief for your stock portfolio. Instead of checking prices, news, and social media separately, it brings everything together into one cl

HTTP Request, RSS Feed Read, Google Sheets +2
AI & RAG

AI Institutional Stock Valuation Engine with Risk Scoring & Scenario Targets

Google Sheets, XML, HTTP Request +3
AI & RAG

Overview This is a production-grade, fully automated stock analysis system built entirely in n8n. It combines institutional-level financial analysis, dual AI model consensus, and a self-improving back

Google Sheets, XML, HTTP Request +3