EVERY SPOKEN WORD
50 min read · 9,776 words- 0:00 – 1:55
Intro
- PHPawel Huryn
In my opinion, n8n is the most powerful workflow automation tool
- AGAakash Gupta
Pawel Huryn has been knee-deep in n8n more than almost anyone else in the world. He has tried everything. He's made all the mistakes. He's learned all the expert workflows and tips and tricks. So in today's episode, he's gonna teach you everything you need to know to master n8n
- PHPawel Huryn
You can learn a lot of things that matter without coding and without going too much into tech
- AGAakash Gupta
What are some of the use cases? Like, I understand the word workflow, I understand the agent, but, like, what is this practically gonna do for me?
- PHPawel Huryn
That's all we need. Starting from simple business workflow automations, through chatbots, automatic competitor monitoring, multi-agent research systems, sky's the limit.
- AGAakash Gupta
What are the other n8n skills people need to know?
- PHPawel Huryn
First best practice is to set up a dedicated workflow. Another good practice is this max iterations. Another one, setting this retry on fail. If we now try to execute this step, it should call Perplexity six times for each of the rows, and we should get six search results.
- AGAakash Gupta
Would you need a pro version of n8n and Perplexity to do this?
- PHPawel Huryn
I'm using a free version of n8n.
- AGAakash Gupta
Holy guacamole. If you get any value out of this podcast, do me a huge favor and follow on Spotify and Apple Podcasts and subscribe on YouTube. It helps the show tremendously. And if you become an annual subscriber to my newsletter, you get access to nine incredible AI products for an entire year. This is an over $3,000 value across tools like Mobbin, Linear, Descript, Magic Patterns, Reforge Build, Relay, DeepSky, Dovetail, and Arise for AI evals. Most of these brands have never done a product package like this, so go take advantage at bundle.aakashg.com. And now, into today's episode.
- 1:55 – 3:14
Why n8n Matters
- AGAakash Gupta
Pawel, welcome back to the podcast.
- PHPawel Huryn
Hi, Aakash. It's great to be here.
- AGAakash Gupta
So why should people care about n8n?
- PHPawel Huryn
In my opinion, n8n is the most powerful workflow automation tool that combines, uh, two perspectives. So one is automating traditional workflows, and the second perspective is building AI agents and multi-agent systems. And this is by far the most intuitive tool that you can use to automate any workflow, not specific workflows or simplified workflows that might work in some cases and not necessarily in others. n8n can do everything, [laughs] so that's why it's my favorite framework. And we can, of course, dive into the details.
- AGAakash Gupta
What are some of the use cases? Like, I, I understand the word workflow, I understand the agent, but, like, what is this practically gonna do for me? What problems is this gonna solve? What time is this gonna save? What is this gonna automate?
- PHPawel Huryn
Everything that can be automated can be designed and mapped in n8n. So starting from simple business workflow automations, like we've been implementing for many years, even before AI, um, to what companies currently implement, like chatbots, automatic competitor monitoring, multi-agent research systems, some workers that monitor your inbox and based on, for example, your email, take actions in your systems. Uh, so sky's the limit.
- AGAakash Gupta
Amazing. Well, can you show us it in action and teach us how to
- 3:14 – 8:44
Building Competitor Monitoring Workflow
- AGAakash Gupta
use it well?
- PHPawel Huryn
Sure. I would like to, instead of, uh, starting with the theory, I would like to build a workflow together with you. And let's start from a classical workflow that will use LLM as one of the steps, and we will then increase the agency until you reach the n8 agent level. Does it sounds okay?
- AGAakash Gupta
Yep. Makes sense. Although some people may not know what we're talking about, so you're about to see this in action.
- PHPawel Huryn
Yeah, let's just get into building. Just to start, imagine that we have a product that I actually have a product, which is Accredly, a digital courses and credentials platform, and I would like to monitor my competitors. So every, let's say, every week, I would like to get a- an email summary of everything that happened, new features, marketing events, customer complaints that go viral on Reddit, and so on. And to do that, we can use n8n. So the first step would be just to create a new workflow. And, yeah, the workflow can start in different ways. We can start it manually, we can schedule it to run based on a schedule, or it can be an event in a- an external system that triggers something that is called a webhook, which is like an inbox for a web process. But in this case, let's start with a manual trigger. It will be the easiest to test. And the first step, because I know that I want to monitor competitors, will be getting the list of competitors. Does it make sense?
- AGAakash Gupta
Yep.
- PHPawel Huryn
Okay. So we need to look for some action that will connect this Google Sheet. And, uh, when I type sheets, as you see, I have this action, Google Sheets. And what I would like to do is to read the list of competitors so that I can do something with this list. So here it will be Get rows in a sheet. I previously configured my credentials, so it means that n8n already knows how to connect to my Google account. And if you don't know how to do it, if you click Create a new credentials, it will guide you and all the [laughs] required steps. There are also docs that you can read. Uh, not, not complicated. So the document that we are interested in is Accredia competitors, so let's try to type it. It found the document, and the specific sheet in this document, there is only one sheet, so this will be sheet number one. Okay, no filters, so let's test it before we go further. I will save the workflow just so that we do not lose the progress. And now when we click Execute workflow, we see the progress step by step. So it started with this initial node, which only means that we started the process, and then it connected to Google Sheet. And if we open this node by double-clicking, we can see that it's returned some elements. So we see row numbers and competitor, which is one of the columns, exactly what we have in this Google Sheet.
- AGAakash Gupta
I wouldn't say that was the simplest Google Sheet ingestion, and I think that is one thing, is that n8n is so powerful that-You might have to overcome some initial anxiety with all the dropdowns and things that you see, and just realize that I'm using a full-functioning tool. I'm using a full-powered power user tool, so some of these things might be a little bit scary. But once you overcome that hurdle and you figure out, "Oh, this is how we get the rows," it becomes really easy, becomes like second nature.
- PHPawel Huryn
Yeah, exactly. The next step, once we have this data, show you a trick so we do not have to keep asking when developing our software, developing this process, we do not have to query a Google Sheet over and over again. We can just pin this data, and it means that for the development purposes, we can just use this collection, and it will not actually connect to Google Sheet. We can continue from here. This will simplify everything. So how can we monitor our competitors? You could try to connect to some service like Brave Search to perform a Google query, perform a search based on some query. But what works best for me in most cases is just using Perplexity.
- AGAakash Gupta
Mm.
- PHPawel Huryn
So the next step is Perplexity, and you do not have to remember all those actions if you just type what you want to achieve. It suggests the right node type, and the only possible action here is message a model. I already have the Perplexity account, so all I need to do, and I can leave the default options, is to send a message and tell Perplexity what I expect. So in this case, I previously prepared a prompt. Let me explain it. If I click this small icon, we will just extend this, this area. I explained Perplexity that I'm conducting a market research, and the first thing I want it to do is to find insights about a specific competitor. So here we have preview of one of the rows, and all you need to do to, to use this as a variable is to drag and drop this element here. And for every row, every competitor, it will send a separate request to Perplexity search. Uh, I have also instructed it what to focus on, so look new products, capabilities or features, important updates, announcements, changes in pricing, partnerships, user complaints, and so on. And also I have asked to, uh, apply specific formatting, uh, so that we have a header with the competitor name and then relevant links and relevant information. If there are no updates, it should reply with no updates. That's all we need. Uh, so if we now try to execute this step, it should call Perplexity six times for each of the rows, and we should get six search results.
- 8:44 – 12:09
Cost & Free Version Benefits
- AGAakash Gupta
Would you need a pro version of n8n and Perplexity to do this?
- PHPawel Huryn
For Perplexity, you need an API key, which doesn't require a Perplexity subscription but requires connecting your credit card. And-
- AGAakash Gupta
Mm-hmm
- PHPawel Huryn
... cost of this call is, like, you can make hundreds of calls, especially with the model that is selected by default for one, $2. So this is symbolic, and I'm using a free version of n8n.
- AGAakash Gupta
Nice.
- PHPawel Huryn
Okay. So-
- AGAakash Gupta
So pretty much it's gonna cost you, this workflow is gonna cost you, like, if you're making hundreds of calls, a dollar or two. Pretty cheap.
- PHPawel Huryn
Something like that. Something like that, yeah. To run it every week, this is, uh... Yeah, you can forget about the cost.
- AGAakash Gupta
Nice.
- PHPawel Huryn
Yeah, so what we got for Perplexity, we got six responses. And for every element, as we see, it generated a lot of text. Like, we have citations, we have search results, we have some title of every page that it browsed. And I don't need this information, and if we try to send this information to LLM to create a report, we will waste a lot of tokens. [laughs] So to optimize costs, we would like to select only what matters the most from this response. And to do that, you can ask, I usually ask ChatGPT how to do it. Um, there is a special node type that is called code, and you can ask, "Hey, ChatGPT, how to compress this information?" Because, like, there is a lot of text, and I do not want to send all this text, for example, to OpenAI. And the re- response will be that you can do it like here. So I would like to select only two elements for every website that it found, okay? For every element, I would like to, uh, find the response. The response is... It's even difficult to find. Uh-
- AGAakash Gupta
Yeah
- PHPawel Huryn
... yeah, it's this one, content. So this is a summary for a specific competitor, what it actually found.
- AGAakash Gupta
Mm.
- PHPawel Huryn
And I would like to also find citations, so the websites that allowed it to generate this response. And all those previews, snippets are irrelevant. I only want a list of sources, and also I can drag and drop it here. And yeah, that's pretty much it. I never write those code blocks myself. I just take a screenshot and ask ChatGPT how to do it well. So it will suggest in this case that you should write this expression and drag and drop selected fields here. And if we execute it... Actually, let me pin the Perplexity so we do not pay for... We are developing this workflow. We, we might need to run it multiple times, so there is no point in calling Perplexity over and over again. Uh, let's execute this step and see what we get. So now instead of all this information that we do not need, we just have a summary. So for example-
- AGAakash Gupta
Yeah
- PHPawel Huryn
... summary for here for Accredible and citations, so what pages it browsed. And similarly for Credentialed.net with citations, similarly for Certifier and so on. And this is, when talking about context management, I, I don't want to complicate our conversation, but when talking about c- if we were talking about context engineering, I'm sorry, this would be compressing the context, which means that we select only information that matter and we ignore everything else. That's how we can make it much more easy to process.or
- 12:09 – 13:53
Ads
- PHPawel Huryn
an LLM
- AGAakash Gupta
Today's episode is brought to you by Amplitude. Replays of mobile user engagement are critical to building better products and experiences, but many session replay tools don't capture the full picture. Some tools take screenshots every second, leading to choppy replays and high storage costs from enormous capture sizes. Others use wireframes, but key moments go missing, creating gaps in your understanding. Neither approach gives you a truly mobile experience. Amplitude does things differently. Their mobile replays capture the full experience, every tap, every scroll, and every gesture with no lag and no performance hit. It's the most accurate way to understand mobile behavior. See the full story with Amplitude. Trust isn't just earned, it's demanded. Whether you're a startup founder navigating your first audit or a seasoned professional scaling your GRC program, proving your commitment to security has never been more critical or more complex. That's where Vanta comes in. Businesses use Vanta to establish trust by automating compliance needs across over 35 frameworks like SOC 2 and ISO 27001. Centralize security workflows, complete questionnaires up to five times faster, and proactively manage vendor risk. Vanta can help you start or scale your security program by connecting you with auditors and experts to conduct your audit and set up your security program quickly. Plus, with automation and AI throughout the platform, Vanta gives you time back so you can focus on building your company. Join over 9,000 global companies like Atlassian, Quora, and Factory who use Vanta to manage risk and improve security in real time. For a limited time, my listeners get $1,000 off Vanta at vanta.com/aakash. That's V-A-N-T-A.com/A-A-K-A-S-H for $1,000
- 13:53 – 19:57
Workflow Automation Deep Dive
- AGAakash Gupta
off.
- PHPawel Huryn
And you might have noticed, Aakash, or maybe we might have people that are more technical. People who are more technical might be used to creating loops. So usually when you get a collection of items, we draw a loop like for or while and then repeat the process and draw, uh, an arrow back to iterate over a collection. In n8n, you do not need to do that because it automatically repeats the actions for every input item, so that's why I do not have to go back. It is possible, but it's just not needed in this specific scenario, and in most scenarios you don't need it. Uh, but the next thing I would like to do is to, to send all this data to OpenAI and ask to prepare a, a report, to prepare an email template that I can send. But we have six objects, and I would like to have, like, this one variable that I can use in my prompt. To do that, we can use the default action, which is about aggregating responses. So we get... We would like to get all the data, all those six responses, and create one field. So instead of six items, we will have one, and we can now give this, all this information easily to an LLM. We will simplify it in, in the agentic workflow version. We started with the most basic one, uh, which requires the most manual work. So the next step is to... I have all this information that I downloaded about my competitors, and I would like to give it to an LLM. In this case, it will be ChatGPT to summarize this information and prepare an email template. And for that, I do not need an agent. I only need to message a model, which should be here, OpenAI. Message a model, and it will send a prompt to an LLM. And in this prompt, let's open it here. I already prepared the prompt, so we will not waste time on it. Uh, I have very specific requirements. So you are a Perplexity results formatter. Your task is to create a clean competitor monitoring report. I defined how the outputs are, should be structured, that every competitor, how the reports should start, so this is a header of the report. We should use heading, headings for every competitor. And also how to format references that we shouldn't use. For example, those numbers that people wouldn't really understand what they mean. Instead, we should use a link from citations. Uh, let me demonstrate it. So here I still have links like you see this, like reference number two, and I would like an LLM to replace it with the right, uh, link from citations, so from this list.
- AGAakash Gupta
Yeah.
- PHPawel Huryn
Okay, what else? So this is about how to create references and how to display links. What are the rules for the content, like normalize this phrasing, avoid speculative language, and an example of the report that I would like to get. I have used this example. This is mixing markdown with, uh, an XML so that LLM understands that this markdown, it's not the same as markdown used in the prompt. Mixing those notations works pretty well for me. Okay, and when it comes to special expressions, and honestly, I didn't write it myself. I probably wrote the first paragraph, and everything else was generated by ChatGPT. So I asked ChatGPT to generate a prompt, and then I experimented with it. I probably also added this example, but everything else was, was generated by LLM. Okay, and of course we need to provide the context, so it needs to know what the data is. And for that, we will use one of the expressions that are critical to remember. If we have those structured objects, so objects with some structure, and we would like to convert them into text. So as you see right now, it will... We have a preview, so it will be object, object, object, object. It doesn't make sense, and LLM will not understand it, so we need to convert it into a string. And this is the special expression to JSON string, and that way an LLM gets the content that it can understand.
- AGAakash Gupta
So you use JSON.json.toString.
- PHPawel Huryn
Yeah.
- AGAakash Gupta
And you just click into that by starting typing it.
- PHPawel Huryn
Yeah. ToJSONString-
- AGAakash Gupta
Cool
- PHPawel Huryn
... it's one of the, like, free expressions that are important to rememberOtherwise-
- AGAakash Gupta
Okay
- PHPawel Huryn
... you will not be able to get this object and send it to an LLM. Okay, and the model, uh, that I'm going to use, let's say it will be ChatGPT, GPT-5. We probably don't need it, could use something simpler, but I want to later to compare it to agentic workflows and AI agent, and that's why let's, let's use the same model everywhere. One of the helpful options when working with LLMs, especially with OpenAI, is reasoning effort. So I know that in this case I do not need an LLM to think a lot about the answer. Let's try to find it, so reasoning effort is low.
- AGAakash Gupta
Can we use 5.1? Have they put 5.1 into it yet?
- PHPawel Huryn
Yeah, they probably have. I saw it today.
- AGAakash Gupta
So I think 5.1 came out like a day or two ago.
- PHPawel Huryn
Yeah.
- AGAakash Gupta
Okay.
- PHPawel Huryn
We have.
- AGAakash Gupta
Nice.
- PHPawel Huryn
Let's experiment.
- AGAakash Gupta
So they're updating it pretty quickly, 'cause some of these tools I've used, it may take a week or two.
- PHPawel Huryn
Um, okay. So and that's everything we need, so let's try to test it and, uh, again, very nice thing about pinning this data is that right now if I execute the workflow in this test mode, it will not connect to Google Sheets again. It will not send any requests to Perplexity. Can even modify this data by clicking a pencil icon, for example, to change the text. Uh, so that's, uh, really helpful, and let's, let's try to test it.
- AGAakash Gupta
So if I looked at this workflow so far and I had seen some of my other videos on like Lindy and Relay, I would say this was a lot more complex
- 19:57 – 23:13
Traditional Workflow vs AI Agent
- AGAakash Gupta
than those tools.
- PHPawel Huryn
Yeah, but you can do much more, and I will, in a moment I will also demonstrate how you can do it [chuckles] more easily.
- AGAakash Gupta
So wait, guys. It looks complex now, but we're gonna show you some-
- PHPawel Huryn
Yeah, once you start playing with it, it is not that complex. But the version that we are implementing right now is the most efficient, so it saves a lot, uh, the most tokens, and it will work the most reliable. So there is a very little space to hallucinate because all the LLM does is to create a report based on this data fro- from Pe- Pe- Perplexity. And if we-
- AGAakash Gupta
Here we-
- PHPawel Huryn
... use an agent with multiple tools, it can make a mistake, so that's-- And it will think longer. Okay, so what we got from GPT-51, we have a response with the report that we asked for with sources, uh, everything formatted as a markdown. Okay, but we cannot send a markdown. Well, we can, but it will not look nice.
- AGAakash Gupta
Yeah.
- PHPawel Huryn
So we need to convert it to HTML, and of course, I could ask the model to create an HTML, but again, it will not be efficient because HTML, it will consume much more tokens. So instead, we used a markdown formatting, and now we will convert it to HTML, and we can do it by typing markdown. We will select the text, but first let's s- switch the mode, so this is markdown to HTML. Uh, this is markdown. Just drag and drop the text. It will produce, uh, an HTML I hope, and we have it here. Okay, and the last step, if that was clear, let's pin the data-
- AGAakash Gupta
Yeah
- PHPawel Huryn
... again. Uh, the last step is sending an email, but not using the default functionality, but I would like to use the Gmail connection. Send an email. Send a message. I will send it to myself. I already have connection to my Google account. Weekly competitor report. Email type is HTML. We have this HTML. And the message will be this. We can see it in data, so drag and drop. And maybe instead of previewing it here, I will, yeah, I will run the entire workflow. Uh, so yeah, let's do it like this.
- AGAakash Gupta
Then let's see if you get an email.
- PHPawel Huryn
Yeah, I will check it. I am using the second screen, but I will present my email.
- AGAakash Gupta
[chuckles]
- PHPawel Huryn
Okay, so it looks like this. Competitor monitoring report. Cradly, no updates, no updates. Here we have a list of updates for Certifier with the sources. That should work.
- AGAakash Gupta
Not hallucinated, guys. [laughs]
- PHPawel Huryn
Yeah, this is, this really works. We have Certifier, Certify Me. So right now-
- AGAakash Gupta
Wow. So this did-
- PHPawel Huryn
Yeah
- AGAakash Gupta
... pretty powerful, although it took quite a bit of work. So what's the simpler version?
- PHPawel Huryn
What was complex here, so first we need to understand the steps and of course get competitors from a spreadsheet, ask Perplexity, so that was pretty logical. But then this code execution aggregation, this is specific to n8n and the markdown conversion. This is my optimization. We could ask a model to create HTML directly. Okay, another version would be to make it more agentic, and more agentic,
- 23:13 – 31:50
Building an AI Agent
- PHPawel Huryn
let's build it here. I will just move the trigger below.
- AGAakash Gupta
Hmm.
- PHPawel Huryn
Uh, more agentic-
- AGAakash Gupta
So you can just have a floating workflow up there and it won't execute 'cause there's no trigger
- PHPawel Huryn
It will not execute. More agentic question is to use AI agent, and you can do it by, just by searching AI nodes. And there is, I would argue that there is one key node type that you can, you need to understand, which is AI agent. I will close it for a moment. So what is an agent? Every agent to work needs some LLM, so LLM is a brain for an agent, and in this case, my favorite model for agentic applications is OpenAI. I have done a lot of tests and yeah, it's, we can share them later or maybe I can also demonstrate those results. Uh, GPT-51, right? So we use the same model here.
- AGAakash Gupta
Supposedly the best at instruction following that OpenAI has done yet.
- PHPawel Huryn
Yeah. And reasoning effort, let's again set a low reasoning effort because this is not very complex. Okay, another thing is memory. We could attach long-term memory or short-term memory if an agent had to understand previous interactions, but here it is not the case. It doesn't need to, to remember what happened, for exam- example, an hour ago or a month ago, so we can skip that. But what's important is giving an agent, this agent some tools that, so it can pursue the goals and yeah, we will give it a, we will define the objective and, uh, an agent needs to use the tool, tools to achieve that objective. And the tools are similar, although we will not use all of them. So the first tool is, uh-A tool to get competitors, uh, from, again, Google Spreadsheet, Google Sheets tool. And if we click those sparkles, we can let an agent decide which document it has to use and which sheet and so on. But because I know that i- there is only one document that should be selected, I can just pre-select it, and similarly I can pre-select the sheet so that we do not have to waste tokens for thinking, 'cause there's nothing to think about here. If it needs to get information about competitors, it should use this Google Sheet tool. Okay, another tool that it will need is Perplexity. Does it make sense? So it can perform some search.
- AGAakash Gupta
Yeah.
- PHPawel Huryn
Okay. Previously we have defined a complex prompt for Perplexity. Here we can skip it entirely and say that our model will decide what to put here. So the prompt will be, you can think a- about it as sub-agent. The prompt for this Perplexity's will be defined by our AI agent.
- AGAakash Gupta
Nice.
- PHPawel Huryn
Okay. What others, other tools does it needs? I will keep those two nodes just so, because there is nothing to think about. If an agent creates a report converting markdown to HTML, it can be done by an LLM, but this is wasting token, wasting cognitive abilities. So for those reasons, in this version, I will once again just use the agent output and convert it to HTML and send the message. Later we will add more agents. Okay, but we have not told the agent what we expect it to do. So to do that, let's open an agent, define the system prompt, which is an extremely, extremely important-
- AGAakash Gupta
Yeah
- PHPawel Huryn
... part of the, of the agent.
- AGAakash Gupta
Yeah, when it comes to building agent, the system prompt is, like, the most important thing.
- PHPawel Huryn
Yeah. So and I also prepared the prompt previously, so I will just explain it. So you are a market researcher. Your goal is to find competitor insights published within the last 30 days, what to focus on, so the objective for the agent to pursue. And, uh, many people when building agents, uh, do it like this, that we define reasoning steps. So step one, instead of doing it in n8n when we mapped the process, we map it in English. So step one, ring- read competitors stored in a Google sheet. Then for each competitor, use Perplexity to find relevant information. It will have to decide what the prompt should be. Step three, from the responses, take only citations and content to compress the context so it creates this, uh, temporarily artifact and doesn't focus on all the other information that comes from Perplexity. And create a final report. Use Markdown formatting and follow other instructions. So this is the second sec- section, how to reason. And the last is, uh, report formatting, and I just copied it from the previous version and as you know, the previous version, the formatting was generated by ChatGPT, so there is not much to think about here. Formatting, links rules, content guidance, this is all generated. And example, it is all generated by, by an LLM. I just added this additional section, uh, report formatting, so that it is wrapped in a de- dedicated section. Okay, and let's try to... And one more thing. This is a good practice. We probably don't need it now, but I would like to demonstrate it already. By default, n8n agents can do no more than 10 iterations, so if thinking, if it has a lot of tools and some of the tool calls might fail, each tool call will be an additional iteration. And if it, uh, iterates too much, it will just stop without, uh, achieving the objective. So for that reason, uh, I usually put, uh, the number 30 here, so it means that we just keep iterating, and even with a lot of tool calls, it will not stop prematurely. Okay.
- AGAakash Gupta
Makes sense.
- PHPawel Huryn
And save just to make sure that we do not lose the progress, and let's execute this workflow.
- AGAakash Gupta
So it's a pretty basic agent workflow with that sub-agent that you mentioned because it's determining its own prompt for that step.
- PHPawel Huryn
Yeah, that's an agentic element here. Deciding, calling the right tools and, uh, deciding what the prompt should be.
- AGAakash Gupta
The other one wasn't agentic because it was all defined even though it had a system prompt.
- PHPawel Huryn
This was, yeah.
- AGAakash Gupta
The other one is what we call a workflow, and this is an agentic workflow.
- PHPawel Huryn
Yeah, I call those, this is a standard workflow. It, of course, it can have switches, it can check some conditions, it can have loops, but this doesn't really differ much from everything that we have been doing for years when automating different processes. The only difference here is using this LLM node, which is about sending text to LLM and getting a response. And similarly, Perplexity, this is like a, an external service. You do not even have to think about that there is an LLM inside, but there is an LLM, LLM inside. Uh, yeah, for me, this is not agentic at all. This is just a workflow-
- AGAakash Gupta
Right
- PHPawel Huryn
... with an LLM. This one is more agentic, al- although the agency is pretty limited here. Okay. It didn't send the message for some reason, but let's see what the agent did. Ah, by the way, we can do, we can see it in logs. So here we have full breakdown of everything that happened. At first it got our request, then it decided to call Google Sheets. Then with those Google Sheets, as we see, it already has information about competitors in the prompt, and then it called Perplexity. If we look at the times and time start, the, mm, starting time and end time, uh, those calls were done in parallel.Not sequentially. And we have this final call where it gets all the information and the list of competitors, results for Perplexity. This is quite a lot of text, and it generated, uh, this report. Okay, what is the difference? The previous execution was about 5,000 tokens and like I tested it before, we have can then... We can test it later, but it's like 30, 40 seconds. Here, because it is more agentic, it is one and a half minutes and 12,000 tokens, and we will pay for every token.
- AGAakash Gupta
Wow, huge difference in cost. So that little bit of extra setup-
- PHPawel Huryn
Yeah
- AGAakash Gupta
... you really reap the results on token cost and time it took.
- 31:50 – 34:11
Ads
- PHPawel Huryn
Yeah.
- AGAakash Gupta
AI is writing code faster than ever, but can your testing keep up? Testkube is the Kubernetes native platform that scales testing at the pace of AI-accelerated development. One dashboard, all your tools, full oversight. Run functional and load tests in minutes, not hours, across any framework, any environment. No vendor lock-in, no bottlenecks, just confidence that your AI-driven releases are tested, reliable, and ready to ship. Testkube, scale testing for the AI era. See more at testkube.io/aakash. That's T-E-S-T-K-U-B-E.I-O/A-A-K-A-S-H. Today's episode is brought to you by the experimentation platform Kameleoon. Nine out of 10 companies that see themselves as industry leaders and expect to grow this year say experimentation is critical to their business, but most companies still fail at it. Why? Because most experiments require too much developer involvement. Kameleoon handles experimentation differently. It enables product and growth teams to create and test prototypes in minutes with prompt-based experimentation. You describe what you want, Kameleoon builds a variation of your webpage, lets you target a cohort of users, choose KPIs, and runs the experiment for you. Prompt-based experimentation makes what used to take days of developer time turn into minutes. Try prompt-based experimentation on your own web apps. Visit kameleoon.com/prompt to join the wait list. That's K-A-M-E-L-E-O-O-N.com/prompt. Today's podcast is brought to you by Pendo, the leading software experience management platform. McKinsey found that 78% of companies are using GenAI, but just as many have reported no bottom line improvements. So how do you know if your AI agents are actually working? Are they giving users the wrong answers, creating more work instead of less, improving retention or hurting it? When your software data and AI data are disconnected, you can't answer these questions. But when you bring all your usage data together in one place, you can see what users do before, during, and after they use AI, showing you when agents work, how they help you grow, and when to prioritize on your roadmap. Pendo Agent Analytics is the only solution built to do this for product teams. Start measuring your AI's performance with Agent Analytics at pendo.io/aakash. That's P-E-N-D-O.I-O/A-A-K-A-S-H.
- 34:11 – 40:36
Agent Workflow Results
- PHPawel Huryn
And yeah, it failed because I, I need to fix this field. So instead of, uh, using, uh, yeah, probably the, the field is called differently, maybe like this. Let me ping this data and try it again. Okay, and here if I run it again, it has sent the message.
- AGAakash Gupta
There we go. It's a live podcast, guys. Sometimes there are errors.
- PHPawel Huryn
Yeah, it would be suspicious if there were no errors at all.
- AGAakash Gupta
[laughs]
- PHPawel Huryn
Um, let me check my inbox. Okay, it didn't send the message. The message was empty, like you see here. So let's take the correct HTML report from the previous node.
- AGAakash Gupta
Oh, you can just drag it like that.
- PHPawel Huryn
Yeah. And execute it again. It will skip the agent part because we pinned the data.
- AGAakash Gupta
Hmm. That pin hack is really a good hack that you should- guys should be using.
- PHPawel Huryn
Yeah, it optimizes costs and time. Uh, okay, so as you see, I just got this email. It's formatted a bit differently. Perhaps my instructions were not precise enough, so I should probably go to ChatGPT or maybe fix the formatting, fix the prompt manually so that we have the source that is clickable instead of inline links, but this is a problem with the prompt, not the problem with an LLM. Let's leave it like here, like this. And yeah, we would have to compare the prompts between the agent and the model to understand what is the difference. The last version will be the most agentic. I think I can just copy this one and adjust it.
- AGAakash Gupta
So we're taking our agentic workflow-
- PHPawel Huryn
Yeah
- AGAakash Gupta
... and we're creating a true agent now.
- PHPawel Huryn
Yeah, and what we have demonstrated so far is how people implement agents in like 90, 95% of cases. True agency is not that common, and before ChatGPT 5, I would argue that it wasn't even possible. So now I would like an agent to do everything, get competitors, call Perplexity, send an email.
- AGAakash Gupta
So you need to give it the send email tool.
- PHPawel Huryn
Yeah, it needs that tool. I will freeze this. I would like to make sure that I'm using this email, but the subject and the message will be defined by the model. So there is no... Nothing is predefined. And another thing that I would like to adjust, because like technically what I presented previously, you can call it an agent. For me, it's a bit like coding in English because, okay, we define the goal, there are reasoning steps, uh, but yeah, it's like lead competitor stored in a Google sheet and we fix the sheet so no decision can be made here. For each competitor, use Perplexity. The only thing that an agent can do is to define the prompt, but other than that, this is coding in English.
- AGAakash Gupta
Yeah.
- PHPawel Huryn
Then another step, take citations, compress the context. So for me, an agent is something that, uh, gets the goal, gets a set of tools, and uses those tools to figure out how to achieve the, um, the objective. If we define reasoning steps, of course it will work, butIt's difficult to call it an agent for, for me, even though this is just an LLM call because LL- LLMs also can use tools. The agency is extremely limited here. So a true agent will only get an objective. I have re- prepared the prompt previously, and let's see the difference. You are a market researcher. Your goal is to find competitors. You can find competitors using the spreadsheet. This, this was important because it doesn't know this. And use the available tools to send me a well-structured, scannable Gmail summary. I'm not talking about-- I'm not explaining that it should convert those numbers into links, inline links. Avoid unnecessary details. Yeah, place inline links. Everything else that is related to formatting, processing the results, and order in which tools should be used, this is up to an agent. So it will do everything. I assume, I hope that it will figure out that it cannot message Perplexity if it doesn't know which, which competitors to, to ask about, and similarly it should send an email message after generating some kind of report. Let's execute it and see how it will work. But yeah, I have pinned the data. It doesn't make sense, so let's try again. The data was pinned.
- AGAakash Gupta
You unpinned the data.
- PHPawel Huryn
Yeah, the data was pinned because I copied it from another place.
- AGAakash Gupta
So we would expect this to-
- PHPawel Huryn
Yeah
- AGAakash Gupta
... take a bit longer-
- PHPawel Huryn
So-
- AGAakash Gupta
... just like we saw a time upgrade on the last one.
- PHPawel Huryn
Yeah, but we see the correct order, so it's, uh, read the data from Google Sheets. Now it's thinking again. Now it's calling Perplexity. It should do it several times. Uh, if we look into logs, it doesn't do it in parallel. I'm not sure this is a GPT 5.1, uh, limitation or a wrong choice. I'm sure that GPT 5 can do it in parallel. Maybe if we-
- AGAakash Gupta
[laughs]
- PHPawel Huryn
[chuckles] Maybe if we defined in the tool... We, we can test it in a moment. Sometimes, uh, it's important to provide the right tool descriptions so that the agent understands how the tools should be used and whether this tool can be called in parallel, because Perplexity, it can have some, um, limitations on how many calls I can, I can make. Maybe just in case it did it sequentially. And the last step should be sending an email. And I have not explained how the email should be formatted.
- AGAakash Gupta
Waiting to see what it'll look like. [chuckles]
- PHPawel Huryn
Yeah, every time it, it will be a little bit different.
- AGAakash Gupta
All right. We got workflow executed successfully. Moment of truth with the email.
- 40:36 – 45:35
n8n Best Practices
- AGAakash Gupta
What are the other end-to-end skills people need to know?
- PHPawel Huryn
There are different skills. So best practices. First best practice is to set up a dedicated workflow, uh, that will be activated when there is an error in, in my workflow. We can do it here by going to the settings, and we can select, uh, an error workflow, which is a workflow that will be called whenever, um, there is some problem with the execution. That way you can send, for example, an email or an email notification or a Slack message when there is a, a bug on production. Uh, another good practice, one we already discussed, is this max iterations. Another one will be, uh, in different tools and in AI agents setting this retry on fail, because, for example, model might be not available for a brief period of time. We can retry, for example, three times, uh, every second, and this drastically reduces, yeah, the number of errors that influence the execution. A good practice is providing tool descriptions, and, uh, you can do it here. You cannot do it in MCP, and that's one of the reasons why I prefer built-in connectors over MCP servers, is that now I can tell the model this tool can be called in... I don't know how to spell it. Like this. So we can provide the tool description, and often when you work with MCP servers or built-in connections, connectors on different platforms, those tool descriptions are inaccurate. They lack examples. They lack correct examples and, uh, common mistakes to avoid, and I like adding those descriptions every time I see a problem in my workflow. And, um, another thing that we can consider is in some places you cannot click this icon, and in that case, uh, there is the special expression, probably the second or, or the third one that we discuss here is from AI. Uh, this is just something to remember, and it informs, uh, an agent that it should came up with, uh, some value for this parameter. So, for example, prompt and prompt for Perplexity. This is not very creative. It's red, but it would, [chuckles] it will work in, uh, in real life. You can just trust me. Uh, if we execute it again, it'll be executed correctly. That's the right way to find it. Okay, so in some cases you might need it. In others, if this special icon is available, you can use this icon. Okay. A good practice, and you might not like it, Aakash, is of course this, this reportwas the best. I tend to agree, but at the same time, uh, the risk of hallucination, the risk of mistakes here is the highest. This is the most expensive solution. And, uh, in weekly competitors, it doesn't make much difference. But if that was something that is run, uh, the user is waiting for the response, we want to minimize this time, and the way to minimize this time is to define it like this. If you run some out- simple automations that you, you just want to run in the background or you can wait, it's perfectly fine. But if you want a process that will run on production, if you have something that can be expressed as a code, it should be coded. And we should leave agents for cognitive work. So if we really don't know how the process will look like, there are different tools we need to serve a d- diverse set of questions, like we have a Trello agent and it can create a new list, create a new board, uh, move cards between different lists, complex scenarios, and you cannot predict each possible scenario, then we should use an agent. If we have one process that we want to run regularly, it's better to convert it into, into a workflow. As an individual, it doesn't make much difference. If you are running this on production and you have thousands of customers, that's, that's the right way to do it and, yeah, use an agent only when you have to.
- AGAakash Gupta
The agent seems fancy. We did it last, but actually you wanna do what we started with when you can. You wanna simplify both for time and cost spent.
- PHPawel Huryn
And you need to remember that when we are talking about LLM power, so people who use agents for their personal use cases will probably not see a difference. But if you have an LLM-powered product and you want to scale this product, you have to remember that this cost will scale proportionally to the number of the users. So especially if you want to have a freemium version, that might, that might be tricky. One more example that I have prepared, and we can conclude or make some summary just to demonstrate what n8n can do. This is not only about simple workflows.
- 45:35 – 49:04
Multi-Agent Research System
- PHPawel Huryn
I would like to demonstrate a multi-agent research system where-
- AGAakash Gupta
This is the next level.
- PHPawel Huryn
Yeah, this is the next level. So I often see infographics where people explain the difference between n8n and other systems, and they portray n8n as, as this li- linear workflows, uh, [chuckles] platform. It is completely not the case. So you can perfectly... And this is an, an example of n8n used to map Multi-Agent Research System by Anthropic. So this is from the paper that they published, how they implemented it, and there is this lead agent that gets the research topic and distributes, distributes tasks between sub-agents. And then each sub-agents perform a scoped research. At the same time, it is aware of the overall context of the research. It creates a report. And finally, this lead agent, which is an orchestrator, creates the final response for the user. And I did the same in n8n. Give me research on Amazon. I'm using a simple interface, and this is an interface provided by n8n. But you can perfectly combine n8n with Lovable, um, Cloud, or any other, uh, coding agent by creating something called a webhook. Uh, we will not be able to demonstrate it right now. So this first agent that I defined, uh, verifies if the question that I asked, asked, uh, makes sense and it needs more information, of course, because it was extremely unprecise. So here, Amazon market share 2020, 2024 by region, by continent. And if I submit it, so it has a memory, it remembers the previous interactions. So the next step is going to this lead agent which orchestrates sub-agents. It creates a lit- list of tasks. For example, give me, uh, Amazon revenue for Europe or give me, uh, Amazon revenue for Asia. And then each of those sub-agents will pursue the goals. So as you see, we have like 10 sub-agents each running simultaneously, something like this. Each sub-agent will use a Brave search, will fetch website content, will use, uh, an additional LLM to compress the context. So there is a basic LLM chain, so we do not use the entire, the full HTML, but extract the most important information. Each of those sub-agents, uh, gets like three to 10 websites, and we are not using Perplexity. This is done manually. And finally, lead agent combines all those reports, sends them to a copywriter agent, and the copywriter agent creates a file that is then stored in a Google Drive. Uh, so I do not have to wait. It will run in the background. We can see the previous report. For example, this one I created it previously. So we have Amazon revenue, executive summary, um, yeah, and different sources that it browsed with tables. We could format it, maybe improve the formatting, but other than that, it does the research. I also have versions that generated much more complex, uh, reports with like 10, 15 pages. It depends on the research topic. Okay.
- AGAakash Gupta
So we walked people through all these levels of workflows. We have ended at the highest level, the multi-agent workflow.
- 49:04 – 51:12
PM Use Cases & Automation
- AGAakash Gupta
What are the most repetitive tasks that PMs still do manually that they should automate with n8n?
- PHPawel Huryn
There are many examples. One of the examples is, uh, just automating work with the software that they, that they access the most. So for example, you can use an n8n to summarize emailsOr draft responses to every email that you get, move emails between folders. You can... Competitor research is one of the examples. I also have agents that write PRDs based on the input the user provides, and it can search Slack, it can search your files like Google Drive, find relevant information, and then based on the prompt and your ideal, uh, PRD template, it can create this PRD, for example, as a Google Doc. There are many examples. Uh, I personally also use it for my- to automate, uh, tasks for my products. So for example, I had to get information about exchange rates and import this, this information to my local database. I use it to import information about new subscribers to Substack and yeah, processes like this.
- AGAakash Gupta
All on the free plan.
- PHPawel Huryn
All can be done, yeah, this all can be done on the free plan. There are certain limitations, like for example, the free plan has a limited history. So in theory, you can browse probably like 24 hours. But there is a simple workaround you can use to, to remove this limitation.
- AGAakash Gupta
Yeah. What hack do you have for this workflow limitation? [chuckles]
- PHPawel Huryn
And most of this article is without the, like, probably the entire article is without the paywall. Uh, for sure the entire introduction is without the paywall, the ultimate guide to n8n. So this and yeah, best practices we'll, we will discuss them and we'll remove the paywall because it doesn't make sense to keep the paywall. We, we are sharing it in your video. [chuckles] Okay, webhooks, intermediate steps, uh, error handling, you can read it later, but hacks. Remove
- 51:12 – 57:57
Free Version Hacks
- PHPawel Huryn
the limit of one-day workflow history retention, and I presented how you can do it in Docker. Uh, so basically you need to, in Hostinger, which is one of the, the cheapest platform to host n8n in the cloud. It's like $5 a month, and you get a virtual machine that can, with unlimited executions that you can run in the cloud and it can run 24/7, so it's better than running it on your local machine. All you need to do is to go to, to this editor and yeah, copy and paste this text. [chuckles] So I demonstrated how to do it. And unless you are selling n8n to others, as long as you use it for your internal purposes, this doesn't break the license agreement. Another thing that is helpful is that in free version you do not have global variables, so you cannot do it, but you have a thing like tables. So if we go here, there are data tables, and we can just create a table that will contain our global variables. For example, competitors, even competitors can be global variable. Secrets, let's say. And here I can add columns, so it's like a spreadsheet, but it's stored directly inside n8n and now every workflow can read it. Maybe another example-
- AGAakash Gupta
Nice
- PHPawel Huryn
... yeah, those are some templates that are available for all the workflows that I have. So we do not have to use a paid version for it. And, uh, the last ethical hack for n8n is workflow history, because in n8n, in a free version of n8n, you only have the last version. You do not have the full version history.
- AGAakash Gupta
Right.
- PHPawel Huryn
Theoretically, as you see, it's limited to one day, and my workaround for it is to create an n8n workflow that will, let me just present it, [chuckles] that will just export n8n workflows regularly to a Google Drive. And so I sched-
- AGAakash Gupta
Nice
- PHPawel Huryn
... I scheduled this workflow, which is executed daily.
- AGAakash Gupta
This is such an awesome hack, guys. It's turtles all the way down. It's n8n hacking n8n.
- PHPawel Huryn
n8n has a-
- AGAakash Gupta
I love that
- PHPawel Huryn
... n8n has an API, and this API is free to use and it is available in the free version. So every day I get all workflow definitions. We can test it. I don't have to, to describe it. [chuckles] And next it iterates over those elements and saves those definitions as files so you can later import them from file here. You just download the specific workflow, import it from this top menu, and that's all you need. And if we go to this folder, name updated at, so we can understand which files are the newest ones. We could also organize them into folders, like a folder by day, but it, this is just a demonstration, so those are all my workflows ex- it was just exported. So now I could take this workflow definition, download this file, upload this to n8n, and we have a full version history for every workflow. Another way to organize it would be to create a folder for every workflow and then for every day have a workflow history. So that's pretty much it, and those are the most painful restrictions, and you can easily-
- AGAakash Gupta
We just covered 80% of n8n in 80 minutes.
- PHPawel Huryn
Yeah.
- AGAakash Gupta
Should every product leader be getting their team a license to n8n?
- PHPawel Huryn
It depends, because as I... n8n license is like $20 a month, if I remember correctly, for 100 or 1,000 executions. Mm, in any case, it's pretty expensive. Uh, but you can go to Hostinger. Right now there is a Black Friday sale, but even without sales, frankly, this is like five, $6 a month for unlimited executions. And, uh, yeah, if you claim the deal, you just select, sorry, self-hosted n8n. This is here. This is not a Black Friday sale. Uh, this is the price that will also be available after the Black Friday is, is over. So for example, this one, this is a powerful virtual machine with eight gigabytes of RAM memory.And it will just create a, an instance. You get- So this is what I see. So I have my own n8n. I can manage it.
- AGAakash Gupta
How can we use n8n to learn on, ramp up on AIPM?
- PHPawel Huryn
Oh, that's a good question. There are... So that's, that's why I, that's one of the reasons I like n8n, because you can learn a lot of things that matter without coding and without, uh, going too much into tech. So you can understand starting from prompting and how to formulate precise instructions for your agents. Uh, you can understand context engineering because also, uh, I didn't demonstrate that, but you can easily, uh, include retrieval or generating embeddings and sending your documents to a vector store like Pinecone, which is also free. You will understand how to compress the context, which I already demonstrated in this multi-agent research or in competitor monitoring, so that you are careful about the amount of information that you provide to an agent. You will learn that the context matters, so sometimes instead of defining precise instructions, it is important to communicate the larger objective and the context in which the work is to be executed and how the success will be measured. And often a, an agent can figure out specific steps on its, on its own if you [laughs] if you describe the context well enough.
- AGAakash Gupta
Yep.
- PHPawel Huryn
Yeah. So-
- AGAakash Gupta
We saw that live.
- PHPawel Huryn
Uh, you can experiment with RAG, different RAG architectures. You can combine n8n to Lovable or to Cloud Code and build interface so that you get a RAG chatbot or RAG system. Virtually everything that AIPM seems to do, even evals and, and guardrails are currently supported, uh, by n8n, so yeah, that's covers maybe not prototyping, but other than that, everything that you need to understand about agents, about prompting, about managing context, about evaluating LLM systems, you will get this feeling, and you will d- develop an AI intuition so you understand what are the practical limitations and what agents are good at and when they sometimes still fail. So that's a-
- AGAakash Gupta
Amazing
- PHPawel Huryn
... a great platform to, to experiment and learn.
- AGAakash Gupta
Well, this has been a master class. If you guys wanna see more about Pawel teaching n8n and AIPM using n8n, check out our other episode. Pawel, thank you so much. We'll have to have you back again soon.
- PHPawel Huryn
Thank you, Akash.
- AGAakash Gupta
And be sure to check out his newsletter, productcompass.pm. It is one of the best resources you can find on AI and product management, and we'll see you guys in the
- 57:57 – 58:43
Outro
- AGAakash Gupta
next one. I hope you enjoyed that episode. If you could take a moment to double-check that you have followed on Apple and Spotify podcasts, subscribed on YouTube, left a rating or review on Apple or Spotify, and commented on YouTube, all these things will help the algorithm distribute the show to more and more people. As we distribute the show to more people, we can grow the show, improve the quality of the content and the production to get you better insights to stay ahead in your career. Finally, do check out my bundle at bundle.aakashg.com to get access to nine AI products for an entire year for free. This includes Dovetail, Mobbin, Linear, Reforge Build, Descript, and many other amazing tools that will help you as an AI product manager or builder succeed. I'll see you in the next episode.
Episode duration: 58:53
Install uListen for AI-powered chat & search across the full episode — Get Full Transcript
Transcript of episode Kj3KVV5yghc
Get more out of YouTube videos.
High quality summaries for YouTube videos. Accurate transcripts to search & find moments. Powered by ChatGPT & Claude AI.
Add to Chrome