Example n8n workflow without AI

in #ai6 days ago

Screenshot 2025-07-03 at 11.56.59.png

People see n8n as an AI automation or "agent" tool, but like make, IFTTT and zapier, if you know what you want via basic logic, you do not need to include any AI at all.

Here is a recent example I built for a self-catering holidays site. We bulk generated video slideshows of all their properties and wanted to upload them all to YouTube.

This would not be fun to do manually, plus the task is ongoing, so a good candidate for automation.

While this is often called a "no code" tool, as you can see I did have to use code. There's likely another way of doing it, I just haven't figured out how. What I needed was a "does a playlist containing this text already exist, if so what is the ID" node which does not exist.

Instead I have to load all of the available playlists for the account and go through string matching each one.

var keyword = $('Google Drive Trigger').first().json.originalFilename.replace('.mp4','').split('_').reverse()[2].toLowerCase();
const result = {};
var success;


for (const item of $input.all()) {
  var title = item.json.snippet.title.toLowerCase();
  console.log('title: ' + title + ' Keyword: ' + keyword);
  if(title.includes(keyword)){
    success=true;
    console.log('\n\nmatch!\n\n');
    result['json']={
      'success': success,
      'playlist':$input.first().json.id
                   };
    
    return result;
  } else {success=false}
}

result['json']={success};
return result;

As I am self-hosting, I could actually create my own nodes, but I am conflicted about doing so as I am trying to teach other people how to use n8n in part, so custom stuff or shortcuts not generally available might be in conflict with that?

If the playlist does not already exist we create it, and another weird thing then happens which is we go back through and check again. This is because there is no "on error" feature as far as I can tell. Google does rate limit, especially when doing lots of operations like this, so it just avoids some of the failures if we ensure the playlist is there when we create it.

That HTTP request is actually downloading the binary file of the video. It doesn't seem like we can pass the Google Drive link to YouTube, even though they are supposedly the same company.

After uploading the video to YouTube, we pass the ID of the newly uploaded item to add it to the playlist we grabbed or created earlier.

Now if you are a coder it is not that this couldn't be done in C#/Java/JS/Python, or even that this is the most efficient way to do it, but for even for skilled programmers it is still great for figuring things out and prototyping - especially for visual folks.

Sort:  

I've looked at n8n a few times, I just never could get into it, I'd rather see code. I do have a container running it if I ever get around to messing with it.

My self-hosted version is installed with Coolify on a free Oracle virtual machine and runs really well. It does take some getting into but the fact you can kind of use Python and can fully use JS makes a difference for getting out of roadblocks when the nodes that exist are not quite what you want.

A lot of what I am doing with it is plumbing together APIs like that old Yahoo! tool if you remember it

Loading...
Loading...