{
  "name": "Content Pipeline: RSS Intake",
  "nodes": [
    {
      "name": "Every 12 Hours",
      "type": "n8n-nodes-base.scheduleTrigger",
      "typeVersion": 1.3,
      "position": [
        0,
        550
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 14 * * *"
            }
          ]
        }
      }
    },
    {
      "name": "RSS AdExchanger",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        0
      ],
      "parameters": {
        "url": "https://www.adexchanger.com/feed/"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "RSS IAB",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        120
      ],
      "parameters": {
        "url": "https://www.iab.com/feed/"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "RSS Digiday",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        240
      ],
      "parameters": {
        "url": "https://digiday.com/feed/"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "RSS Marketing Dive",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        360
      ],
      "parameters": {
        "url": "https://www.marketingdive.com/feeds/news/"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "RSS IAPP Daily",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        480
      ],
      "parameters": {
        "url": "https://iapp.org/rss/daily-dashboard/"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "RSS Marketing AI Institute",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        600
      ],
      "parameters": {
        "url": "http://www.marketingaiinstitute.com/blog/rss.xml"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "RSS IAB Tech Lab",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        720
      ],
      "parameters": {
        "url": "https://iabtechlab.com/category/blog/feed/"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "RSS MIT Tech Review AI",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        840
      ],
      "parameters": {
        "url": "https://www.technologyreview.com/topic/artificial-intelligence/feed"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "RSS TechCrunch AI",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        960
      ],
      "parameters": {
        "url": "https://techcrunch.com/category/artificial-intelligence/feed/"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "RSS VentureBeat AI",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        1080
      ],
      "parameters": {
        "url": "https://venturebeat.com/category/ai/feed/"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "RSS Wired AI",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        1200
      ],
      "parameters": {
        "url": "https://www.wired.com/feed/tag/ai/latest/rss"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "RSS TLDR AI",
      "type": "n8n-nodes-base.rssFeedRead",
      "typeVersion": 1.2,
      "position": [
        260,
        1320
      ],
      "parameters": {
        "url": "https://tldr.tech/ai/rss"
      },
      "executeOnce": true,
      "onError": "continueRegularOutput"
    },
    {
      "name": "Merge Group A",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.2,
      "position": [
        540,
        300
      ],
      "parameters": {
        "mode": "append",
        "numberInputs": 6
      }
    },
    {
      "name": "Merge Group B",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.2,
      "position": [
        540,
        900
      ],
      "parameters": {
        "mode": "append",
        "numberInputs": 6
      }
    },
    {
      "name": "Merge All Feeds",
      "type": "n8n-nodes-base.merge",
      "typeVersion": 3.2,
      "position": [
        760,
        550
      ],
      "parameters": {
        "mode": "append",
        "numberInputs": 2
      }
    },
    {
      "name": "Dedup by URL",
      "type": "n8n-nodes-base.removeDuplicates",
      "typeVersion": 2,
      "position": [
        980,
        550
      ],
      "parameters": {
        "operation": "removeItemsSeenInPreviousExecutions",
        "logic": "removeItemsWithAlreadySeenKeyValues",
        "dedupeValue": "={{ $json.link }}"
      }
    },
    {
      "name": "Normalize Entry",
      "type": "n8n-nodes-base.set",
      "typeVersion": 3.4,
      "position": [
        1200,
        550
      ],
      "parameters": {
        "mode": "manual",
        "assignments": {
          "assignments": [
            {
              "id": "1",
              "name": "source",
              "type": "string",
              "value": "rss"
            },
            {
              "id": "2",
              "name": "source_type",
              "type": "string",
              "value": "rss"
            },
            {
              "id": "3",
              "name": "title",
              "type": "string",
              "value": "={{ $json.title }}"
            },
            {
              "id": "4",
              "name": "url",
              "type": "string",
              "value": "={{ $json.link }}"
            },
            {
              "id": "5",
              "name": "published",
              "type": "string",
              "value": "={{ $json.isoDate }}"
            },
            {
              "id": "6",
              "name": "summary",
              "type": "string",
              "value": "={{ ($json.contentSnippet || '').substring(0, 500) }}"
            },
            {
              "id": "7",
              "name": "collected_at",
              "type": "string",
              "value": "={{ $now.toISO() }}"
            },
            {
              "id": "8",
              "name": "status",
              "type": "string",
              "value": "new"
            }
          ]
        },
        "includeOtherFields": false
      }
    },
    {
      "name": "Notion: Create Intake Page",
      "type": "n8n-nodes-base.notion",
      "typeVersion": 2.2,
      "position": [
        1420,
        550
      ],
      "parameters": {
        "resource": "databasePage",
        "operation": "create",
        "databaseId": {
          "__rl": true,
          "value": "REPLACE_WITH_DATABASE_ID",
          "mode": "id"
        },
        "title": "={{ $json.title }}",
        "propertiesUi": {
          "propertyValues": [
            {
              "key": "URL|url",
              "type": "url",
              "urlValue": "={{ $json.url }}"
            },
            {
              "key": "Source|select",
              "type": "select",
              "selectValue": "={{ $json.source }}"
            },
            {
              "key": "Source Type|select",
              "type": "select",
              "selectValue": "={{ $json.source_type }}"
            },
            {
              "key": "Summary|rich_text",
              "type": "rich_text",
              "textContent": "={{ $json.summary or \"\" }}"
            },
            {
              "key": "Published|date",
              "type": "date",
              "date": "={{ $json.published }}",
              "includeTime": false
            }
          ]
        },
        "simple": true
      },
      "onError": "continueRegularOutput",
      "credentials": {
        "notionApi": {
          "name": "<your credential>"
        }
      }
    }
  ],
  "connections": {
    "Every 12 Hours": {
      "main": [
        [
          {
            "node": "RSS AdExchanger",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS AdExchanger": {
      "main": [
        [
          {
            "node": "RSS IAB",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS IAB": {
      "main": [
        [
          {
            "node": "RSS Digiday",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Digiday": {
      "main": [
        [
          {
            "node": "RSS Marketing Dive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Marketing Dive": {
      "main": [
        [
          {
            "node": "RSS IAPP Daily",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS IAPP Daily": {
      "main": [
        [
          {
            "node": "RSS Marketing AI Institute",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Marketing AI Institute": {
      "main": [
        [
          {
            "node": "RSS IAB Tech Lab",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS IAB Tech Lab": {
      "main": [
        [
          {
            "node": "RSS MIT Tech Review AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS MIT Tech Review AI": {
      "main": [
        [
          {
            "node": "RSS TechCrunch AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS TechCrunch AI": {
      "main": [
        [
          {
            "node": "RSS VentureBeat AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS VentureBeat AI": {
      "main": [
        [
          {
            "node": "RSS Wired AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS Wired AI": {
      "main": [
        [
          {
            "node": "RSS TLDR AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS TLDR AI": {
      "main": [
        [
          {
            "node": "Merge Group A",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Group A": {
      "main": [
        [
          {
            "node": "Merge Group B",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Group B": {
      "main": [
        [
          {
            "node": "Merge All Feeds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge All Feeds": {
      "main": [
        [
          {
            "node": "Dedup by URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Dedup by URL": {
      "main": [
        [
          {
            "node": "Normalize Entry",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Normalize Entry": {
      "main": [
        [
          {
            "node": "Notion: Create Intake Page",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "settings": {
    "executionOrder": "v1",
    "callerPolicy": "workflowsFromSameOwner"
  },
  "description": "Polls 12 RSS feeds every 12 hours, deduplicates by URL, normalizes into pipeline staging format, and writes each entry to the Notion Content Intake database. Covers ad tech, marketing, privacy, and AI sources."
}