N
n8n Store
Workflow Market
AI-Powered Government Grant Tracker (RSS → AI → Google Sheets → Email)

AI-Powered Government Grant Tracker (RSS → AI → Google Sheets → Email)

by tsubasa-shukuwa0 views

Description

Categories

🤖 AI & Machine Learning

Nodes Used

n8n-nodes-base.coden8n-nodes-base.gmailn8n-nodes-base.aggregaten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNote
PriceKostenlos
Views0
Last Updated11/28/2025
workflow.json
{
  "id": "Xfowxya7kKDiUr5y",
  "meta": {
    "instanceId": "15d6057a37b8367f33882dd60593ee5f6cc0c59310ff1dc66b626d726083b48d",
    "templateCredsSetupCompleted": true
  },
  "name": "AI-Powered Government Grant Tracker (RSS → AI → Google Sheets → Email)",
  "tags": [],
  "nodes": [
    {
      "id": "9be1ad43-b4b0-4223-a9a2-631a134484cd",
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -864,
        272
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ffd925ae-7676-4c30-be79-2878a4aa62d6",
      "name": "Note: Schedule",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -992,
        64
      ],
      "parameters": {
        "content": "$23F0 Schedule\n$2022 Entry point of the workflow.\n$2022 Set how often this flow runs (hourly, daily, weekly, etc.)."
      },
      "typeVersion": 1
    },
    {
      "id": "90dce3e8-d660-4411-902f-13b176333222",
      "name": "RSS Feed Reader",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        -624,
        272
      ],
      "parameters": {
        "url": "https://www.mhlw.go.jp/stf/news.rdf",
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "cfd7041d-fbde-42f6-89b0-b39460c6776c",
      "name": "Note: RSS",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -704,
        64
      ],
      "parameters": {
        "content": "$D83D$DCF0 RSS Feed\n$2022 Fetch grant-related updates from MHLW RSS.\n$2022 You may add more RSS feeds if needed."
      },
      "typeVersion": 1
    },
    {
      "id": "c85d5656-0343-4e6a-8104-013424368c31",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        -368,
        272
      ],
      "parameters": {
        "options": {},
        "batchSize": 10
      },
      "typeVersion": 3
    },
    {
      "id": "0fedea6b-8217-4189-8cb2-25b15c29a1c9",
      "name": "Note: Loop",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -416,
        64
      ],
      "parameters": {
        "content": "$D83D$DD01 Batching\n$2022 Process feed items in batches.\n$2022 Helps with stability and API rate limits."
      },
      "typeVersion": 1
    },
    {
      "id": "6f1a0649-c2bf-44f3-8243-585fee01414b",
      "name": "Text Classifier",
      "type": "@n8n/n8n-nodes-langchain.textClassifier",
      "position": [
        -32,
        272
      ],
      "parameters": {
        "options": {
          "fallback": "Other"
        },
        "inputText": "={{ $json.title + ' ' + ($json.contentSnippet || '') }}",
        "categories": {
          "categories": [
            {
              "category": "Grant/Subsidy",
              "description": "Grants, subsidies, public calls"
            },
            {
              "category": "Labor-related",
              "description": "Labor safety, regulations, press, stats"
            },
            {
              "category": "Other",
              "description": "Does not fit above categories"
            }
          ]
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "0dd41ed9-0f12-429a-906f-a78384891402",
      "name": "Note: Classifier",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -32,
        528
      ],
      "parameters": {
        "content": "$D83C$DFF7$FE0F AI Classification\n$2022 Categorize each item by title/summary.\n$2022 Used for filtering or routing later."
      },
      "typeVersion": 1
    },
    {
      "id": "0f563981-9c30-4f89-945c-6a446e364103",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        400,
        256
      ],
      "parameters": {
        "text": "={{ $json }}",
        "options": {
          "systemMessage": "You are an expert at summarizing and structuring information about public grants.\n\nFrom the given RSS item fields, extract and return a JSON object with the keys below:\n1. title $2013 grant title\n2. summary $2013 brief summary (~100 chars)\n3. deadline $2013 application deadline (or 'Unknown')\n4. amount $2013 grant amount (or 'Unknown')\n5. target $2013 target audience / eligible organizations\n6. url $2013 original URL\n7. published_date $2013 published date\n\nReturn ONLY valid JSON."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 3
    },
    {
      "id": "2b53adec-a2da-4f65-96f2-0585a4f81a2a",
      "name": "Note: Agent",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        688,
        256
      ],
      "parameters": {
        "content": "$D83E$DD16 AI Extraction\n$2022 Convert each feed item into a consistent JSON structure.\n$2022 Extract deadline/amount/target/URL/published date."
      },
      "typeVersion": 1
    },
    {
      "id": "ef62fda4-b56d-4869-a3de-5a5ad9843390",
      "name": "OpenRouter Chat Model (for Agent)",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        256,
        480
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "WtdunUssMGBTNQ1g",
          "name": "OpenRouter account 8"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f6ce135e-2002-4d32-8620-6304f3ce73be",
      "name": "Structured Output Parser",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        592,
        464
      ],
      "parameters": {
        "jsonSchemaExample": "{\n  \"title\": \"SME Productivity Enhancement Subsidy (Round 3)\",\n  \"summary\": \"Supports SMEs' investment in digitalization and efficiency improvements.\",\n  \"deadline\": \"2025-11-29\",\n  \"amount\": \"Up to 10M JPY ($2264 2/3)\",\n  \"target\": \"SMEs / small businesses\",\n  \"url\": \"https://example.go.jp/subsidy/2025/productivity3\",\n  \"published_date\": \"2025-11-01\"\n}\n"
      },
      "typeVersion": 1.3
    },
    {
      "id": "3621d5ed-6ed4-4287-99b1-d44e26036184",
      "name": "Note: Parser",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        592
      ],
      "parameters": {
        "content": "$D83E$DDE9 Output Parser\n$2022 Provides an example schema to keep keys consistent.\n$2022 Helps prevent malformed JSON."
      },
      "typeVersion": 1
    },
    {
      "id": "966724ab-6925-42c3-94b4-b13d6af7fb3f",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -32,
        64
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "タイトル",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "タイトル",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "項目",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "項目",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "項目2",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "項目2",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "項目3",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "項目3",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "項目4",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "項目4",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Title"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s-xgCvMeTWaDGCDtE2n3NM3pztOFF9mvI_9X0scLDkE/edit#gid=0",
          "cachedResultName": "Grants"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1s-xgCvMeTWaDGCDtE2n3NM3pztOFF9mvI_9X0scLDkE",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1s-xgCvMeTWaDGCDtE2n3NM3pztOFF9mvI_9X0scLDkE/edit#gid=0",
          "cachedResultName": "Grant DB (replace Spreadsheet ID if needed)"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "DD9kr62pjq8JtBXr",
          "name": "Google Sheets account 9"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "164fd4a8-9910-4a79-8a35-6d3a1c0f37a4",
      "name": "Note: Sheets",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -128,
        -160
      ],
      "parameters": {
        "content": "$D83D$DCCA Google Sheets Upsert\n$2022 Append or update rows keyed by Title.\n$2022 Adjust column headers to your sheet."
      },
      "typeVersion": 1
    },
    {
      "id": "b8db7ba6-0e8d-4171-a279-b474f3ba8ae0",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        224,
        64
      ],
      "parameters": {
        "options": {},
        "aggregate": "aggregateAllItemData"
      },
      "typeVersion": 1
    },
    {
      "id": "6db518c4-f00c-4b58-b3f5-75c12e04b1f3",
      "name": "Note: Aggregate",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        144,
        -160
      ],
      "parameters": {
        "content": "$D83D$DCE6 Aggregate\n$2022 Combine newly processed items for reporting.\n$2022 Pass a single payload downstream."
      },
      "typeVersion": 1
    },
    {
      "id": "c952b25c-6120-4023-8f1d-93af54f05f25",
      "name": "Code in JavaScript",
      "type": "n8n-nodes-base.code",
      "position": [
        496,
        64
      ],
      "parameters": {
        "jsCode": "const items = $input.item.json.data;\nlet html = `\n<html>\n<head>\n<style>\n  body { font-family: sans-serif; }\n  table { border-collapse: collapse; width: 100%; }\n  th, td { border: 1px solid #dddddd; text-align: left; padding: 8px; }\n  th { background-color: #f2f2f2; }\n</style>\n</head>\n<body>\n  <h2>New Grants Found</h2>\n  <table>\n    <tr>\n      <th>Title</th><th>Summary</th><th>URL</th><th>Deadline</th><th>Amount</th><th>Target</th><th>Published</th>\n    </tr>\n`;\nfor (const item of items) {\n  html += `\n    <tr>\n      <td>${item['Title'] ?? ''}</td>\n      <td>${item['Summary'] ?? ''}</td>\n      <td><a href=\"${item['URL'] ?? '#'}\">${item['URL'] ?? ''}</a></td>\n      <td>${item['Deadline'] ?? ''}</td>\n      <td>${item['Amount'] ?? ''}</td>\n      <td>${item['Target'] ?? ''}</td>\n      <td>${item['Published'] ?? ''}</td>\n    </tr>\n  `;\n}\nhtml += `\n  </table>\n</body>\n</html>\n`;\nreturn { html_body: html };\n"
      },
      "typeVersion": 2
    },
    {
      "id": "0e919d3f-c1b1-4bac-bffb-6fee0e940d68",
      "name": "Note: HTML",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        416,
        -160
      ],
      "parameters": {
        "content": "$D83E$DDF1 HTML Builder\n$2022 Generate an HTML table for the email body.\n$2022 Customize columns and styles as needed."
      },
      "typeVersion": 1
    },
    {
      "id": "a54b9677-d86c-4cdb-8ae8-594d78fa416d",
      "name": "Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        800,
        64
      ],
      "webhookId": "6a18672d-289d-4b70-8750-92cf6c3550db",
      "parameters": {
        "sendTo": "[email protected]",
        "message": "={{ $json.html_body }}",
        "options": {},
        "subject": "New Grants Detected"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "tj1MavzyLpLBCc17",
          "name": "Gmail account 22"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "f493550a-3865-4862-9fe1-4e300c37711c",
      "name": "Note: Gmail",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        704,
        -160
      ],
      "parameters": {
        "content": "$2709$FE0F Gmail\n$2022 Send the HTML summary to your recipients.\n$2022 Replace 'sendTo' and subject per environment."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "779997b6-160c-4bf4-9e2e-8c2cd6531632",
  "connections": {
    "AI Agent": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Sheets": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Text Classifier",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Feed Reader": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Text Classifier": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "RSS Feed Reader",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Gmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI Agent",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model (for Agent)": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}

相关工作流