{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "496331d0-329e-447e-97e6-ad993d98a461",
      "name": "Split RSS Feeds",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        1168,
        992
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "e04394b1-dc73-4dbb-911a-3798f917d5a3",
      "name": "RSS \u2192 Items",
      "type": "n8n-nodes-base.rssFeedRead",
      "onError": "continueRegularOutput",
      "maxTries": 2,
      "position": [
        1760,
        832
      ],
      "parameters": {
        "url": "={{ $json.source_identifier }}",
        "options": {
          "ignoreSSL": false,
          "customFields": ""
        }
      },
      "retryOnFail": true,
      "typeVersion": 1.1
    },
    {
      "id": "3f29990d-0f26-405c-b70c-492718d41e1d",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -64,
        576
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "60dd1b52-bce1-48cc-88a2-f60cad366936",
      "name": "Merge3",
      "type": "n8n-nodes-base.merge",
      "position": [
        2416,
        576
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineByPosition"
      },
      "typeVersion": 3.2
    },
    {
      "id": "57a4231b-6806-4568-8c15-a246c18c2f38",
      "name": "Client ID + Max Content Age + Blogs",
      "type": "n8n-nodes-base.merge",
      "position": [
        1856,
        592
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "590c89f0-259d-4e8a-9a9b-71d59d51920e",
      "name": "Find Date & Time of Blogs",
      "type": "n8n-nodes-base.dateTime",
      "position": [
        2144,
        400
      ],
      "parameters": {
        "date": "={{ $json.pubDate || $json.isoDate }}\n",
        "format": "yyyy-MM-dd",
        "options": {},
        "operation": "formatDate",
        "outputFieldName": "standardizedPubDate"
      },
      "typeVersion": 2
    },
    {
      "id": "1d320e63-1019-49ac-a51d-c646fae6025f",
      "name": "Filter Out Old Blogs",
      "type": "n8n-nodes-base.if",
      "position": [
        2656,
        576
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "bccea370-70ab-478d-a77a-385af6826ae0",
              "operator": {
                "type": "dateTime",
                "operation": "afterOrEquals"
              },
              "leftValue": "={{ $json.pubDate }}",
              "rightValue": "={{ DateTime.now().minus({ days: $json.max_content_age_days }).toFormat('yyyy-MM-dd') }}"
            }
          ]
        }
      },
      "retryOnFail": false,
      "typeVersion": 2.2
    },
    {
      "id": "b856b591-4b95-4798-9c8a-54d55fbf27ee",
      "name": "max_content_age_days",
      "type": "n8n-nodes-base.set",
      "position": [
        192,
        576
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "41cbc93c-c60a-4fa2-a46c-23a0b887a270",
              "name": "max_content_age_days",
              "type": "number",
              "value": "=60"
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "42e3d496-4831-4df4-953c-df5d31dbcb9d",
      "name": "Split Out",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        816,
        992
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "source_identifier"
      },
      "typeVersion": 1
    },
    {
      "id": "26b2194b-6f73-41d4-bbff-bf96d3936413",
      "name": "blogs to track",
      "type": "n8n-nodes-base.set",
      "position": [
        512,
        992
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "4465ec7e-d770-4b59-a007-51c5b2731d8e",
              "name": "source_identifier",
              "type": "array",
              "value": "={{ ['https://blog.n8n.io/rss', 'https://zapier.com/blog/feeds/latest/'] }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "6fc7481c-aba4-4526-afe0-3adec1094d35",
      "name": "Rss feed link",
      "type": "n8n-nodes-base.set",
      "position": [
        1568,
        1008
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1c04a980-ba49-4eda-8c32-eb09dbaa448c",
              "name": "source_identifier",
              "type": "string",
              "value": "={{ $json.source_identifier }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "542dece8-0e23-430e-a48a-cbd56a3a33ff",
      "name": "rss feed links + blogs",
      "type": "n8n-nodes-base.merge",
      "position": [
        1952,
        992
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "retryOnFail": true,
      "typeVersion": 3.2
    },
    {
      "id": "01009054-b0f7-4151-ae00-e24772883993",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -576,
        256
      ],
      "parameters": {
        "width": 432,
        "height": 944,
        "content": "## Welcome My Friend - This is how you download blogs and filter out old ones - all for free and with no api keys\n\nNecessary setup:\n\n1. The node called 'max_content_age_days' is for you to set how recent you want your blogs to be. The default is 60. That means it will save blogs that were published within the last 60 days.\n\n2. The 'blogs to track' node is a list of the blogs you are interested in tracking. The trick is that you must search for the websites' rss feed url. I have started you off with the rss feed url of n8n and zapier. If this workflow gives you a 403 error that means one of your links is wrong. It's best to find the most up to date rss feed url using something like perplexity (most up to date information).\n\n3. The 'filter out old blogs' node is set up to send OLD blogs down the false path, and NEW blogs down the true path.\n\n4. I highly recommend adding a node of your choice to the TRUE path of the 'filter out old blogs' node. Think about where you want to store these newly saved blogs. For example:\n- a loop over items node and a google sheets node. This will send one blog into the google sheet at a time. \n\n\nCheck my page for more templates, I'm posting more variations of this workflow. Send me questions if you need help!\n\nI got you!"
      },
      "typeVersion": 1
    },
    {
      "id": "84d5a479-d8b9-4c7e-893b-800d130f3f44",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        128,
        320
      ],
      "parameters": {
        "color": 4,
        "height": 464,
        "content": "## Choose # of Days \n\nFilter out blogs older than **your number of days** old\n\nThe default is 60, so it won't save blogs posted over 60 days ago.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "693ca94d-11cf-4aa9-a740-79f66e39b2db",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        432,
        672
      ],
      "parameters": {
        "color": 4,
        "width": 256,
        "height": 512,
        "content": "## Find RSS FEED URLS\n\nAdd the rss feed urls of the blogs that you want to track. I highly recommend using an LLM like perplexity to help you find the most up to date rss feeds.\n\nSearch for something like: What is the rss feed url for the n8n blog in [today's date]\n"
      },
      "typeVersion": 1
    },
    {
      "id": "bc443695-d59c-453a-a41d-021a413a7f11",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1088,
        768
      ],
      "parameters": {
        "color": 6,
        "width": 1104,
        "height": 496,
        "content": "## This loops over the websites one at a time to find all blogs."
      },
      "typeVersion": 1
    },
    {
      "id": "ca80d535-8557-480c-b269-fc3a5ea9c6c6",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2064,
        256
      ],
      "parameters": {
        "width": 256,
        "height": 320,
        "content": "## Adds a 'published date' in an easy to read format\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "5bb7cf78-1942-42ee-a5fb-9660507e6d8d",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2576,
        416
      ],
      "parameters": {
        "width": 256,
        "height": 288,
        "content": "## Filters out blogs that are older than the date you specified\n"
      },
      "typeVersion": 1
    },
    {
      "id": "a87532e0-9928-4020-bd64-3f975f326ea3",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        752,
        768
      ],
      "parameters": {
        "width": 256,
        "height": 368,
        "content": "## Splits all of the websites into their own items so that they go into the loop one at a time\n"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Merge3": {
      "main": [
        [
          {
            "node": "Filter Out Old Blogs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Split RSS Feeds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "RSS \u2192 Items": {
      "main": [
        [
          {
            "node": "rss feed links + blogs",
            "type": "main",
            "index": 0
          }
        ],
        []
      ]
    },
    "Rss feed link": {
      "main": [
        [
          {
            "node": "RSS \u2192 Items",
            "type": "main",
            "index": 0
          },
          {
            "node": "rss feed links + blogs",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "blogs to track": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split RSS Feeds": {
      "main": [
        [
          {
            "node": "Client ID + Max Content Age + Blogs",
            "type": "main",
            "index": 1
          }
        ],
        [
          {
            "node": "Rss feed link",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Filter Out Old Blogs": {
      "main": [
        [],
        []
      ]
    },
    "max_content_age_days": {
      "main": [
        [
          {
            "node": "Client ID + Max Content Age + Blogs",
            "type": "main",
            "index": 0
          },
          {
            "node": "blogs to track",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "rss feed links + blogs": {
      "main": [
        [
          {
            "node": "Split RSS Feeds",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Find Date & Time of Blogs": {
      "main": [
        [
          {
            "node": "Merge3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Client ID + Max Content Age + Blogs": {
      "main": [
        [
          {
            "node": "Find Date & Time of Blogs",
            "type": "main",
            "index": 0
          },
          {
            "node": "Merge3",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "max_content_age_days",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}