How to automate ANYTHING with n8n in 2026

Rory Ridgers shows how to build a complete automation workflow in n8n that turns YouTube videos into LinkedIn posts. The tutorial covers n8n's advantages over Zapier and Make, then walks through fetching a video transcript, using OpenAI to generate a post outline and image, and storing everything in Google Drive and Sheets.
Chapters
What's up guys, in this video I'm gonna be teaching you how and why you should master NAN in order to automate pretty much anything you like in 2026. First off, we're gonna run through what actually is NAN and why should you use it over other automation platforms, and then we're gonna go over some NAN basics, and then we're gonna build a simple workflow, and I'm gonna build it live so you can follow along with me. After watching the video, you should know why you should be using NAN, all of the basics of NAN, and how to build your very first system. So without further ado, let's just jump straight into the video. So like I said, we're going to begin with why to choose NAN, and this specifically is going to be why to choose NAN over other platforms, things like Zapier, uh, Make.com, Relevance AI, things like that. Why should you use NAN over this? Because if you're watching this video, you probably understand that AI and automation is something that's really, really going to take off, and you will benefit a lot from learning. But then you're probably now deciding which platform should I use. You've probably heard about NAN, you've probably heard about these other platforms, you know, which is better. So I'm going to break down why, in my opinion and kind of objectively, NAN is the best option for all of this. So I've split it up into 3 main things, and these, these aren't all the benefits of NAN. Like I said, these are just the things that are better than the other platforms, and for me, the main reasons why you would pick NAN over the other platform. So these aren't all the benefits, but just the things that stand out among the rest. So the first one is self-hosting, the second one is complexity potential, and then the third one is integrations. And what we're going to do is we're going to break down each of these and we're going to go into what that actually means and why that actually matters for you. So if we start with self-hosting, what does this actually mean? So NAN is open source, which means unlike other automation platforms and software in general, the code that makes up the platform of NAN is completely free to view and download. So the code that actually makes the platform of NAN It's completely free. You can go view it, you can download it, you can make a copy for yourself, you can edit it as much as you like. If you literally just go over to GitHub and just type up NAN, then the actual platform code for NAN, like the source code for NAN, will come up and you can view it and you can copy it. That means unlike with usual software where you pay them to host the platform on their servers, as it's open source, you can download the code and run it straight off your computer. So with any other, uh, kind of app or platform that you'd use that you can't self-host, you're basically just paying that software company to host it on their servers and it run off their servers. Whereas when you have something that's open source, you can run it straight off of your device. So I've made a little diagram here to show you, um, most software— let's just take HubSpot for example. You have your device, you've got your laptop here using HubSpot, and it's running off their servers. So when you make a request, it sends it to the server and then sends it back to HubSpot, which then goes back to your device. So it's kind of like a flow around like this. So you communicate with HubSpot, which is running off of this server, which is talks back, which you can talk back and forth with, and then it displays the results through your device. But then with self-hosting, we simply just cut out that server. So you can think of it as literally just your device and then the software. So it talks back and forth with the software. There's no external servers or anything like that. Your device is essentially doing the job of the server by hosting it and keeping it running. That is what we mean when we say self-hosting. So why is this actually good? Why does this matter? So as NAN is self-hosted, it means you don't have to pay any kind of monthly subscription for usage to NAN. So NAN is in the company NAN. You don't actually have to pay them any type of monthly subscription or anything like that in order to use the platform. With this being said though, you will still need to pay a monthly subscription to a hosting platform that will host NAN for you. This is because if it runs locally on your device, you'll run into lots of issues with sending and receiving requests from other servers, i.e. When I say other servers, I mean things like Gmail, HubSpot, Google Calendar, anything like that, any other kind of server that you would be communicating with. Despite this, paying a server to host your NAN instance is still cheaper than paying NAN directly. Also, in doing this, you get unlimited workflows and unlimited execution, so you don't have to worry at all about usage. So basically what I mean by all of this is you can run it locally on your device, let's say on your laptop, and you would literally pay no monthly subscription at all. It can just be running and you can use the platform on your device. But the problem with is that when you run it, you'll see that it runs on what's called a localhost port. And basically, when you're sending and receiving requests, let's say you're trying to send something to Gmail, you're trying to like send an email through Gmail, you have to send a request over to Gmail in order to get them to send that email for you. When you send that request, Gmail will kind of say, oh, that's coming from a localhost server, that seems a little bit dodgy, I'm probably just going to block that request. And that's what will happen a lot of the time, it will block requests from local, because when you send out a request, it will have a localhost URL. And yeah, a lot of the time that'll get blocked, which just isn't ideal. Um, there are sort of ways around it, things you could do, but it's way easier to just pay for a hosting platform, something like Hostinger, which is what I use. Um, and they will just host it for you. And the plans start from as cheap as something like $6.99 a month, um, which is obviously ridiculously cheap. And for that, you'll get— this is the key thing— you get unlimited executions and unlimited workflows. There's no limits or anything because Hostinger don't care because they're not going to make any money depending on how much you use it. Like with NAN, if you're using it through their servers, the more you actually use the platform, um, the more money it's costing them, etc. So they charge you more for usage. But with Hostinger, it doesn't make a difference. They don't care. So they just charge you basically to put it up there, to host it. And then because it's now hosted on their servers, you can just have unlimited usage, um, unlimited executions, everything like that. So to recap, it's cheaper, you get unlimited workflows and unlimited execution. So that is why you should self-host. And that is a massive benefit of NAN and something you can't do with other automation platforms. And then we're gonna look into the complexity potential. So complexity potential, what does this actually mean? In simple terms, all this means NAN gives you access to all the tools and the resources to make very complex system. The reason it's marked as complexity potential is because simple systems can still be made very, very easily inside of NAN, but the platform has a high ceiling and almost no limit as to the complexity of the systems that you can make. So basically what I'm saying is that you can still make very, very simple systems inside of NAN, and still in a way it can be beginner-friendly. And if you're a complete beginner, you can still by all means get started with it, but the potential is just so vast. So like the other automation platforms, you might find that they're a little bit easier to get started with if you're a beginner, but there's less potential, right? But with NAN, there's just way more potential. There's almost no ceiling to the, um, things that you can make in there. And why is this good for you? Why does this matter? This is great because unlike other platforms, you are able to use NAN if you're a complete beginner or a complete master. The main benefit of this is that you can waste time learning other platforms that have a lower complexity limit, meaning when it comes to you wanting to make more complex systems down the line, you'll find you'll struggle with other platforms. So when you're using other platforms, like I just said, it might be a little bit easier to get started with, but then you'll find that the platform has a lower complexity limit. So when you're trying to make these more complex systems um, you'll find that you can't, and it will kind of seem like you've just wasted all that time learning that platform. Now you're trying to service clients or just build systems that you can't even really build on that platform anymore. However, with N8N, you can start from a complete beginner, you can work all the way up to be an expert, and you'll find that you will still have all of the tools inside of N8N, all of the tools and all of the resources to be able to fulfill what you're trying to do. So this is a really great point that, that you can start as a complete beginner with N8N. I, to be honest, didn't start as a complete beginner. I was using other platforms like Relevance AI and Make. So when I came into N8N again, I already knew a little bit about AI and automation, but I was by no means a master or anything. But that being said, you can start as a complete beginner and you can build basic automations and basic systems. And then, like, unlike the other platforms, when you move up and you start to build these more complex systems, you'll find that you'll still be able to do it inside of NAN because that ceiling is so much higher. You don't have to move to another platform because you're building more complex systems. You just do it all still inside of NAN. So all of that time you spent learning isn't wasted at all because you don't now have to switch platforms. Like, if you're using something like Relevance AI, you'll find that if you're trying to build really, really complex systems, you now really can't because you'd like— then Relevance AI doesn't have the capabilities for that or doesn't do it as well. So then if you spent all of that time learning Relevance AI, now you've got a client who wants you to build a really complex system, you can't. So what do you do? But with N8N, like I said, you can start as a complete beginner knowing nothing build simple systems, you can work all the way up to super complex systems and you'll find that everything you need will still be inside of NAM. And then the integration. So what do I mean by this? NAM by default has access to lots of different tools that you can integrate with. And when we're talking about tools, we mean any external app. So like Gmail, HubSpot, Google Calendar, Google Drive, Calendly, literally anything, any external app or software is what we mean when we talk about integrations or tools. Also, with the addition of the platform being self-hosted, you can install what's called community nodes. Which are basically nodes created by the community that allow you to integrate with apps that NAN doesn't natively let you integrate with. So for example, NAN I think has about 500 or 600 integrations last time I checked, something like that. So there's just about 500 or 600 apps if you was to go on to NAN today that you'll be able to find, like Gmail, HubSpot, Google Calendar, etc., etc. But there's going to be times where there's going to be apps that you want to use that when you type them into NAN they don't come up, they're not natively inside of NAN. So because you're self-hosting NAN, which you don't have to do of course, but majority of people do, and I'd like massively recommend doing that— if you're self-hosting it, you can do something called downloading community nodes, which is basically just people from the NAN community, they make, uh, NAN nodes that connect to software that aren't natively inside of NAN. So essentially it's just like a marketplace for add-ons to NAN. So you can just add on these extra things if you've got an app that you want to integrate with that you found isn't on NAN, you can go look and see if there's a community node, and you can just download it and then use it in the same way as if it was natively there. So that's a really, really nice thing. And why is this more good? Why is more integrations good? Simply, the more integration, the less leads you have to rely on external platforms. So it just makes sense, right? The more integrations you have, you can do it all inside of NAN. You don't have to be worrying about using other platforms to do other stuff and integrate with things. You can just do it all inside of NAN. Feel like this is pretty self-explanatory stuff that is just going to be easier, right? By the way guys, just to interrupt the video, if you're serious about learning NAN and really want to master it and master how to actually implement it into businesses as well, not just learning the platform, and my waitlist for my new community where you can learn exactly how to do this is out now. And the community is dropping really, really soon, but if you sign up for the waitlist before it drops, you'll get access to an early bird discount and you can be one of the first people in there. And trust me, the community will never be as cheap as it will be with the early bird discount ever again. So if you're thinking about joining it, I'd recommend signing up for the waitlist so you can get it with the early bird discount and get notified as soon as it drops. Anyway, back to the video. Okay, so now we're actually inside of N8N, and I'm going to walk you through first the basics, um, depending on your skill level. You might have used N8N before, this might be the first time you've ever even seen the canvas, so I'm just going to walk you through some of the basics and then we're going to go on to actually build the first system, and you can follow along. I'm going to build it live so you can build it with me. And it's the best way to learn, by the way, is, um, not just sitting here watching YouTube videos, actually getting stuck in and watching the YouTube videos and then going and making the thing in the YouTube video. That's by far the best way to learn. So to begin with, when we have a blank canvas, the first thing we're going to need to do is we're going to need to add a trigger. So if we go to Add Node, then you can see here these are all the triggers, and every single workflow or system you build will have to have a trigger of some sort. And these triggers may look different, but every single time it's going to have a trigger. Just as a rule of thumb, every single system— this is something good to remember— is always going to have a trigger, a process, and an outcome. So just 3 simple steps. It's always going to have something that triggers it, something that happens in the middle, some kind of outcome. That is the very, very basic structure of a workflow. So if we have a look at the trigger inside of here, we can just break down each of them one by one. So Trigger Manually, this is going to be like inside of NAN, you just click a button and it just triggers the workflow. This is something you use pretty much just for like testing and demoing and things like that. You won't actually use this in production for a client, but having said that, I use it all the time for my YouTube videos and for testing. I use it all the time. So Trigger Manually, you just put it down like this and it just triggers. If you execute, it just triggers. Um, you just click the button and that's it. And then we have On App Events. So this is going to be— these are all the apps inside of NAN and this is just going to be when something happens inside of an app. So for example, if we go to Gmail, you could have the system trigger on a new message received in Gmail. So when you get a new email through, it can trigger the system. Or you could say, for example, HubSpot, and you could do when a new company is created in HubSpot, anything like that. Or just to give you one more example, uh, let's say Calendar, uh, new event created in Google Calendar, a new event canceled in Google Calendar. These are on-app event triggers, so it's just something that happens in an app. And then on a schedule, very, very simple, it's just you set the schedule. So it could be every minute, every day, every hour, every Tuesday, every other Wednesday, anything like that. You just set some type of schedule trigger and then it will trigger on that schedule every single time. And then on webhook call, and now a webhook is essentially something that you can put down and it's kind of like a lighthouse that other servers can see and send requests to. That's essentially what it means. It's sort of like simple terms. It's just something you can put down and then other softwares and other servers can connect to it via a webhook URL and then they can send requests to it. So it's kind of similar to the onAppEvent in a way, but this is used for more custom stuff. I wouldn't worry about this too much. I use it all the time, but if you're like complete beginner, I wouldn't worry about it too much. And then we have onFormSubmission, and this is going to be any, any will create a form for you and you can just put in all the details you want in there. So all the fields, it could be like a, a name, an email address, a phone number, for example. Then NAM will actually generate that form for you and give you a link that you can share to people or you can just use for yourself. Um, and then as soon as that form is filled out and they hit submit or whatever the button is, then it will trigger the workflow and you'll get the information from the form. So it's just a form basically, um, and you have like full custom control over it. You can put whatever you want in there. And then when executed by another workflow. This is, so this is just inside of N8N. If you have a system that when, for example, when one workflow ends, it has a node that triggers another workflow, and then you just put down when executed by another workflow in here. And then you can just, when this workflow finishes, you can just have it execute another workflow. So that's all that trigger is. And then on chat message, this is going to be kind of similar to the form. N8N will generate you sort of a little chat window that you can either use inside of the canvas here. Or you'll get a URL that you can use to share around or just use in a new tab. This is usually going to be used for things like conversational AI agents, something like a customer support chatbot, for example. So it just triggers the workflow every time a new message is sent back and forth, but it does it in kind of a conversational style. So that makes more sense when you actually come to look at it. So, but basically it's just, you would usually have it where on chat message received is the trigger, then you have an AI agent afterwards, and it just works as like a normal chat window as if you're talking through ChatGPT where you can talk back and forth. The output from the AI agent will be displayed in there and then you can send a message again. It will go through to the AI agent and it will just go around like a regular conversation. And then there are a few others, but these are the only ones that I would really worry about, uh, especially if you're just a beginner. So what we're gonna do is we're gonna start off with a trigger here and the actual system that we're gonna be building is going to be a content repurposing system. So we're gonna take it, we're gonna do my YouTube channel, but we're going to do when a video is posted from a new YouTube channel, but we're going to do, um, on schedule. So we're going to do it either every day or a couple times a week. It's going to take the videos from a specific channel, it's going to look at them, and then we're going to use AI to turn that into a LinkedIn post with a title, a description, an image, and then some hashtags as well. So pretty simple system, but it'll teach you a lot of the fundamentals. So for this, the trigger is going to be on a schedule. And I would say we do this, I'd probably post around 2 to 3 times a week. So I would make, I would say it makes the most sense to do it every 2 days. And then we can trigger an hour. So we'll just do midnight. It doesn't really make too much of a difference in this case. We could also trigger a specific minute of the day as well. Um, again, we're not going to do that, which you can do every 2 days at midnight. This system will now trigger. Okay. And then after that, we need to do a YouTube node. So this here is going to be the process part of it. So we've done the trigger. Now we need to do the actual process part of it. So the first step is going to be actually getting those YouTube videos. So if we go to YouTube, and then for this you can see here when we click on an app— so I've typed in YouTube, clicked on the app— now we get all of the actions inside of this app. So it's just the different things we can do inside of the app, and it's usually laid out nicely like this, like channel actions, uh, playlist actions, playlist item actions, video actions. Uh, video category actions, as you can see. So we want to do video actions, we want to do get many videos, and then this is how it's going to look inside of your node. And now the first thing is going to be credentials, and I'm not going to go too deeply into credentials. I will do another video on this if you want me to do a video on this, but essentially a lot of the time with credentials, it's just going to be the case of putting in your API key. And if you don't know what your API key is, the simplest way to think about it, it's just like a secret key. For you. So let's say you're using this software or this app and you want to connect it up to NAN. NAN will say, what's your API key from this software? You can go in there and grab your unique key, so it's tied to your account. It's just a string of numbers and letters. You can just copy that, put it into NAN, and then they'll be connected. It's usually as simple as that, but for certain things like YouTube, sometimes it can be a little bit more complex. I will put a video in the description on how to set up Google credentials though, because YouTube of course, there's a Google platform, it's owned by Google, so it works the same way as linking up things like Gmail, Calendar, Drive, Google Sheets, which are really, really important apps to link up, and you'll have to be using them all the time. I know I do. So it is something important to actually learn because it's a little bit different to link up your Google credentials. So I'll tag a video in the description on how to link up Google credentials, which include YouTube. It might not be a video from me, by the way, but I just want you to have some kind of video on how to set up these Google credentials because it is important. But I don't want to get too much into it in this video. Anyway, YouTube account set up. Now in here we have our resource and our operation, and this is kind of like the action list I just showed you. But first we have the resource, which is just what we're actually doing. So what part of that platform are we interacting with? And in this case it's the videos. And the operation is just what are we doing with that resource. We're getting many, and you can see these are some of the actions. So it could be delete, get, rate, update, anything like that. But we are getting many videos. And then there's a couple specific options to this node. We can either return all— so if we toggle this, it will return all videos, um, but that's a lot of videos, so we're not going to do that. Or we can limit it to 25, which is more sensible. So you can put in whatever number you hear. We're going to leave that just for a second. Then down here we have things like filters and options. So we're actually going to do some of these. If we click on this, it will open up a dropdown And these are just more things we can use to filter and get the specific videos that we want. So channel ID, published after, published before, the query, the region code, uh, the video type, all of this kind of stuff. For this, we're going to do channel ID because we're going to be getting videos just from my channel. So if we do channel ID, then this here is my channel ID. So now it's going to be getting videos from my channel. So if I just set this to 1, execute step, and then it will just get one of my videos. So it was This is— so this AI sales agent can automate 70% of your sales processes. Cool. So you can see this is the information it gives us. So fairly basic information, but it's just kind of like the basic details on the video. Um, but the initial problem with this is that if we want this to be something that's running all the time and getting my recent YouTube videos and converting them into LinkedIn posts, this isn't my most recent YouTube video. This is just my most viewed video, and it's also a YouTube Short as well. You can see it was published on the 12th of April. So definitely not my most recent YouTube video. So what we can do now here is we can search for ways to get my most recent YouTube video. So if we look in options, you can see there isn't really anything here. We could do published after or published before, but then the issue with that is that the system isn't really that automated because we'd have to come in and we'd have to put the dates in every time. You could do that where you could automate the dates being put in, but the easiest way to do it is if you just come to options and and then go to order. And then right now it's on relevance. If we just flick that to date, now what it's going to do, it's returning one, but it'll just return the most recent one, which is— yeah, Sora 2 in NAN is insane, full setup guide. That's my most recent YouTube video. So now, perfect, we have this information on my most recent YouTube video. Now what we need to do, we need to get the transcription of this in order to get the content and then turn that into a LinkedIn post. So The way we're going to do that is going to be using a platform called Apify. And if you don't know what Apify is— this, by the way, is a community node which I mentioned earlier. You can see with that little tick in the, whatever you call that, the circle, um, that just means it's community node. So if you was to type in Apify, instead of saying installed here, it would just say install node. It's just an orange button, you just click install node, click it, and then it just takes a second and then installs it. It's really, really simple, it's all you have to do. But yeah, by the way, if you don't know what Apify is, it's basically just an online marketplace for scraping APIs. Um, so basically just tools that you can use to scrape anything, and you can use them via something like NAN. Um, just to give you an example, things like Google Maps scrapers, website content crawlers, TikTok scraper, Instagram scraper, tweet scraper, Facebook post scraper. Um, but yeah, there's thousands on here if you want to scrape anything. Um, the first place I always look is on Apify because it's really easy to use, pretty affordable, and there's just so many. Yeah, you can see there's 7,000 pre-built actors, and these are all made by the community as well, which is pretty nice. But we are going to be using this one here, so the YouTube Transcript Scraper, and this will just do exactly what it says. It will take a YouTube URL and it will just give us back the transcript. And a couple things to look around for here if this is your first time using Apify. First one is going to be the cost. So this is actually fairly expensive for an Apify scraper. It's $7 per 1,000 results. But the reason I'm still using it is because we're only going to be scraping one video at a time. Um, so $7 per 1,000 results. We're only going to be getting 1 result, which is what, uh, $0.007 or something. I know, I don't know the maths from my head, but you get what I mean, it's pretty cheap. So yeah, that's something you've got to look out for. It's either going to be priced as in results, so like X amount per 1,000 results, or it could be a monthly subscription. So some of them are just like $30 a month to use the scraper, or the actor they call them. And then here we have just the inputs for this, uh, actor. So for this, it's really simple. It's literally just a video URL. So this is the only input, it's just a video URL. And you can test it out inside of Apify. If I was to hit start, it would actually start running this. And we'll do this actually so I can show you. So the log, this is basically what— just what's going on in the background. You don't have to worry too much about that. If we go to output, it should give us the actual output here. So I don't even know what video it just scraped, but it scraped a video. And this is what it gives us. So this is a full transcript of that video. So I just do that with all my actors I'm going to use just to make sure it's working and working how you like. But now we need to link this up to NAN. So if we first go to run an actor, and then I have my Apify account linked up. And this one is literally just an API key, like I said before. So just to give you an example, actually, just to show you, if you wanted to link up your Apify account, you just go to settings. And then you can go to APIs and Integrations. You get this API key here, just copy it and put it into NAN. That's all you have to do. And then the resource is actor, the operation is run an actor, and then for the agent source— this is just basically how you're telling NAN which actor you want to use— I would just go to recently used actors because I just used that one, so it's going to be at the top of the list. So if we open the list, yeah, you can see it's at the top of the list. Perfect. And now we have our input JSON, and then we also have timeout memory, and build tag. I don't worry about any of them unless you're getting specific and technical. If you're just doing something like this, don't even worry about them. All you're going to be worrying about is just picking the correct actor and then the input JSON. And then what is the input JSON, I hear you ask? Well, to find that, all you have to do is come back over to Apify, and then here it says manual. You just want to switch this to JSON, and then you get the input JSON here, and you get whatever you put in manual. This is quite nice actually. I usually put an example. So here you can see there's an example URL, um, in the manual. When you switch it to JSON, it will already have the example in there, so you know how it's actually meant to look. So if we just copy that, come back over to NAN, and then just paste that in. And now, perfect. But of course, we don't need this example. We want the data from the step before. So we want to get this video, and we want to scrape that. So the way we do that is we have all of these variables that we can use. And you'll see here, um, we may not see, but I'll tell you that there's no video URL. There's some thumbnail URLs, but that's not what we want. We want the actual video URL, um, which is a little annoying, but it's a very simple fix. All you have to do is, if you just know how the YouTube video URLs look, if we look at one here, it's just the exact same here up to watch, then question mark v equals, and then it's just a video ID. So all we need is the video ID. So if we just grab this quickly Come back over and paste that in. Now we have this little bit missing here, which is the video ID, but you can see video update— video ID is up here. So if we just grab that, paste that in, and then this is how it actually looks. So perfect. Now we can just hit execute step and then this will run through. But the way it works with actors on Apify— well, how it works with talking to actors on Apify through NAN is what you do is you first run the actor and you get confirmation that it's just started running successfully. And then what you do is you get dataset items. So you do another node after to actually get the data from that run. So you can see this is finished running, but we don't actually get any data. We just say the status is succeeded, so it's finished running, and then we just get all of this data, which isn't what we actually want. So what we do is we go again, Apify, and then this time we do get dataset items, and all we need to do is put in the dataset ID. So if you want to find that, You can scroll through here, or you can just type into the search bar dataset, and you can see we get this dataset ID. And all we do is we drag that in, and then if I just hit execute, then now I get the actual data. So this is the transcript. Okay, now it's on to the fun bit, actually generating the different parts of the LinkedIn post. So first thing we're going to do is we're going to generate, uh, just an outline for the LinkedIn post. So we're going to get an LLM step to just give us an outline for the LinkedIn post, what it's going to be about, how it's going to kind of look, um, just to consolidate all of that, that big long transcript. We basically just wanted to output a summary of what's actually important, what we can add into a LinkedIn post. So if we go again to Add and then go to AI and then go to OpenAI and then Message a Model, and here again you have to link up your OpenAI account with just an API key. Resource is going to be text, operation is Message a Model, and then the model, we're going to pick a model. And I want to get too hung up over which model you pick. I usually just go 4.1 mini because it's the best performance for the price. Incredibly cheap. If you put like $10 into your OpenAI account, you probably won't even notice any money coming out if you're just using it for just playing around in N8N, if you're using 4.1 mini. So incredibly cheap and very, very good. And in here we have a prompt. So this is just going to be the instructions for what we're telling this LLM step to do. But we have two types of prompts, as you can see. We have user and then we also have system. We also have assistant, but don't really worry about it. The only ones you're going to worry about is user and system. So if we add a message here and we change this one to system, now we have a user one here and a system one here. The difference between the two, if you don't know the difference, the best way to think about it is the user one is going to be sort of the variable prompt. So in this case, the variable prompt is going to be the transcript because it's going to be different every time we run this through because it's going to be getting a different video. So of course the transcript is going to be different. So the user prompt is just going to be that transcript in this case because it changes every time. And then the system prompt is kind of like its long-term instructions, so just what it is, who it does, what it does with its user prompt, which in this case is going to be a transcript. And it doesn't really change unless of course like it's not performing how you want it to and you want to tweak it and things like that, then of course you change it. But I'm just talking about like every run when this is running automatically, system prompt doesn't change. It's like predefined instructions. So we're going to quickly add in a system prompt. We can keep it pretty simple for this. Okay, so for the system prompt, just kept it nice and simple. I said, you will receive a transcript from a YouTube video. You are a part of a system that would generate a LinkedIn post based on the YouTube video transcript. Go through the transcript and create a summary for an outline of a LinkedIn post based on the video. So really, really simple. We can come in, we can change this later, but just to show you, I've just done a simple one. Okay, then I've just dragged in the data like this, as you can see, and this is how it looks to our LLM step. So it's got the transcript now, it's got the system prompt. If we hit execute step, one of the things we need to do though with this data, which is pretty cool, um, that you can do this to variables. So we need to do something called stringify this. Basically what it does is it turns it from an object into a JSON string. So essentially what this does is it just makes it way easier for the LLM to process, and sometimes it just won't be able to process an object. So if we quickly copy this and then delete this, you can see what I mean by this. So right now it's an array. When you run this through— I'll run this through to get the error to show you— it says bad request, please check your parameters. Missing required parameter, and then it tells me the missing required parameter. If you don't know what this means, basically this will just usually happen if you're giving an array to an LLM step. So to combat this and get over it, what you do is you just stringify this. So you can say, now that I've added another variable in, this just changes to object, object, object. If that ever happens, it's bad. It means you— the variable you're using is no good. So you can see here, what you do is you just add json.stringify at the beginning and then put this in brackets. So we can do the exact same thing to this so you can show you in real time. If we add brackets and then we add JSON.stringify to the beginning, and then now it will stringify it. So instead of the objects, it comes through as a JSON body. So now if I execute step, this will actually run through and give us an output. But yeah, that's a really handy thing if you're getting errors like that, you don't really know why, like you don't know what you're doing wrong, what the variable that you've put in, like what's wrong with it, is an object, is it an array, literally just stringify it, add JSON.stringify at the beginning and it will solve all your problems, I promise. Okay, so we've got this output, let's switch it to table view so we can actually see it. So this is what it's given us, so a nice output. It said LinkedIn post outline integrating Sora2 video gen API of NaN. So one, intro hook, exciting news, the new Sora2 video generation API is here. Videos created with SoraTool already trending all over social media platforms like Instagram, TikTok. Once allowed to integrate this powerful tool into automation workflows. Cool. And then 2, what's covered, step-by-step demo on connecting SoraTool. Uh, so it's just giving us like what's covered in the video. Cool. And then key technical highlights, setting up API keys, yada yada. Cool. Uh, practical insights. So pricing details I gave, the video length options, and then a call to action and then a closing. So Perfect. That's a pretty good output. I'm happy with that. What I'm going to do here, because we're going to be having multiple LLM steps, what I like to do is I like to just name them. So this one is going to be a planner agent. Let's say, let's call that planner agent. And you can see now it's just a little bit easier to differentiate them. Okay, cool. So now we've got the planner and now we want to generate a title and a description. So we go to AI and OpenAI and then message a model again. Let's just do the exact same thing. Let's do 4.1 mini. So 4.1 mini, and then user prompt. We're now going to give it the outline from the step before. So this LLM step before, the plan, we're going to give it that rather than the entire transcript. It just makes it easier. So if we go plan, then I'm going to write out a system prompt and show you. Okay, so I just said you will be given a plan for a LinkedIn post. The plan is a summary of a video transcript that I want to repurpose into a LinkedIn post. Please take the plan/summary that I've given you and generate a title for a LinkedIn post. Keep it short and— that's meant to say enticing, I was using text-to-speech, so that's why it looks a little bit weird. Completely butchered the spelling as well. Anyway, keep it short and enticing, uh, to ensure you stop people scrolling. So cool, let's hit execute step. It should just output to us a title. So, unlock automated video creation, integrate Sora2 API with NAN in minutes. Okay, cool. That's pretty good, I'd say. Of course you can fine-tune these, like none of this is set in stone. I'm just more showing you like the functionality side and how it all works. But if you want to fine-tune it, go for it. We're just going to call this title just so we know. And then now we're actually just going to copy and paste this, and this is going to do the description. So it's going to be fairly similar, um, so that's why we're copying and pasting. We've got the same input plan, and the system prompt is going to be kind of similar as well. Keep this all the same. And we're just going to say generate a description for a LinkedIn post. So pretty much just description, and then we can change the style as well. We'll say, um, keep it engaging and human sounding, almost as if you are telling a story. Cool. And then also we're going to give it the title as well, just so it knows what the title is. So of course it knows what post is going to be about, what to do for the description. Um, okay, so if we hit execute step, now it should give us a description for our LinkedIn post. Imagine automating your entire video creation process in just minutes. No hassle, no heavy lifting. This is exactly what happened when I integrated the Sora2 API. And, and if you ever wish for a way to effortlessly generate high-quality videos without spending hours editing, this integration could be a game changer. The best part, setting it up is surprisingly simple. And if you could together. I like seamless workflow ideas, opening up possibilities. Marketers and business go, curious how it works. Dive into how you can integrate Sora to API of any— and start automating your video creation journey in minutes. Okay, perfect. That seems pretty good to me. Um, obviously this would be like a LinkedIn post to, I guess, like promote my YouTube video, you know, like when the YouTube video is posted, then post a LinkedIn post to drive traffic to the video. That's what we're kind of going for here. So we'll call this one description Cool. Okay, then now we're also going to do hashtags quickly, and I won't sweat this one too much, but I guess it's just nice to have. So we're going to copy it and we're going to say the plan and then also the description in here as well. So we can take the output from the last step, give it the description, and this time we're just going to say, uh, generate 5 hash tags. So generate 5 hashtags. Um, doesn't really need much style guide or anything. It should be pretty simple, uh, pretty simple task. Okay, yeah, cool. Video automation, content creation, marketing tech, Sora2 API, NAN integration. Perfect. Now we're going to generate an image as well. So we're actually going to move these so you can see it a little better because it's getting a little bit long down here. So we're going to move these down, um, and maybe we'll move these down as well like this. Cool. And then let's rename this as well quickly. Let's just call this hash tags. Perfect. And then now we're going to generate an image. So we're going to go to AI again, and then we're going to go to OpenAI, and then we're going to go to generate an image. And this is probably like the best, easiest model to integrate, like image generation model, either this or the Gemini one. But yeah, if you've already got your OpenAI credentials set up, you can literally just do instead of message a model, it can be message an image generation model, and you can just use GPT image one, which is like their best, their newest image generation model. So now in here we're just going to add a prompt. So what we're going to do is we're just going to give it the title and description and get it to generate an image. So I said I want you to generate an image for a LinkedIn post based on the title and description of this post. So if we add the title in, uh, cool. And then if we add the description as well, um, like that. Perfect. And then execute. And this one does take a second, actually does take like a minute or two to generate the image. Um, so just let it run. We'll come back when it's done. Okay, so it's just finished. This is what it gave us. It gives it to us in binary, which, you don't know what binary is, it's basically just like a bunch of ones and zeros that represent images. Well, can represent anything, but a lot of the time when you see it, it'll be representing images. So what we can do, we can view it to get like an idea of how it looks. So yeah, looks pretty cool. Again, like the other ones, you can fine-tune this, uh, so it can be however you like. But I think that's a pretty good start. So one more thing we to do now, if we want to get an actual link for this so we can view it, what we do, it's really, really simple. You can just go to Google Drive and then upload a file. So upload file, and then the input data field name is data, as you can see. So we're just— the binary that's going in is data, so we just name it data. And then the file name, we can just say LinkedIn post, and then I'll call it demo. And then you can choose a folder where it's going to save. I'm just going to save it to my drive anywhere. And then hit execute step. And then the reason we do this, we upload it to Google Drive so we can get an actual link. So you can see here we get a web view link, we copy this, and then you can see it now opens in my Google Drive and I, uh, can see the image and I've got a link for it. Cool. So now what we're going to do is I've made a Google Sheet and we're going to put all of this information simply into a Google Sheet. So the way we do that is if we just, after all of this, add a Google Google Sheets node and then go to append row in a sheet. And again, we've got to connect up our Google Sheets account, and then we just choose the document. For me, it's called LinkedIn Posts. And then we choose the sheet, which is just Sheet Number 1, and then it will show all of the columns that we have here. So we've got title, description, hashtags, and image, as you can see. So title, description, hashtags, image. If we come back over now, all we do is you just drag in the information the steps before. So title, it's going to be from title, so we can just drag that in. Description, same thing. Hashtags, same thing. And then image is going to be the same thing. And then if we hit exclude step, and then if we run this through from the top, just so you can get a full thing of how this actually looks when it's running and how this would be looking if you had this running on a schedule, we're going to run it from the top. It's going to do the whole thing again. And it's all going to go into our Google Sheet. Okay, cool. So it's all run through. You can see everything is green. It's all run through. And then this is what we get in our Google Sheet. So unlock effortless AI video creation, integrate Sora2 API with NAN today, and image creation. Uh, then imagine creating stunning AI-powered videos without the usual hassle. And it's given us this full description here. Perfect. And then the hashtags here. And then the image. We can have a look at the image. Uh, this is the image it has given us. So again, this can all be refined, like I said, but it just shows you how if you have this system set up where it's doing all of this, all it takes to refine it is just adjusting the prompts in there, which I knocked out in like 2 minutes. Um, but of course you can go into more detail, you can refine them. But if you have this technical setup all down, then you're good to go. You can just refine the prompts.
More from Rory

Dynamic Workflows are crazy. This is how to actually use them (beginner's guide)










