{"workflow":{"id":14704,"name":"Fetch latest RSS articles and store non-duplicates in Google Sheets","views":19,"recentViews":4,"totalViews":19,"createdAt":"2026-04-04T06:59:26.709Z","description":"# RSS Feed Latest Article Fetcher Workflow\n\nThis n8n workflow fetches URLs from an RSS feed, checks which URLs have a valid RSS feed and if true, fetches the latest articles from those URLs. It then stores the article details, including the article link, in Google Sheets.\n\n### Quick Implementation Steps\n\n1. Import this JSON workflow into n8n.\n2. Connect your application or RSS feed URLs to be checked.\n3. Add Google Sheets API credentials to store the fetched articles.\n4. Enable the workflow — done!\n\n\n## What It Does\n\n1. **Fetches RSS Feed URLs**\n   - Retrieves a list of URLs from an RSS feed source.\n\n2. **Checks Each URL for RSS Feed**\n   - Verifies which URLs contain a valid RSS feed.\n\n3. **Fetches Latest Articles**\n   - For URLs with valid RSS feeds, it fetches the latest articles from those feeds.\n\n4. **Stores Articles in Google Sheets**\n   - Adds the article data, including article links, to a Google Sheet for record-keeping.\n\n\n## Who’s It For\n\nThis workflow is ideal for:\n\n- Content aggregators looking to fetch articles from multiple RSS feeds.\n- Teams needing to automate article collection and storage for easy reference.\n- Organizations aiming to centralize their content curation process in Google Sheets.\n\n\n## Requirements\n\n- n8n (Self-Hosted or Cloud)\n- Google Sheets API credentials with permissions to append data\n- A list of RSS feed URLs to check\n\n\n## How It Works\n\n1. **Trigger**: Workflow is triggered by clicking \"Execute Workflow\".\n2. **Fetch RSS URLs**: Retrieves a list of URLs to check for RSS feeds.\n3. **Check for RSS Feed**: Validates whether the URLs have a valid RSS feed.\n4. **Fetch Latest Articles**: For valid RSS feeds, the workflow fetches the latest articles.\n5. **Store in Sheets**: The fetched articles, along with their links, are added to a Google Sheet.\n6. **Stop if No Articles Found**: If no valid articles are found, the workflow automatically stops.\n\n\n## Setup Instructions\n\n1. **Import Workflow**: _Workflows → Import from File_ in n8n.\n2. **RSS Feed URL Setup**: Input the URLs you want to check for RSS feeds.\n3. **Google Sheets Setup**: Connect your Google Sheets account and configure the spreadsheet where articles will be stored.\n4. **Run the Workflow**: Trigger the workflow manually by clicking \"Execute Workflow\" and monitor the results in your Google Sheet.\n\n\n## Logic Overview\n\n| Step                                   | Node Description                                                                 |\n|----------------------------------------|----------------------------------------------------------------------------------|\n| **1. Trigger**                         | **Execute Workflow**: Initiates the workflow process when triggered. The workflow begins when you manually execute it. |\n| **2. Fetch RSS URLs**                  | **RSS Feed**: Retrieves a list of RSS URLs from Google Sheets.                   |\n| **3. Check for RSS Feed**              | **Check RSS URLs**: Verifies whether each URL has a valid RSS feed using an HTTP Request node. |\n| **4. Fetch Latest Articles**           | **Fetch Each URL**: Fetches the latest articles from valid RSS feeds using the RSS Feed Read node. |\n| **5. Fetch Existing Titles**           | **Fetch Existing Title**: Retrieves stored titles from Google Sheets for comparison. |\n| **6. Check for Duplicates**            | **Check if Title Exists**: Compares new titles with existing ones. Duplicates are skipped; new ones proceed. |\n| **7. Store Only Non-Duplicate Titles** | **Append Row in Sheets**: Stores new (non-duplicate) articles in Google Sheets. |\n| **8. Optional Message Node**           | **Message**: Logs duplicate events (e.g., \"Data already exists\").                |\n| **9. Stop if No Articles Found**       | **Stop**: Halts workflow if no new articles are found or added.                 |\n\n\n## Customization Options\n\n- **RSS URL List**: Adjust the list of URLs to fetch articles from.\n- **Google Sheets**: Modify the Google Sheets integration to store additional data (e.g., article content, author).\n- **Error Handling**: Add custom error messages if no RSS feed is found or no articles are fetched.\n\n\n## Troubleshooting\n\n- **No Articles Fetched**: Ensure the RSS feed URLs are correctly formatted and active.\n- **Google Sheets Issues**: Verify that the Google Sheets API credentials are correctly configured and the sheet is accessible.\n- **Workflow Not Triggering**: Check the execution trigger settings to ensure the workflow is activated manually.\n\n\n## Use Case Examples\n\n1. **Blog Aggregator**: Automatically fetch and store the latest blog articles from multiple RSS feeds into a central Google Sheet for analysis.\n2. **Content Curation**: Gather the latest articles from industry-related RSS feeds and share them with your team.\n\n\n## Need Help?\n\nIf you need help setting up, customizing or extending this workflow, WeblineIndia can assist with full [n8n development](https://www.weblineindia.com/n8n-automation/), workflow automation, content fetching systems and custom integrations.\n","workflow":{"id":"t0UZclB5tuoTbCyS","meta":{"instanceId":"14e4c77104722ab186539dfea5182e419aecc83d85963fe13f6de862c875ebfa","templateCredsSetupCompleted":true},"name":"RSS Feed Latest Article Fetcher","tags":[],"nodes":[{"id":"4c654b62-69b7-463f-861b-90a78ae8344a","name":"When clicking ‘Execute workflow’","type":"n8n-nodes-base.manualTrigger","position":[-1168,-32],"parameters":{},"typeVersion":1},{"id":"f52bba62-6bae-4905-8dc3-f0b00b5da0da","name":"RSS Read","type":"n8n-nodes-base.rssFeedRead","position":[160,-48],"parameters":{"url":"={{ $json.RssUrl }}","options":{}},"typeVersion":1.2},{"id":"1fe09cfa-97db-4d5a-bc83-3e7f5d7f3170","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-960,-96],"parameters":{"color":7,"width":208,"height":224,"content":"List of Urls to check for RSS feed\n\n"},"typeVersion":1},{"id":"f279a2e9-fd75-4d7d-aab6-a6e6cd1ca161","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-480,-192],"parameters":{"color":7,"width":896,"height":464,"content":"Fetch data from a specific URL, most likely to retrieve the RSS feed,check which urls have RSS feed and returns true then pass only those urls whose RSS flag is true. Then check for the latest articles published if not found then stop the workflow.\n\n"},"typeVersion":1},{"id":"3feef12a-8a93-4f5a-8558-f81afecfe4ed","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-704,-128],"parameters":{"color":7,"width":176,"height":240,"content":"Get Each one using this code\n\n"},"typeVersion":1},{"id":"f61e39ed-c2f3-44e8-b99f-635bd41af765","name":"Fetch Each URL","type":"n8n-nodes-base.code","position":[-672,-64],"parameters":{"mode":"runOnceForEachItem","jsCode":"const websites = $json.URLs;  // Get the websites array from the Set Node\n\n// Prepare the list of websites for processing in the next node\nreturn {\n  json: {\n    websiteUrl: $json.URLs\n  }\n};"},"typeVersion":2},{"id":"2e1dfe6e-c394-4f66-9b46-509a0e5d2b61","name":"Fetched Article","type":"n8n-nodes-base.set","position":[480,-128],"parameters":{"options":{},"assignments":{"assignments":[{"id":"300d34b8-b078-4099-a772-6b42b131596d","name":"link","type":"string","value":"={{ $json.link }}"},{"id":"8547123a-0e39-4224-8c7d-c6fdd19fdc12","name":"title","type":"string","value":"={{ $json.title }}"},{"id":"21bf4bda-2906-4b4c-bf91-e8fa7974a0dc","name":"article","type":"string","value":"={{ $json.contentSnippet }}"}]}},"typeVersion":3.4},{"id":"4687a009-113e-47ad-99e4-3e501b1a7ba4","name":"Stop if no Article found","type":"n8n-nodes-base.stopAndError","position":[480,80],"parameters":{"errorMessage":"No latest Article is found"},"typeVersion":1},{"id":"45a65885-0755-44d8-ac3e-bfbdb9b2de8b","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-1840,-368],"parameters":{"width":560,"height":672,"content":"## How it works\n\nThis workflow is designed to find RSS feed URLs from a given list of URLs and fetch the latest articles from those that have a valid RSS feed. It works by:\n\n1.Checking each URL from a list.\n2.Identifying which URLs contain a valid RSS feed.\n3.Fetching the latest articles from those identified URLs.\n4.Stopping the workflow if no valid article is found.\n\n## Setup Steps\n\n1.Trigger: Workflow starts when you click \"Execute Workflow.\"\n\n2.Fetch RSS URLs: Retrieves URLs from Google Sheets.\n\n3.Check for RSS Feed: Validates whether each URL contains a valid RSS feed.\n\n4.Fetch Latest Articles: For valid feeds, the workflow fetches the latest articles.\n\n5.Fetch Existing Titles: Pulls existing titles from Google Sheets to compare against new titles.\n\n6.Check for Duplicates: Compares new titles with existing ones. If duplicate, skips; if not, proceeds.\n\n7.Store Non-Duplicate Titles: Adds non-duplicate articles to Google Sheets.\n\n8.Message Node: Optionally logs duplicate data (e.g., \"Data already exists\").\n\n9.Stop if No Articles: Stops the workflow if no new articles are found."},"typeVersion":1},{"id":"fae7faa7-80d8-4482-bd8f-e84e5a619e0c","name":"RSS URLs","type":"n8n-nodes-base.googleSheets","position":[-912,-32],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ndtTAw9_UstPpMWrEUP4GFESac_5139BqZOrkuROFzg/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1ndtTAw9_UstPpMWrEUP4GFESac_5139BqZOrkuROFzg","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ndtTAw9_UstPpMWrEUP4GFESac_5139BqZOrkuROFzg/edit?usp=drivesdk","cachedResultName":"RSS URLs"}},"credentials":{"googleSheetsOAuth2Api":{"id":"pGlpXu2qoTsHGHya","name":"Google Sheets account 33"}},"typeVersion":4.7},{"id":"3d551427-981b-4b1d-9513-eb2084a7bcaa","name":"Get Website Data","type":"n8n-nodes-base.httpRequest","position":[-448,-32],"parameters":{"url":"={{ $json.websiteUrl }}","options":{}},"typeVersion":4.3},{"id":"dd64a948-47ab-40e3-8fa0-5c880cbf16b5","name":"Check RSS URLs","type":"n8n-nodes-base.code","position":[-304,-32],"parameters":{"mode":"runOnceForEachItem","jsCode":"// Get the content (HTML) from the previous node (HTTP Request Node)\nconst content = $json[\"data\"];  // This contains the raw HTML data\n\n// Log the content for debugging purposes\nconsole.log('Content:', content);\n\n// Regular expression to search for both RSS and Atom feed links in the HTML content\nconst rssFeedRegex = /<link[^>]+rel=[\"']alternate[\"'][^>]+type=[\"'](application\\/rss\\+xml|application\\/atom\\+xml)[\"'][^>]+href=[\"']([^\"']+)[\"']/i;\n\n// Extract the website URL dynamically from the input node (previous node's data)\nconst websiteUrl = $('Fetch Each URL').item.json.websiteUrl;\n\n// Function to check if the content is valid HTML and contains RSS feeds\nif (content.trim().startsWith('<!DOCTYPE html>') || content.trim().startsWith('<html')) {\n    console.log(\"Content is HTML\");\n\n    // Use the regular expression to find the RSS feed link in the HTML content\n    const match = content.match(rssFeedRegex);\n\n    // If the RSS feed link is found\n    if (match) {\n        console.log(\"RSS Feed URL found:\", match[2]);  // Log the RSS feed URL (match[2] contains the URL)\n\n        // Check if the URL is relative and prepend the base URL (websiteUrl)\n        let fullRssFeedUrl = match[2];\n\n        // If the RSS feed URL is relative (does not start with 'http')\n        if (!fullRssFeedUrl.startsWith('http')) {\n            fullRssFeedUrl = websiteUrl + fullRssFeedUrl;  // Concatenate the website URL with the relative URL\n        }\n\n        return {\n            rssFeedFound: true,\n            rssFeedUrl: fullRssFeedUrl // The full RSS feed URL\n        };\n    } else {\n        console.log(\"No RSS Feed URL found in HTML\");  // Log no match found\n        return {\n            rssFeedFound: false\n        };\n    }\n} else {\n    // If the content is not HTML, return false\n    console.log(\"Content is not HTML\");\n    return {\n        rssFeedFound: false\n    };\n}"},"typeVersion":2},{"id":"2c2e10f6-30e2-4ecb-a817-dc4868310dfb","name":"Fetch RSS URLs","type":"n8n-nodes-base.if","position":[-144,-32],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"e4b94d2c-2e18-45fb-8e38-114786c03fab","operator":{"type":"boolean","operation":"equals"},"leftValue":"={{ $json.rssFeedFound }}","rightValue":true}]}},"typeVersion":2.2},{"id":"eb16100d-1604-41cf-a28f-48fa246c98c1","name":"Latest Uploaded Articles","type":"n8n-nodes-base.if","position":[304,-48],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"2a2710d1-bbb8-4994-b1ff-c6ed9cdfa0b3","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ DateTime.fromISO($json.pubDate).toUTC().toFormat('HH') }}","rightValue":"={{ new Date().getUTCHours().toString() }}"}]}},"typeVersion":2.2},{"id":"ecdbd913-fd96-47b7-8b88-fc8f1f56a4ec","name":"Add data in sheets","type":"n8n-nodes-base.googleSheets","position":[1216,-512],"parameters":{"columns":{"value":{"link":"={{ $json.link }}","title":"={{ $json.title }}","article":"={{ $json.article }}"},"schema":[{"id":"link","type":"string","display":true,"removed":false,"required":false,"displayName":"link","defaultMatch":false,"canBeUsedToMatch":true},{"id":"title","type":"string","display":true,"removed":false,"required":false,"displayName":"title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"article","type":"string","display":true,"removed":false,"required":false,"displayName":"article","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ME5tNqq4YpxEoS7v3Ve4ckxBLH-9K3NjbcOeeO1pB1k/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1ME5tNqq4YpxEoS7v3Ve4ckxBLH-9K3NjbcOeeO1pB1k","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ME5tNqq4YpxEoS7v3Ve4ckxBLH-9K3NjbcOeeO1pB1k/edit?usp=drivesdk","cachedResultName":"RSS Fetched Feed"}},"credentials":{"googleSheetsOAuth2Api":{"id":"pGlpXu2qoTsHGHya","name":"Google Sheets account 33"}},"typeVersion":4.7},{"id":"81e92f75-af73-4ecc-85fb-484642ea76db","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[448,-176],"parameters":{"color":7,"width":160,"height":208,"content":"Format Data"},"typeVersion":1},{"id":"e7e931ae-d5a5-45bb-86d4-a71a8444cdf2","name":"Fetch title","type":"n8n-nodes-base.googleSheets","position":[624,-304],"parameters":{"options":{},"sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ME5tNqq4YpxEoS7v3Ve4ckxBLH-9K3NjbcOeeO1pB1k/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1ME5tNqq4YpxEoS7v3Ve4ckxBLH-9K3NjbcOeeO1pB1k","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ME5tNqq4YpxEoS7v3Ve4ckxBLH-9K3NjbcOeeO1pB1k/edit?usp=drivesdk","cachedResultName":"RSS Fetched Feed"},"combineFilters":"=AND"},"credentials":{"googleSheetsOAuth2Api":{"id":"pGlpXu2qoTsHGHya","name":"Google Sheets account 33"}},"typeVersion":4.7,"alwaysOutputData":true},{"id":"2c2bbdca-947e-480a-aff1-49680d104655","name":"Get Titles List","type":"n8n-nodes-base.code","position":[1024,-208],"parameters":{"jsCode":"// Initialize an empty array to store titles\nlet titlesList = [];\n\n// Loop through each item in the previous result (fetched titles)\nfor (let i = 0; i < items.length; i++) {\n    // Extract title from each item (you may need to adjust this part based on the structure)\n    let title = items[i].json.title;\n\n    // Add the title to the list if it's not already in the list\n    if (!titlesList.includes(title)) {\n        titlesList.push(title);\n    }\n}\n\n// Return the list as a new output\nreturn [\n  {\n    json: {\n      titlesList: titlesList  // The final array of titles without duplicates\n    }\n  }\n];"},"typeVersion":2},{"id":"232091eb-047f-433c-855e-30f106d9226c","name":"Check if data is empty","type":"n8n-nodes-base.if","position":[784,-304],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"a2c8f7f5-b156-4239-987c-40a1e0726562","operator":{"type":"object","operation":"empty","singleValue":true},"leftValue":"={{ $json }}","rightValue":""}]}},"typeVersion":2.2},{"id":"c314c121-f0c0-4d32-9dc3-5b34b77c0b8a","name":"Get Each item","type":"n8n-nodes-base.code","position":[1056,-512],"parameters":{"jsCode":"// Get the fetched articles from the previous node\nconst fetchedArticles = $('Fetched Article').all();\n\n// Initialize an array to store the rows for Google Sheets\nlet rows = [];\n\n// Loop through each item and format the data for Google Sheets\nfetchedArticles.forEach(item => {\n    const title = item.json.title;\n    const link = item.json.link;\n    const article = item.json.article;\n\n    // Create a row for Google Sheets (you can add more fields as needed)\n    const row = [title, link, article];\n\n    // Push the row to the rows array\n    rows.push(row);\n});\n\n// Return the rows array to pass data to the next node (Google Sheets)\nreturn rows.map(row => ({\n  json: {\n    title: row[0],\n    link: row[1],\n    article: row[2],\n  },\n}));"},"typeVersion":2},{"id":"69b1fbed-3a7d-4334-8202-8c24f1055610","name":"Append row in sheet","type":"n8n-nodes-base.googleSheets","position":[1680,-96],"parameters":{"columns":{"value":{"link":"={{ $json.link }}","title":"={{ $json.title }}","article":"={{ $json.article }}"},"schema":[{"id":"title","type":"string","display":true,"required":false,"displayName":"title","defaultMatch":false,"canBeUsedToMatch":true},{"id":"link","type":"string","display":true,"required":false,"displayName":"link","defaultMatch":false,"canBeUsedToMatch":true},{"id":"article","type":"string","display":true,"required":false,"displayName":"article","defaultMatch":false,"canBeUsedToMatch":true}],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":false},"options":{},"operation":"append","sheetName":{"__rl":true,"mode":"list","value":"gid=0","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ME5tNqq4YpxEoS7v3Ve4ckxBLH-9K3NjbcOeeO1pB1k/edit#gid=0","cachedResultName":"Sheet1"},"documentId":{"__rl":true,"mode":"list","value":"1ME5tNqq4YpxEoS7v3Ve4ckxBLH-9K3NjbcOeeO1pB1k","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1ME5tNqq4YpxEoS7v3Ve4ckxBLH-9K3NjbcOeeO1pB1k/edit?usp=drivesdk","cachedResultName":"RSS Fetched Feed"}},"credentials":{"googleSheetsOAuth2Api":{"id":"pGlpXu2qoTsHGHya","name":"Google Sheets account 33"}},"typeVersion":4.7},{"id":"5840fdc8-f143-43d8-9b74-34671170a659","name":"Check if title exits in sheet","type":"n8n-nodes-base.code","position":[1168,-208],"parameters":{"jsCode":"// Get the list of new titles from Fetched Article\nconst newTitles = $('Fetched Article').all().map(item => item.json.title);\n\n// Get the list of existing titles from Google Sheets (or wherever you're storing them)\nconst titlesList = $json[\"titlesList\"];\n\n// Flag to indicate if all titles are found\nlet allTitlesFound = true;\n\n// Array to store titles that were not found\nlet notFoundTitles = [];\n\n// Iterate over each new title and check if it exists in titlesList\nfor (let newTitle of newTitles) {\n    if (!titlesList.includes(newTitle)) {\n        // If the title is not found, mark it and add to the notFoundTitles array\n        allTitlesFound = false;\n        notFoundTitles.push(newTitle);\n    }\n}\n\n// Return the result (true/false) and the list of not found titles\nreturn [\n  {\n    json: {\n      allTitlesFound: allTitlesFound,  // This will be true if all titles are found\n      notFoundTitles: notFoundTitles  // This will contain the titles that are not found\n    }\n  }\n];"},"typeVersion":2},{"id":"880cc11d-0181-496a-88d2-d62ab8aa858a","name":"Stop if no Url found","type":"n8n-nodes-base.stopAndError","position":[48,112],"parameters":{"errorMessage":"RSS field not found for this URL"},"typeVersion":1},{"id":"a682204c-4b42-4d01-b89b-02ec54489773","name":"Each RSS URL","type":"n8n-nodes-base.code","position":[16,-48],"parameters":{"mode":"runOnceForEachItem","jsCode":"const websites = $json.rssFeedUrl;  // Get the websites array from the Set Node\n\n// Prepare the list of websites for processing in the next node\nreturn {\n  json: {\n    RssUrl: $json.rssFeedUrl\n  }\n};"},"typeVersion":2},{"id":"f92d02b0-5492-4110-a8a4-d04e506337a7","name":"Get matching titles","type":"n8n-nodes-base.code","position":[1520,-96],"parameters":{"jsCode":"// Get the list of not found titles (those we need to match)\nconst notFoundTitles = $json[\"notFoundTitles\"];\n\n// Get the list of new titles from Fetched Article\nconst fetchedArticles = $('Fetched Article').all();  // This contains the articles with title, link and article\n\n// Initialize an array to store the matched articles\nlet matchingArticles = [];\n\n// Loop through each item in the fetched articles\nfor (let i = 0; i < fetchedArticles.length; i++) {\n    const article = fetchedArticles[i].json;\n\n    // Check if the current article's title exists in the notFoundTitles array\n    if (notFoundTitles.includes(article.title)) {\n        // If found, push the link, title and article content in the desired format\n        matchingArticles.push({\n            link: article.link,\n            title: article.title,\n            article: article.article\n        });\n    }\n}\n\n// If you just want to return the matching articles in the format you mentioned:\n// Return as single objects, no need for a list of \"matchingArticles\"\nreturn matchingArticles.map(article => ({\n    json: {\n        link: article.link,\n        title: article.title,\n        article: article.article\n    }\n}));"},"typeVersion":2},{"id":"ee10fdee-47e6-415d-820c-0a4f898e99c9","name":"Message","type":"n8n-nodes-base.set","position":[1504,-304],"parameters":{"options":{},"assignments":{"assignments":[{"id":"bc68727f-c8c0-45a1-aa5c-722e585f5347","name":"message","type":"string","value":"Data already exists"}]}},"typeVersion":3.4},{"id":"264b0b94-c3d7-488c-9aa1-0c70dde13a88","name":"Check if matches","type":"n8n-nodes-base.if","position":[1328,-208],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"b7310eaf-6316-4ec8-8236-a9d364fb7066","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.allTitlesFound }}","rightValue":"={{ $json.titlesList }}"}]}},"typeVersion":2.2},{"id":"244caa88-ab6b-4310-86de-3f542f9433d8","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[608,-384],"parameters":{"color":7,"width":320,"height":224,"content":"Fetch existing title from sheets and check that it exists\n"},"typeVersion":1},{"id":"f39d2140-6456-42bb-b203-3ac82eace4a4","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[1024,-560],"parameters":{"color":7,"width":352,"height":192,"content":"Get each item and store in sheet.\n\n"},"typeVersion":1},{"id":"5f37ac61-0cbb-4387-aab9-5119eda14d19","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[992,-288],"parameters":{"color":7,"width":432,"height":240,"content":"Store existing title in a list and check that if any new titles are exiting if not then store new title in a seperate list.\n"},"typeVersion":1},{"id":"dae98fd9-03bc-40d1-8c94-26118d17c2f0","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[1488,-144],"parameters":{"color":7,"width":384,"height":208,"content":"New titles matching with fetched title and store in sheet.\n"},"typeVersion":1},{"id":"1fe04ed5-7dd1-4ab2-a6ff-81e687801d60","name":"Sticky Note9","type":"n8n-nodes-base.stickyNote","position":[1440,-352],"parameters":{"color":7,"width":256,"height":144,"content":"Add message that data already exits."},"typeVersion":1}],"active":false,"pinData":{},"settings":{"executionOrder":"v1"},"versionId":"5df42ae9-c615-4e76-a029-15e5647622a4","connections":{"RSS Read":{"main":[[{"node":"Latest Uploaded Articles","type":"main","index":0}]]},"RSS URLs":{"main":[[{"node":"Fetch Each URL","type":"main","index":0}]]},"Fetch title":{"main":[[{"node":"Check if data is empty","type":"main","index":0}]]},"Each RSS URL":{"main":[[{"node":"RSS Read","type":"main","index":0}]]},"Get Each item":{"main":[[{"node":"Add data in sheets","type":"main","index":0}]]},"Check RSS URLs":{"main":[[{"node":"Fetch RSS URLs","type":"main","index":0}]]},"Fetch Each URL":{"main":[[{"node":"Get Website Data","type":"main","index":0}]]},"Fetch RSS URLs":{"main":[[{"node":"Each RSS URL","type":"main","index":0}],[{"node":"Stop if no Url found","type":"main","index":0}]]},"Fetched Article":{"main":[[{"node":"Fetch title","type":"main","index":0}]]},"Get Titles List":{"main":[[{"node":"Check if title exits in sheet","type":"main","index":0}]]},"Check if matches":{"main":[[{"node":"Message","type":"main","index":0}],[{"node":"Get matching titles","type":"main","index":0}]]},"Get Website Data":{"main":[[{"node":"Check RSS URLs","type":"main","index":0}]]},"Get matching titles":{"main":[[{"node":"Append row in sheet","type":"main","index":0}]]},"Check if data is empty":{"main":[[{"node":"Get Each item","type":"main","index":0}],[{"node":"Get Titles List","type":"main","index":0}]]},"Latest Uploaded Articles":{"main":[[{"node":"Fetched Article","type":"main","index":0}],[{"node":"Stop if no Article found","type":"main","index":0}]]},"Check if title exits in sheet":{"main":[[{"node":"Check if matches","type":"main","index":0}]]},"When clicking ‘Execute workflow’":{"main":[[{"node":"RSS URLs","type":"main","index":0}]]}}},"lastUpdatedBy":1,"workflowInfo":{"nodeCount":32,"nodeTypes":{"n8n-nodes-base.if":{"count":4},"n8n-nodes-base.set":{"count":2},"n8n-nodes-base.code":{"count":7},"n8n-nodes-base.stickyNote":{"count":10},"n8n-nodes-base.httpRequest":{"count":1},"n8n-nodes-base.rssFeedRead":{"count":1},"n8n-nodes-base.googleSheets":{"count":4},"n8n-nodes-base.stopAndError":{"count":2},"n8n-nodes-base.manualTrigger":{"count":1}}},"status":"published","readyToDemo":null,"user":{"name":"WeblineIndia","username":"weblineindia","bio":"A Leading Software Engineering, Consulting & Outsourcing Services Company in USA & India serving Clients Globally since 1999.","verified":true,"links":["https://www.weblineindia.com/hire-n8n-developers/"],"avatar":"https://gravatar.com/avatar/a229d43aefca4588581583c58bb37b4773aebbdf4c1fef86a08bb1d38eae91fa?r=pg&d=retro&size=200"},"nodes":[{"id":18,"icon":"file:googleSheets.svg","name":"n8n-nodes-base.googleSheets","codex":{"data":{"alias":["CSV","Sheet","Spreadsheet","GS"],"resources":{"generic":[{"url":"https://n8n.io/blog/love-at-first-sight-ricardos-n8n-journey/","icon":"❤️","label":"Love at first sight: Ricardo’s n8n journey"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/supercharging-your-conference-registration-process-with-n8n/","icon":"🎫","label":"Supercharging your conference registration process with n8n"},{"url":"https://n8n.io/blog/creating-triggers-for-n8n-workflows-using-polling/","icon":"⏲","label":"Creating triggers for n8n workflows using polling"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/migrating-community-metrics-to-orbit-using-n8n/","icon":"📈","label":"Migrating Community Metrics to Orbit using n8n"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/your-business-doesnt-need-you-to-operate/","icon":" 🖥️","label":"Hey founders! Your business doesn't need you to operate"},{"url":"https://n8n.io/blog/how-honest-burgers-use-automation-to-save-100k-per-year/","icon":"🍔","label":"How Honest Burgers Use Automation to Save $100k per year"},{"url":"https://n8n.io/blog/how-a-digital-strategist-uses-n8n-for-online-marketing/","icon":"💻","label":"How a digital strategist uses n8n for online marketing"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.googlesheets/"}],"credentialDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/"}]},"categories":["Data & Storage","Productivity"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\",\"output\"]","defaults":{"name":"Google Sheets"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI2MCIgaGVpZ2h0PSI2MCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNS42OSAxIDUyIDE3LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0OC4yOTMgNjBIMTIuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDkgNTYuMzEyVjQuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTIuNzA3IDF6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM1LjY5IDEgNTIgMTcuMjI1SDM5LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzkuMjExIDE3LjIyNSA1MiAyMi40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTIwLjEyIDMxLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMS42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzEuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjxwYXRoIGZpbGw9IiMyOEI0NDYiIGQ9Ik0zNC42OSAwIDUxIDE2LjIyNXYzOS4wODdhMy42NyAzLjY3IDAgMCAxLTEuMDg0IDIuNjFBMy43IDMuNyAwIDAgMSA0Ny4yOTMgNTlIMTEuNzA3YTMuNyAzLjcgMCAwIDEtMi42MjMtMS4wNzhBMy42NyAzLjY3IDAgMCAxIDggNTUuMzEyVjMuNjg4YTMuNjcgMy42NyAwIDAgMSAxLjA4NC0yLjYxQTMuNyAzLjcgMCAwIDEgMTEuNzA3IDB6Ii8+PHBhdGggZmlsbD0iIzZBQ0U3QyIgZD0iTTM0LjY5IDAgNTEgMTYuMjI1SDM4LjM5N2MtMi4wNTQgMC0zLjcwNy0xLjgyOS0zLjcwNy0zLjg3MnoiLz48cGF0aCBmaWxsPSIjMjE5QjM4IiBkPSJNMzguMjExIDE2LjIyNSA1MSAyMS40OHYtNS4yNTV6Ii8+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTE5LjEyIDMwLjk3NWMwLS44MTcuNjYyLTEuNDc1IDEuNDgzLTEuNDc1aDE3Ljc5NGMuODIxIDAgMS40ODIuNjU4IDEuNDgyIDEuNDc1djE1LjQ4N2MwIC44MTgtLjY2MSAxLjQ3NS0xLjQ4MiAxLjQ3NUgyMC42MDNhMS40NzYgMS40NzYgMCAwIDEtMS40ODItMS40NzRWMzAuOTc0em0yLjIyNSAxLjQ3NWg2LjY3MnYyLjIxMmgtNi42NzJ6bTAgNS4xNjJoNi42NzJ2Mi4yMTNoLTYuNjcyem0wIDUuMTYzaDYuNjcydjIuMjEyaC02LjY3MnptOS42MzgtMTAuMzI1aDYuNjcydjIuMjEyaC02LjY3MnptMCA1LjE2Mmg2LjY3MnYyLjIxM2gtNi42NzJ6bTAgNS4xNjNoNi42NzJ2Mi4yMTJoLTYuNjcyeiIvPjwvZz48L3N2Zz4="},"displayName":"Google Sheets","typeVersion":5,"nodeCategories":[{"id":3,"name":"Data & Storage"},{"id":4,"name":"Productivity"}]},{"id":19,"icon":"file:httprequest.svg","name":"n8n-nodes-base.httpRequest","codex":{"data":{"alias":["API","Request","URL","Build","cURL"],"resources":{"generic":[{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/learn-how-to-automatically-cross-post-your-content-with-n8n/","icon":"✍️","label":"Learn how to automatically cross-post your content with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/running-n8n-on-ships-an-interview-with-maranics/","icon":"🛳","label":"Running n8n on ships: An interview with Maranics"},{"url":"https://n8n.io/blog/what-are-apis-how-to-use-them-with-no-code/","icon":" 🪢","label":"What are APIs and how to use them with no code"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/world-poetry-day-workflow/","icon":"📜","label":"Celebrating World Poetry Day with a daily poem in Telegram"},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automate-designs-with-bannerbear-and-n8n/","icon":"🎨","label":"Automate Designs with Bannerbear and n8n"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/how-to-use-the-http-request-node-the-swiss-army-knife-for-workflow-automation/","icon":"🧰","label":"How to use the HTTP Request Node - The Swiss Army Knife for Workflow Automation"},{"url":"https://n8n.io/blog/learn-how-to-use-webhooks-with-mattermost-slash-commands/","icon":"🦄","label":"Learn how to use webhooks with Mattermost slash commands"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/automations-for-activists/","icon":"✨","label":"How Common Knowledge use workflow automation for activism"},{"url":"https://n8n.io/blog/creating-scheduled-text-affirmations-with-n8n/","icon":"🤟","label":"Creating scheduled text affirmations with n8n"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.httprequest/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"output\"]","defaults":{"name":"HTTP Request","color":"#0004F5"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik00MCAyMEM0MCA4Ljk1MzE0IDMxLjA0NjkgMCAyMCAwQzguOTUzMTQgMCAwIDguOTUzMTQgMCAyMEMwIDMxLjA0NjkgOC45NTMxNCA0MCAyMCA0MEMzMS4wNDY5IDQwIDQwIDMxLjA0NjkgNDAgMjBaTTIwIDM2Ljk0NThDMTguODg1MiAzNi45NDU4IDE3LjEzNzggMzUuOTY3IDE1LjQ5OTggMzIuNjk4NUMxNC43OTY0IDMxLjI5MTggMTQuMTk2MSAyOS41NDMxIDEzLjc1MjYgMjcuNjg0N0gyNi4xODk4QzI1LjgwNDUgMjkuNTQwMyAyNS4yMDQ0IDMxLjI5MDEgMjQuNTAwMiAzMi42OTg1QzIyLjg2MjIgMzUuOTY3IDIxLjExNDggMzYuOTQ1OCAyMCAzNi45NDU4Wk0xMi45MDY0IDIwQzEyLjkwNjQgMjEuNjA5NyAxMy4wMDg3IDIzLjE2NCAxMy4yMDAzIDI0LjYzMDVIMjYuNzk5N0MyNi45OTEzIDIzLjE2NCAyNy4wOTM2IDIxLjYwOTcgMjcuMDkzNiAyMEMyNy4wOTM2IDE4LjM5MDMgMjYuOTkxMyAxNi44MzYgMjYuNzk5NyAxNS4zNjk1SDEzLjIwMDNDMTMuMDA4NyAxNi44MzYgMTIuOTA2NCAxOC4zOTAzIDEyLjkwNjQgMjBaTTIwIDMuMDU0MTlDMjEuMTE0OSAzLjA1NDE5IDIyLjg2MjIgNC4wMzA3OCAyNC41MDAxIDcuMzAwMzlDMjUuMjA2NiA4LjcxNDA4IDI1LjgwNzIgMTAuNDA2NyAyNi4xOTIgMTIuMzE1M0gxMy43NTAxQzE0LjE5MzMgMTAuNDA0NyAxNC43OTQyIDguNzEyNTQgMTUuNDk5OCA3LjMwMDY0QzE3LjEzNzcgNC4wMzA4MyAxOC44ODUxIDMuMDU0MTkgMjAgMy4wNTQxOVpNMzAuMTQ3OCAyMEMzMC4xNDc4IDE4LjQwOTkgMzAuMDU0MyAxNi44NjE3IDI5LjgyMjcgMTUuMzY5NUgzNi4zMDQyQzM2LjcyNTIgMTYuODQyIDM2Ljk0NTggMTguMzk2NCAzNi45NDU4IDIwQzM2Ljk0NTggMjEuNjAzNiAzNi43MjUyIDIzLjE1OCAzNi4zMDQyIDI0LjYzMDVIMjkuODIyN0MzMC4wNTQzIDIzLjEzODMgMzAuMTQ3OCAyMS41OTAxIDMwLjE0NzggMjBaTTI2LjI3NjcgNC4yNTUxMkMyNy42MzY1IDYuMzYwMTkgMjguNzExIDkuMTMyIDI5LjM3NzQgMTIuMzE1M0gzNS4xMDQ2QzMzLjI1MTEgOC42NjggMzAuMTA3IDUuNzgzNDYgMjYuMjc2NyA0LjI1NTEyWk0xMC42MjI2IDEyLjMxNTNINC44OTI5M0M2Ljc1MTQ3IDguNjY3ODQgOS44OTM1MSA1Ljc4MzQxIDEzLjcyMzIgNC4yNTUxM0MxMi4zNjM1IDYuMzYwMjEgMTEuMjg5IDkuMTMyMDEgMTAuNjIyNiAxMi4zMTUzWk0zLjA1NDE5IDIwQzMuMDU0MTkgMjEuNjAzIDMuMjc3NDMgMjMuMTU3NSAzLjY5NDg0IDI0LjYzMDVIMTAuMTIxN0M5Ljk0NjE5IDIzLjE0MiA5Ljg1MjIyIDIxLjU5NDMgOS44NTIyMiAyMEM5Ljg1MjIyIDE4LjQwNTcgOS45NDYxOSAxNi44NTggMTAuMTIxNyAxNS4zNjk1SDMuNjk0ODRDMy4yNzc0MyAxNi44NDI1IDMuMDU0MTkgMTguMzk3IDMuMDU0MTkgMjBaTTI2LjI3NjYgMzUuNzQyN0MyNy42MzY1IDMzLjYzOTMgMjguNzExIDMwLjg2OCAyOS4zNzc0IDI3LjY4NDdIMzUuMTA0NkMzMy4yNTEgMzEuMzMyMiAzMC4xMDY4IDM0LjIxNzkgMjYuMjc2NiAzNS43NDI3Wk0xMy43MjM0IDM1Ljc0MjdDOS44OTM2OSAzNC4yMTc5IDYuNzUxNTUgMzEuMzMyNCA0Ljg5MjkzIDI3LjY4NDdIMTAuNjIyNkMxMS4yODkgMzAuODY4IDEyLjM2MzUgMzMuNjM5MyAxMy43MjM0IDM1Ljc0MjdaIiBmaWxsPSIjM0E0MkU5Ii8+Cjwvc3ZnPgo="},"displayName":"HTTP Request","typeVersion":4,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":20,"icon":"fa:map-signs","name":"n8n-nodes-base.if","codex":{"data":{"alias":["Router","Filter","Condition","Logic","Boolean","Branch"],"details":"The IF node can be used to implement binary conditional logic in your workflow. You can set up one-to-many conditions to evaluate each item of data being inputted into the node. That data will either evaluate to TRUE or FALSE and route out of the node accordingly.\n\nThis node has multiple types of conditions: Bool, String, Number, and Date & Time.","resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/create-a-toxic-language-detector-for-telegram/","icon":"🤬","label":"Create a toxic language detector for Telegram in 4 step"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/automation-for-maintainers-of-open-source-projects/","icon":"🏷️","label":"How to automatically manage contributions to open-source projects"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/why-this-product-manager-loves-workflow-automation-with-n8n/","icon":"🧠","label":"Why this Product Manager loves workflow automation with n8n"},{"url":"https://n8n.io/blog/sending-automated-congratulations-with-google-sheets-twilio-and-n8n/","icon":"🙌","label":"Sending Automated Congratulations with Google Sheets, Twilio, and n8n "},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.if/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"transform\"]","defaults":{"name":"If","color":"#408000"},"iconData":{"icon":"map-signs","type":"icon"},"displayName":"If","typeVersion":2,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":37,"icon":"fa:rss","name":"n8n-nodes-base.rssFeedRead","codex":{"data":{"resources":{"generic":[{"url":"https://n8n.io/blog/why-business-process-automation-with-n8n-can-change-your-daily-life/","icon":"🧬","label":"Why business process automation with n8n can change your daily life"},{"url":"https://n8n.io/blog/why-i-chose-n8n-over-zapier-in-2020/","icon":"😍","label":"Why I chose n8n over Zapier in 2020"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.rssfeedread/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"input\"]","defaults":{"name":"RSS Read","color":"#b02020"},"iconData":{"icon":"rss","type":"icon"},"displayName":"RSS Read","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":38,"icon":"fa:pen","name":"n8n-nodes-base.set","codex":{"data":{"alias":["Set","JS","JSON","Filter","Transform","Map"],"resources":{"generic":[{"url":"https://n8n.io/blog/learn-to-automate-your-factorys-incident-reporting-a-step-by-step-guide/","icon":"🏭","label":"Learn to Automate Your Factory's Incident Reporting: A Step by Step Guide"},{"url":"https://n8n.io/blog/2021-the-year-to-automate-the-new-you-with-n8n/","icon":"☀️","label":"2021: The Year to Automate the New You with n8n"},{"url":"https://n8n.io/blog/automatically-pulling-and-visualizing-data-with-n8n/","icon":"📈","label":"Automatically pulling and visualizing data with n8n"},{"url":"https://n8n.io/blog/database-monitoring-and-alerting-with-n8n/","icon":"📡","label":"Database Monitoring and Alerting with n8n"},{"url":"https://n8n.io/blog/automatically-adding-expense-receipts-to-google-sheets-with-telegram-mindee-twilio-and-n8n/","icon":"🧾","label":"Automatically Adding Expense Receipts to Google Sheets with Telegram, Mindee, Twilio, and n8n"},{"url":"https://n8n.io/blog/no-code-ecommerce-workflow-automations/","icon":"store","label":"6 e-commerce workflows to power up your Shopify s"},{"url":"https://n8n.io/blog/how-to-build-a-low-code-self-hosted-url-shortener/","icon":"🔗","label":"How to build a low-code, self-hosted URL shortener in 3 steps"},{"url":"https://n8n.io/blog/automate-your-data-processing-pipeline-in-9-steps-with-n8n/","icon":"⚙️","label":"Automate your data processing pipeline in 9 steps"},{"url":"https://n8n.io/blog/how-to-get-started-with-crm-automation-and-no-code-workflow-ideas/","icon":"👥","label":"How to get started with CRM automation (with 3 no-code workflow ideas"},{"url":"https://n8n.io/blog/5-tasks-you-can-automate-with-notion-api/","icon":"⚡️","label":"5 tasks you can automate with the new Notion API "},{"url":"https://n8n.io/blog/automate-google-apps-for-productivity/","icon":"💡","label":"15 Google apps you can combine and automate to increase productivity"},{"url":"https://n8n.io/blog/how-uproc-scraped-a-multi-page-website-with-a-low-code-workflow/","icon":" 🕸️","label":"How uProc scraped a multi-page website with a low-code workflow"},{"url":"https://n8n.io/blog/building-an-expense-tracking-app-in-10-minutes/","icon":"📱","label":"Building an expense tracking app in 10 minutes"},{"url":"https://n8n.io/blog/the-ultimate-guide-to-automate-your-video-collaboration-with-whereby-mattermost-and-n8n/","icon":"📹","label":"The ultimate guide to automate your video collaboration with Whereby, Mattermost, and n8n"},{"url":"https://n8n.io/blog/5-workflow-automations-for-mattermost-that-we-love-at-n8n/","icon":"🤖","label":"5 workflow automations for Mattermost that we love at n8n"},{"url":"https://n8n.io/blog/learn-to-build-powerful-api-endpoints-using-webhooks/","icon":"🧰","label":"Learn to Build Powerful API Endpoints Using Webhooks"},{"url":"https://n8n.io/blog/how-a-membership-development-manager-automates-his-work-and-investments/","icon":"📈","label":"How a Membership Development Manager automates his work and investments"},{"url":"https://n8n.io/blog/a-low-code-bitcoin-ticker-built-with-questdb-and-n8n-io/","icon":"📈","label":"A low-code bitcoin ticker built with QuestDB and n8n.io"},{"url":"https://n8n.io/blog/how-to-set-up-a-ci-cd-pipeline-with-no-code/","icon":"🎡","label":"How to set up a no-code CI/CD pipeline with GitHub and TravisCI"},{"url":"https://n8n.io/blog/benefits-of-automation-and-n8n-an-interview-with-hubspots-hugh-durkin/","icon":"🎖","label":"Benefits of automation and n8n: An interview with HubSpot's Hugh Durkin"},{"url":"https://n8n.io/blog/how-goomer-automated-their-operations-with-over-200-n8n-workflows/","icon":"🛵","label":"How Goomer automated their operations with over 200 n8n workflows"},{"url":"https://n8n.io/blog/aws-workflow-automation/","label":"7 no-code workflow automations for Amazon Web Services"}],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.set/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Data Transformation"]}}},"group":"[\"input\"]","defaults":{"name":"Edit Fields"},"iconData":{"icon":"pen","type":"icon"},"displayName":"Edit Fields (Set)","typeVersion":3,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":528,"icon":"fa:exclamation-triangle","name":"n8n-nodes-base.stopAndError","codex":{"data":{"alias":["Throw error","Error","Exception"],"resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.stopanderror/"}]},"categories":["Core Nodes","Utility"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Flow"]}}},"group":"[\"input\"]","defaults":{"name":"Stop and Error","color":"#ff0000"},"iconData":{"icon":"exclamation-triangle","type":"icon"},"displayName":"Stop and Error","typeVersion":1,"nodeCategories":[{"id":7,"name":"Utility"},{"id":9,"name":"Core Nodes"}]},{"id":565,"icon":"fa:sticky-note","name":"n8n-nodes-base.stickyNote","codex":{"data":{"alias":["Comments","Notes","Sticky"],"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers"]}}},"group":"[\"input\"]","defaults":{"name":"Sticky Note","color":"#FFD233"},"iconData":{"icon":"sticky-note","type":"icon"},"displayName":"Sticky Note","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]},{"id":834,"icon":"file:code.svg","name":"n8n-nodes-base.code","codex":{"data":{"alias":["cpde","Javascript","JS","Python","Script","Custom Code","Function"],"details":"The Code node allows you to execute JavaScript in your workflow.","resources":{"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.code/"}]},"categories":["Development","Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0","subcategories":{"Core Nodes":["Helpers","Data Transformation"]}}},"group":"[\"transform\"]","defaults":{"name":"Code"},"iconData":{"type":"file","fileBuffer":"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIgdmlld0JveD0iMCAwIDUxMiA1MTIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMF8xMTcxXzQ0MSkiPgo8cGF0aCBkPSJNMTcwLjI4MyA0OEgxOTYuNUMyMDMuMTI3IDQ4IDIwOC41IDQyLjYyNzQgMjA4LjUgMzZWMTJDMjA4LjUgNS4zNzI1OCAyMDMuMTI3IDAgMTk2LjUgMEgxNzAuMjgzQzEyNi4xIDAgOTAuMjgzIDM1LjgxNzIgOTAuMjgzIDgwVjE3NkM5MC4yODMgMjA2LjkyOCA2NS4yMTA5IDIzMiAzNC4yODMgMjMySDIzQzE2LjM3MjYgMjMyIDExIDIzNy4zNzIgMTEgMjQ0VjI2OEMxMSAyNzQuNjI3IDE2LjM3MjQgMjgwIDIyLjk5OTYgMjgwTDM0LjI4MyAyODBDNjUuMjEwOSAyODAgOTAuMjgzIDMwNS4wNzIgOTAuMjgzIDMzNlY0NDBDOTAuMjgzIDQ3OS43NjQgMTIyLjUxOCA1MTIgMTYyLjI4MyA1MTJIMTk2LjVDMjAzLjEyNyA1MTIgMjA4LjUgNTA2LjYyNyAyMDguNSA1MDBWNDc2QzIwOC41IDQ2OS4zNzMgMjAzLjEyNyA0NjQgMTk2LjUgNDY0SDE2Mi4yODNDMTQ5LjAyOCA0NjQgMTM4LjI4MyA0NTMuMjU1IDEzOC4yODMgNDQwVjMzNkMxMzguMjgzIDMwOS4wMjIgMTI4LjAxMSAyODQuNDQzIDExMS4xNjQgMjY1Ljk2MUMxMDYuMTA5IDI2MC40MTYgMTA2LjEwOSAyNTEuNTg0IDExMS4xNjQgMjQ2LjAzOUMxMjguMDExIDIyNy41NTcgMTM4LjI4MyAyMDIuOTc4IDEzOC4yODMgMTc2VjgwQzEzOC4yODMgNjIuMzI2OSAxNTIuNjEgNDggMTcwLjI4MyA0OFoiIGZpbGw9IiNGRjk5MjIiLz4KPHBhdGggZD0iTTMwNSAzNkMzMDUgNDIuNjI3NCAzMTAuMzczIDQ4IDMxNyA0OEgzNDIuOTc5QzM2MC42NTIgNDggMzc0Ljk3OCA2Mi4zMjY5IDM3NC45NzggODBWMTc2QzM3NC45NzggMjAyLjk3OCAzODUuMjUxIDIyNy41NTcgNDAyLjA5OCAyNDYuMDM5QzQwNy4xNTMgMjUxLjU4NCA0MDcuMTUzIDI2MC40MTYgNDAyLjA5OCAyNjUuOTYxQzM4NS4yNTEgMjg0LjQ0MyAzNzQuOTc4IDMwOS4wMjIgMzc0Ljk3OCAzMzZWNDMyQzM3NC45NzggNDQ5LjY3MyAzNjAuNjUyIDQ2NCAzNDIuOTc5IDQ2NEgzMTdDMzEwLjM3MyA0NjQgMzA1IDQ2OS4zNzMgMzA1IDQ3NlY1MDBDMzA1IDUwNi42MjcgMzEwLjM3MyA1MTIgMzE3IDUxMkgzNDIuOTc5QzM4Ny4xNjEgNTEyIDQyMi45NzggNDc2LjE4MyA0MjIuOTc4IDQzMlYzMzZDNDIyLjk3OCAzMDUuMDcyIDQ0OC4wNTEgMjgwIDQ3OC45NzkgMjgwSDQ5MEM0OTYuNjI3IDI4MCA1MDIgMjc0LjYyOCA1MDIgMjY4VjI0NEM1MDIgMjM3LjM3MyA0OTYuNjI4IDIzMiA0OTAgMjMyTDQ3OC45NzkgMjMyQzQ0OC4wNTEgMjMyIDQyMi45NzggMjA2LjkyOCA0MjIuOTc4IDE3NlY4MEM0MjIuOTc4IDM1LjgxNzIgMzg3LjE2MSAwIDM0Mi45NzkgMEgzMTdDMzEwLjM3MyAwIDMwNSA1LjM3MjU4IDMwNSAxMlYzNloiIGZpbGw9IiNGRjk5MjIiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8xMTcxXzQ0MSI+CjxyZWN0IHdpZHRoPSI1MTIiIGhlaWdodD0iNTEyIiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo="},"displayName":"Code","typeVersion":2,"nodeCategories":[{"id":5,"name":"Development"},{"id":9,"name":"Core Nodes"}]},{"id":838,"icon":"fa:mouse-pointer","name":"n8n-nodes-base.manualTrigger","codex":{"data":{"resources":{"generic":[],"primaryDocumentation":[{"url":"https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.manualworkflowtrigger/"}]},"categories":["Core Nodes"],"nodeVersion":"1.0","codexVersion":"1.0"}},"group":"[\"trigger\"]","defaults":{"name":"When clicking ‘Execute workflow’","color":"#909298"},"iconData":{"icon":"mouse-pointer","type":"icon"},"displayName":"Manual Trigger","typeVersion":1,"nodeCategories":[{"id":9,"name":"Core Nodes"}]}],"categories":[{"id":32,"name":"Market Research"}],"image":[]}}