{
  "name": "Automate news intelligence with Gemini AI for RSS feeds to Notion and Slack",
  "nodes": [
    {
      "id": "b53e19f4-42d6-4433-be23-dee9d43d4c96",
      "name": "Daily Morning Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        1088,
        160
      ]
    },
    {
      "id": "df28a219-fa77-408f-b842-1394c04bd8db",
      "name": "Workflow Configuration",
      "type": "n8n-nodes-base.set",
      "position": [
        1408,
        160
      ]
    },
    {
      "id": "7f7de5b9-dd1a-4a5a-9eb3-c85030a8bb59",
      "name": "Read RSS Feeds",
      "type": "n8n-nodes-base.rssFeedRead",
      "position": [
        2016,
        64
      ]
    },
    {
      "id": "f6b25f54-0635-4498-b878-4468c633c932",
      "name": "AI Summarizer and Tagger",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        2256,
        64
      ]
    },
    {
      "id": "fb2fe89f-b551-47e0-a133-cb585c92a517",
      "name": "Get Tag Dictionary",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1712,
        256
      ]
    },
    {
      "id": "92010737-ab4a-49de-a1ee-670759347865",
      "name": "Parse AI Output",
      "type": "n8n-nodes-base.code",
      "position": [
        2624,
        64
      ]
    },
    {
      "id": "808a0b99-b2d7-4b4e-970a-c3f8e189e87c",
      "name": "Write to Notion Database",
      "type": "n8n-nodes-base.notion",
      "position": [
        2944,
        64
      ]
    },
    {
      "id": "970b77bd-6c52-43b8-800a-2d236d9a7cd3",
      "name": "Sort by Priority",
      "type": "n8n-nodes-base.sort",
      "position": [
        3248,
        64
      ]
    },
    {
      "id": "075978c2-5ee8-453e-a75e-0fb7708889a2",
      "name": "Top 3 Headlines",
      "type": "n8n-nodes-base.limit",
      "position": [
        3568,
        64
      ]
    },
    {
      "id": "643c4d99-f909-4287-ab22-203526c96c02",
      "name": "Format Slack Message",
      "type": "n8n-nodes-base.code",
      "position": [
        3872,
        64
      ]
    },
    {
      "id": "4b73b33f-b7b8-4305-9f96-afecab761db2",
      "name": "Post to Slack",
      "type": "n8n-nodes-base.slack",
      "position": [
        4176,
        64
      ]
    },
    {
      "id": "2b77e4b0-f37e-4d05-a4c9-4b6f4015ef1e",
      "name": "Code in JavaScript",
      "type": "n8n-nodes-base.code",
      "position": [
        1712,
        64
      ]
    },
    {
      "id": "cb8efc38-c306-4c35-ae0e-230a28686529",
      "name": "Aggregate Tags",
      "type": "n8n-nodes-base.code",
      "position": [
        2016,
        256
      ]
    },
    {
      "id": "335c2541-e71d-4992-afd2-1262aa810ae2",
      "name": "Google Gemini Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        2240,
        256
      ]
    },
    {
      "id": "e4c64295-aad1-4a04-a328-9fd9a1d51614",
      "name": "Note: Daily Morning Trigger",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1024,
        -144
      ],
      "parameters": {
        "width": null,
        "height": 176,
        "content": "**Purpose:** Kicks off the workflow every morning.\n**Key setting:** Change trigger hour in the node options.\n**Tip:** Switch to weekdays only if you don't brief on weekends."
      }
    },
    {
      "id": "51d8fc1b-5195-42cb-85b7-6d1d00a4829d",
      "name": "Note: Workflow Configuration",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1344,
        -144
      ],
      "parameters": {
        "width": null,
        "height": 176,
        "content": "**Purpose:** Central config hub.\n**Fields:** `rssFeeds` (array), `notionDatabaseId` (string), `slackChannel` (string).\n**Tip:** Keep all user-editable values here."
      }
    },
    {
      "id": "37dfe9c2-c412-454b-8aa5-ed580d2c88dc",
      "name": "Note: Code in JavaScript",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1648,
        -144
      ],
      "parameters": {
        "width": null,
        "height": 176,
        "content": "**Purpose:** Splits the `rssFeeds` array into one item per feed URL.\n**Why:** Lets downstream nodes process feeds independently."
      }
    },
    {
      "id": "24192a09-f208-4eaa-837e-00ccece1d873",
      "name": "Note: Read RSS Feeds",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1952,
        -144
      ],
      "parameters": {
        "width": null,
        "height": 176,
        "content": "**Purpose:** Fetches articles for each feed URL.\n**Output:** Items with `title`, `content`, `link`, `pubDate`, etc."
      }
    },
    {
      "id": "21304a64-1034-44ba-97c8-f4040d074fc4",
      "name": "Note: Get Tag Dictionary",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1648,
        416
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": "**Purpose:** Loads the Tag Dictionary from Google Sheets.\n**Note:** Reconnect your own Google Sheets credential in n8n."
      }
    },
    {
      "id": "ccd7838e-b26f-4e95-ab9f-4c3deb157c94",
      "name": "Note: Aggregate Tags",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1952,
        416
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": "**Purpose:** Combines all sheet rows into `tagDictionary` (single item).\n**Downstream:** Used by the AI node to enforce consistent tagging."
      }
    },
    {
      "id": "7f6c10fb-10ad-4f39-90a7-713af4b676a6",
      "name": "Note: Google Gemini Chat Model",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2256,
        416
      ],
      "parameters": {
        "width": null,
        "height": null,
        "content": "**Purpose:** Provides the LLM runtime for the AI agent.\n**Note:** Reconnect your own Gemini (PaLM) API credential in n8n."
      }
    },
    {
      "id": "32def482-d498-47a1-8905-6b7ec2629307",
      "name": "Note: AI Summarizer and Tagger",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2256,
        -144
      ],
      "parameters": {
        "width": null,
        "height": 176,
        "content": "**Purpose:** Produces a strict JSON payload: title, summary (≤3 lines), tags[], priority (1–5), url, publishedDate.\n**Prompt tip:** Update wording and tag schema as your taxonomy evolves."
      }
    },
    {
      "id": "be9475cf-e641-4b92-9845-84b71cda8c6d",
      "name": "Note: Parse AI Output",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2560,
        -144
      ],
      "parameters": {
        "width": null,
        "height": 176,
        "content": "**Purpose:** Validates and normalizes AI JSON.\n**Includes:** JSON-safe extraction, Notion date formatting, tag array fix."
      }
    },
    {
      "id": "e985e8c7-c9ea-4e3b-b568-a6e3105980d4",
      "name": "Note: Write to Notion Database",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2864,
        -144
      ],
      "parameters": {
        "width": 256,
        "height": 176,
        "content": "**Purpose:** Creates a Notion page per item.\n**Mapping:** summary→rich_text, tags→multi_select, priority→number, url→url, publishedDate→date.\n**Note:** Reconnect Notion credential."
      }
    },
    {
      "id": "deb714fc-9818-48a1-a6b4-dd3dacc4414e",
      "name": "Note: Sort by Priority",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3184,
        -144
      ],
      "parameters": {
        "width": null,
        "height": 176,
        "content": "**Purpose:** Orders items by `priority` (desc).\n**Tip:** Change to `publishedDate` or hybrid scoring if preferred."
      }
    },
    {
      "id": "8817c32a-ed51-4086-b7a8-75f1c81f05ef",
      "name": "Note: Top 3 Headlines",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3488,
        -144
      ],
      "parameters": {
        "width": null,
        "height": 176,
        "content": "**Purpose:** Limits items to the top three for Slack brevity.\n**Tip:** Adjust `maxItems` for longer digests."
      }
    },
    {
      "id": "c5cbb7ef-b3c3-416a-9bc1-47852f1edaa5",
      "name": "Note: Format Slack Message",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3792,
        -144
      ],
      "parameters": {
        "width": null,
        "height": 176,
        "content": "**Purpose:** Builds a readable Slack digest.\n**Includes:** Title, summary, tags, and `Read more` URL per item."
      }
    },
    {
      "id": "f7ee2819-01f5-4150-9c5a-33c22d000066",
      "name": "Note: Post to Slack",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        4096,
        -144
      ],
      "parameters": {
        "width": null,
        "height": 176,
        "content": "**Purpose:** Sends the digest to your channel.\n**Config:** Uses `slackChannel` from the Set node.\n**Note:** Reconnect Slack OAuth2 credential."
      }
    },
    {
      "id": "a1b407c5-4e5a-4cff-9e19-b7d0d131b893",
      "name": "Template Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        288,
        -384
      ],
      "parameters": {
        "width": 608,
        "height": 688,
        "content": "## RSS Feed Intelligence Hub with Daily Slack Digest\n\n**Who’s it for**  \nTeams that track multiple news sources and want an automated, tagged, and prioritized daily briefing in Slack (PMM, PR/Comms, S"
      }
    }
  ],
  "connections": {
    "Read RSS Feeds": {
      "main": [
        [
          {
            "node": "AI Summarizer and Tagger",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse AI Output": {
      "main": [
        [
          {
            "node": "Write to Notion Database",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Top 3 Headlines": {
      "main": [
        [
          {
            "node": "Format Slack Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Sort by Priority": {
      "main": [
        [
          {
            "node": "Top 3 Headlines",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code in JavaScript": {
      "main": [
        [
          {
            "node": "Read RSS Feeds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get Tag Dictionary": {
      "main": [
        [
          {
            "node": "Aggregate Tags",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Format Slack Message": {
      "main": [
        [
          {
            "node": "Post to Slack",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Morning Trigger": {
      "main": [
        [
          {
            "node": "Workflow Configuration",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Workflow Configuration": {
      "main": [
        [
          {
            "node": "Get Tag Dictionary",
            "type": "main",
            "index": 0
          },
          {
            "node": "Code in JavaScript",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Summarizer and Tagger": {
      "main": [
        [
          {
            "node": "Parse AI Output",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Summarizer and Tagger",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Write to Notion Database": {
      "main": [
        [
          {
            "node": "Sort by Priority",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}