Importance Validator for RSS Feeds in Make.com

Julius Forster shows how to build a Make.com automation that pulls articles from RSS feeds, scores them with ChatGPT (1-100 scale), and saves high-priority items (score 65+) to a Google Sheet. The workflow runs every 12 hours, filters out old articles, and stores the timestamp so it only processes new ones next time.
Chapters
Hi Sergio, so let me quickly show you the scenario I've made. Basically, we can just let it run, right? And if we go over to Google Sheets, you can see, yep, it updated the last RSS update. So in here we have a cell with the last RSS update. It gets the RSS articles from the RSS feeds you put in here, so you can put as many as you want in here if you want. Right? And then it goes into here and it puts all of the articles that it gets with the highest priority in here. Obviously made them bold, excellently. Um, so those are all the ones that have the highest priority, and you can even set up the priority you want there. And yeah, let me show you how I did that. So let's go into, into it. Yeah, here we go. So So what it basically does, uh, first up, obviously I've just showed you the Google Sheet. So I have a Google Sheet with 2 pages or 2 sheets, basically a spreadsheet with 2 sheets, how, how it's called. One I've called Highest Priority and one is Settings, right? Highest Priority has title, description, author, URL, and the image URL if they exist. Settings has the RSS feed and then I have an empty, an empty column just to have a bit of space in here. And then the last RSS update. And as you can see, that is exactly the time right now. It is 4:19 PM on December 20th. So it updated that correctly. That was obviously, it started 2 minutes ago. Now, um, that is first up how I set up the Google Sheet. So in the automation, what I basically do is I search Rose, so the first module which has the following scheduling settings: at regular intervals, every 720 minutes. That should be every 12 hours if my math is correct. And then I've added the start date. Obviously now I triggered it manually, but I've added the start date today. Uh, okay, that's today. I have to put it to tomorrow. Tomorrow at 12 PM. So midday, right? That way it runs at 12 PM and 12 AM every 12 hours. If you want to set up something else, feel free to do that. I would probably let it run once every day, so let's say at 12 PM, like midday, every day, because twice isn't needed here. Yeah, so let me actually quickly set that up that way. Every day at time. There we go. And we can remove the start date here, obviously. That was just so that the every 720 minutes works at, at the correct time, that it's not random throughout the day. Um, Or I mean every 12 hours, but at a random point at a random time. So next I have update a row. Oh no, I have to start with search rows first. So here we basically get the sheet. This is the example sheet. We get the sheet settings. So the spreadsheet example sheet, the sheet settings. Table contains headers. Yes, we have headers. Column range, I've just selected the first because we only have 3 columns. And that is it. We don't need any— anything else. So now it basically just gets this whole sheet, right? This one, this whole sheet. Yes. Um, what it does next, update a row. Oh, it updated it 3 times. Uh, yeah, um, let's actually change that. Let's do it this way, uh, and I'll take care of that in a second. So next we retrieve the RSS feed items. What we do here is the URL— oh, oh yeah, it, it makes much more sense this way. Oh, the other way didn't make any sense at all. Okay, so, uh, this is right now. Um, the URL is obviously from, from the settings sheet, um, column A, RSS feeds. So it basically gets all of those RSS feeds you put in here, and you can put as many as you want in here technically. Um, and then we obviously get that, and then the date from is past date last RSS update, and then this format. What that basically does, if you copy paste this like that, it gets from column C this date, and it parses it so that it understands what date this is. Um, because I've specifically chosen this format so that you could technically go in here in Google Sheets and change it if you want to be able to let the automation, the scenario, the next time it runs get more articles or less, right? So you could technically do that. Usually there isn't really a reason to do it, but it's nice to see when was the last time, um, and to be able to basically edit it. So that is basically what this does, and this is the format in there. You can totally change that to whatever format you desire. For me, it's year, month, day, hour, minute, right, uh, in this format with minus in between. Um, and then what I did here is maximum number of returned items is 10. Quickly, the date_from, by the way, that is just to get the articles that have been published after this date, right? So we want to make sure that it doesn't just get any of them that we already have. Let's say because it gets 10, 10 articles from each source, so from each RSS feed it gets the last 10 items, but then let's say in the last 24 hours they only publish 2. Then it would get 8 of them, or 8 of those 10 would be old ones that we already have that we don't need anymore. So what do we do is we use a date, um, in which we say we only want articles that have been published after this date. And, um, yeah, that is basically the last module which I— whoops, I'm sorry for that flash there. Um, that's basically the last one which updates that date. Right? But I'll get there, I'll get there in a second. Next one, what you do is you create a completion. So what it basically now does, you can see it found all 3 RSS feeds because I've inputted 3, I've input 3, and then for each of those RSS feeds it gets up to 10 items. Usually it's, it's a bit less because we have a date from which on, and I don't think all of them post like 10 per day. So it's 21 here, right? Right now, from 3, it got 21 different articles that match that date, that have been posted after that date. And what I did in here in ChatGPT is create a completion, GPT-4 or Mini, because we only want to make it check the importance of those articles. I've removed the maximum completion tokens because I don't want it to stop at any random point. Then as system, I've added a system message which says, which says, you have dedicated your life to accurately validate the importance of articles. The user— I always like to go like totally over the top with those because it actually gives better results, I feel like. The user will provide you with one article and you rank its importance on a scale of 1 to 100. Without any other output or comments. Only answer in this JSON format. And then we have the JSON format, curly bracket open, importance number between 1 and 100, curly bracket closed. Down here we add a second message from the user. This is now the input of the article, so the title and description. In this case I just added, yeah, title, description, and I got them from the RSS feed, from what we just got. Then down here, you— on the very bottom here, you want to activate Show Advanced Settings, and you want to change, change the response format from text to JSON object. Then you just save that. And now the nice part: you add a new row, Google Sheets, add a new row, and in between that you add a filter. So you just click on the line, uh, I've called it importance is greater than 64. And what we do is we go into the condition up here and go from the ChatGPT one, we open result and we click on importance. That is the actual JSON we just gave it in which it responded, right? Because we also activated, and that is one thing I forgot to say, I think we also activated Parse JSON. So once it loads, give it, give us a second. So under the JSON object, you Select parse JSON response, yes. And that's how you can have it in this nice format, right? So you set importance, and then here you go down and select greater than or equal to, and then your number. So I've set it to 65, right? Um, yeah, and that basically, as you can see, filtered out a lot of them. It only— of the 21, it only let through 9. What we do now is we add a row, and this basically now adds a row for all of the ones it let through. Here I select the same sheet, uh, the same spreadsheet. Then the sheet is Highest Priority, it contains headers, and then in A we have the title and B we have the description, and I map that to the actual RSS feed. In C we have the author, D is URL, and E is image URL. And you can see the same format here in Highest Priority: title, description, author URL, image URL. Now after we did that, and that's— this is what I've just changed— we add a module which is an array aggregator because we don't want— this is the last one which basically sets the last run, so in the settings in the sheet the last RSS update, it sets that to the current date so that it doesn't get the articles we just got in the next, the next time it runs, right? So what you do here is you add an array aggregator. As source module, you will take the actual first one, Google Sheets search row. Yes, the first one, because that is the first one that actually creates create several, several runs, so several operations, right? You leave that at custom and you want, yeah, basically nothing. You don't need any of those fields in here like that. That is enough. That just means we don't have all of those now. And in the Google Sheet here, you do the following: you select the sheet again, the spreadsheet again, Example Sheet. Sheet name is Settings again. Here you go into row number 2 for the, for the simple reason that in row number 2 we have the actual date because row number 1 has the heading. And here, table contains headers, yes. And then in C, last RSS update, you add the following: format date now. So it should format for format the current date in this format. And this, by accident— not by accident, by, uh, total— that's totally what I wanted, obviously, otherwise it wouldn't work. We used the exact same format that we used up here in the past date, right? You use the exact same format here so that it is able to write the current date in this format, in this user-friendly format, into the Google Sheet. And then when it retrieves that date up here in the RSS feed the next time, it can read it again by parsing it, parsing it, right? Uh, I hope that was kind of, um, okay to understand. I think I'm not too good at explaining, but I think it should be kind of understandable. So what we can do now, just to show you again, obviously the 3 random RSS feeds I've added here are— none of them have anything important, I think. I've just searched for the coolest RSS feeds or most popular RSS feeds or something like that on Google and just input the first 3. But we have a daily at 12 PM, right? So if I run it once now, you can see it gets the— yeah, there we go, the 3 the 3 RSS feeds, then it— now we have 11 articles because I have— I— so it's a lot less because I've updated that, right? So now it is, um, it is updated to the current date and time. This is 100% correct. It is, um, 4:30 PM, uh, 4:31. Yet now it's 4:32. Um, so it updated that, that is what the last one did. You can see it aggregated that nicely here so that this ran only once. And in here it now got 11 new articles. So it seems like they push out like a ton of new articles. And then it checked the importance. 6 of them were important, um, and we didn't define what importance is, so obviously, uh, it just guesses. Right? It just guesses what might be important. So that is important that you define what is important to you in this ChatGPT module. And then photo 6, it added new rows and it updated the time. And if we go in here, you can see, here we go, we have the new rows with the title. Oh, seems like NBC News has like the first and second chapter of something here. And here we have the description. So those RSS feeds I've added, they don't really have long descriptions for some reason, just like a preview. But usually you should have something much, much longer. You should have more content in there, right? Because you select the RSS feeds and you know you select good ones. And this just links to the— not to the actual article for some reason. It just gives the usual URL. So you will have to look into the actual output you get, right? Into, into those here what exactly you want to use here. And then if you want to do something else with those RSS feeds, with those articles, you want to rewrite them with ChatGPT or something like that, you would basically go here after the importance filter, you add your modules here, you add, for example, ChatGPT right here, you can rewrite it, and then you can add the rewritten one to the to the Google Sheet next. So everything you want to change about them, you want to rewrite, whatever, you add after this, this importance filter, right? I will also attach this JSON blueprint to the description and the forum post, so you, you can have it and you can use it. I hope this helps, and yeah, you have a great day. Goodbye.










