Full transcript
Intro
0:003 years ago, I taught myself how to
0:01build AI agents without any prior
0:03experience in AI, and since then, I've
0:06built multiple AI businesses that have
0:07generated over $10 million in revenue,
0:09grown from zero to 700,000 subscribers
0:11here on YouTube, and I've built AI
0:12agents for NBA teams, for Fortune 500
0:15companies, and even publicly traded ones
0:17as well. So, it's safe to say that
0:18learning how to build AI agents has
0:20completely changed my life. So, in this
0:22full course, I'm going to teach you
0:24everything that I've learned over the
0:25past 3 years about building and making
0:27money with AI agents, even if you don't
0:29know how to code. My goal here is pretty
0:31simple. I want to give you the skills to
0:32build the life that you want before
0:34these AI agents start taking jobs away
0:35from us. Now, as you can probably tell
0:36by the length of this video, I'm not
0:38going to be holding anything back here,
0:39so the whole thing is split into three
0:41different chapters. Firstly, we're going
0:43to be building your foundational
0:44understanding of AI agents, what they
0:46are, how they work under the hood, and
0:48the key concepts that you need to know
0:49before starting to build them. And no,
0:51there's no technical background required
0:52for any of this. Secondly, we're going
0:54to dive into four end-to-end AI agent
0:56tutorials where I take you over my
0:58shoulder step-by-step as we build some
1:00of the most in-demand AI agent types on
1:02the market right now. And finally, I'm
1:04going to be giving you my proven
1:05blueprint for turning these AI agent
1:07building skills into real income while
1:09this technology explodes. So, let's get
1:11into it. But, if you are new to the
1:12channel and don't know who I am, my name
1:13is Liam Otley, and about 3 years ago, I
1:15knew absolutely nothing about generative
1:17AI, and now I run Morning Side AI where
1:19we build AI systems for publicly traded
1:20companies and even NBA teams. My last AI
1:23agent course like this has over 2
1:24million views, and through those videos
1:26and my community and my accelerator,
1:28I've helped tens of thousands of people
1:29to learn AI skills and build a real
1:31business around it. Right. And so, if
1:32you look at how long this video is,
1:34you'll realize that there is a lot to
1:35cover, but I do not want you to give up
1:37halfway through. So, before we jump into
1:38the technical stuff, let's first get
1:40clear on why this actually matters, why
1:42AI agents are genuinely one of the most
1:44valuable skills that anyone can learn
1:46right now. So, stick with me on this
1:47part. But, here's the hard truth about
1:48AI and jobs. McKinsey released a report
1:51in November of 2025 with a pretty
1:52shocking finding. 57% of all the work
1:55that Americans do today can be automated
1:57with the technology that already exists.
2:00Not technology coming in 5 years,
2:01technology that we have right now. And
2:03the World Economic Forum is projecting
2:0592 million jobs displaced just by 2030
2:08alone. Now, I know that sounds
2:09terrifying, and honestly, it should be,
2:11and I don't like using this kind of
2:12stuff on my channel if I'm honest, but
2:13if you're planning to do nothing about
2:15it, then there's an issue. But,
2:16interestingly, here's what those same
2:17reports found when they looked at the
2:19other side of the data. They found that
2:21workers who have AI skills are earning
2:2356% more than people who don't, and that
2:25gap in pay has doubled in just 1 year.
2:2766% of employers are actively trying to
2:30hire people who understand AI. So, on
2:32one hand, we've got this massive
2:33automation coming and job loss, while on
2:35the other hand, companies are desperate
2:37for people who actually understand this
2:39technology and can help them use it. So,
2:41the difference between getting replaced
2:42and getting ahead comes down to one
2:44thing, actually just learning the stuff.
2:46And here's the gap that creates such a
2:47huge opportunity right now. Only 12% of
2:50workers have taken any AI training at
2:52all. That's not just a little gap,
2:53that's a canyon. And if you don't
2:55believe me when I say that a little bit
2:56of self-study on the stuff goes a long
2:58way, here is Naval Ravikant, one of the
3:00world's most respected investors and
3:01technologists, on the All-In podcast.
3:03>> Again, I would say the easiest way to
3:05see that AI is not taking jobs or
3:07creating opportunities is [music] go
3:09brush up on your AI, learn a little bit,
3:11watch a few videos, use the AI, tinker
3:14with it, and then go reapply for that
3:15job that rejected you, and watch how
3:17they pull you in. This video is exactly
3:19what Naval is talking about. So, whether
3:21you're an entrepreneur wanting to learn
3:22valuable skills to launch an AI business
3:24like I have, or you're a business owner
3:25wanting to understand what agents can
3:27actually do for your company, or you're
3:28just an employee who wants to make sure
3:30you're the last person the boss thinks
3:32about letting go because you're the only
3:33one who actually gets this stuff, well,
3:34I made this video for you. So, here's
3:36what I want you to do. I need you to
3:37close out of all your other tabs, grab a
3:39notebook, get your coffee or tea or
3:40whatever kids you locked in, and make a
3:42commitment to yourself right now to
3:44actually [music] finish this training.
3:45Right. So, if you've done all that,
3:47let's get stuck into it.
AI Agent Foundations
3:54All right. So, step one in learning to
3:56build AI agents is actually
3:57understanding what an AI agent is in the
3:59first place. Because the term gets
4:01thrown around everywhere these days, AI
4:02agents this, AI agents that, and every
4:04tech company is talking about them, but
4:06what actually is an AI agent? When I
4:08first started learning about this stuff
4:09a few years back, I found it pretty
4:11confusing, too. So, let me give you the
4:12clearest definition that I found that
4:14really helped it kind of click for me.
4:16An AI agent is a digital worker that can
4:18understand instructions [music] and take
4:20actions to complete tasks. So, in a
4:22simple way, just like businesses have
4:24employees who handle different
4:25responsibilities, AI agent is kind of
4:27like having a digital employee. But, the
4:29interesting part is that you can build
4:30them yourself and make them do pretty
4:32much whatever you want. It's like being
4:33able to construct a human worker from
4:34scratch. And unlike human employees,
4:36these digital workers cost a fraction of
4:38what a person does. They can work 24
4:40hours a day, 7 days a week. They never
4:42get tired. They never call in sick, and
4:44you can duplicate them instantly
4:45whenever you need more capacity. So, I'm
4:47sure you can see the appeal for
4:48businesses when they look at this versus
4:50humans. Now, here's why this matters
4:51right now specifically. Because all
4:53major tech leaders are aligned that 2026
4:55are the year that AI engines go
4:57mainstream. You've got Satya Nadella,
4:58the CEO of Microsoft, who said at the
5:00start of this year, "2026 will be a
5:02pivotal year for AI. We've moved past
5:04the initial phase of discovery and are
5:06entering a phase of widespread
5:08diffusion." Jensen Huang from Nvidia is
5:10saying the same thing. Sundar Pichai at
5:11Google said 2026 is when people will
5:13start using agentic experiences more
5:15broadly. The point is that this isn't
5:17just some far-off future technology.
5:19This is happening right now, and
5:21understanding how these things work puts
5:22you ahead of the vast majority of
5:24people.
5:27Now, to understand why AI agents are
5:28such a big deal, we need to look at
5:30where we are coming from, because you've
5:32probably encountered all sorts of
5:33chatbots before, right? You go to a
5:34website, there's a little chat widget
5:36that pops up in the bottom corner
5:37saying, "Hi, how can I help you today?"
5:39And so, you type something in, it gives
5:41you some kind of response. These kinds
5:42of basic chatbots have been around for
5:44years, but here's the thing, they are
5:45pretty limited, and they can really only
5:47do one thing, respond with some
5:49information. The way I like to think
5:50about it is this, a chatbot is like a
5:52waiter who can only recite the menu to
5:53you. You ask them what's on the menu,
5:55and they tell you, but they can't
5:56actually take your order. They can't
5:58bring you your food, they can't process
5:59your payment, either. They just give you
6:01information back. AI agents, on the
6:03other hand, are fundamentally different.
6:04But, let me give you a concrete example
6:06to show you what I mean. Say you go to a
6:07website and you want to book in an
6:08appointment with that business. If you
6:10ask a regular chatbot about booking an
6:12appointment, it might say something
6:13like, "Our business hours are 9:00 to
6:155:00, Monday to Friday. Please call us
6:17to book." And that's it. Just some
6:19information, and you still have to go
6:20and do all of the work yourself. But, if
6:22you ask an AI agent the same question,
6:24it could actually check the calendar in
6:25real time, find available slots, ask you
6:28which time works best, and then book the
6:29appointment for you, and send you a
6:31confirmation email, and then update the
6:32business's scheduling system, all
6:34automatically in a matter of seconds.
6:36So, that's the key difference here.
6:38Agents don't just respond with
6:39information, they actually take action
6:41and get things done. And this ability to
6:42take action is what makes agents so
6:44powerful and why everyone's so excited
6:46about them. They're not just fancy
6:47chatbots that sound a bit smarter,
6:48they're genuine digital workers that can
6:50do real tasks like searching through
6:52databases, updating spreadsheets,
6:54sending emails, booking appointments,
6:56generating documents, and honestly, so
6:57much more that we're going to be getting
6:59into in the build section of this video.
7:00Building and deploying an AI agent is
7:02actually a lot like hiring a new
7:03employee, because when you bring someone
7:05new into the business, you explain their
7:06role and responsibilities, you give them
7:08access to the systems that they're going
7:09to need, and then you trust them to
7:11handle tasks on their own. It's the
7:13exact same process with AI agents. You
7:14tell them what they're supposed to do,
7:16you give them access to the tools they
7:17need, and then they can work on their
7:19own independently. The difference is
7:20that they work around the clock, they
7:22can be copied instantly, and they cost a
7:23tiny fraction of what a human does. This
7:25is exactly why understanding how to
7:26build and deploy these digital workers
7:28is becoming such a crucial skill.
7:30Whether you're an entrepreneur looking
7:31to scale your business, or an employee
7:33wanting to become irreplaceable at your
7:34job, knowing how to create these things
7:36is genuinely one of the biggest
7:37advantages that you can have right now.
7:42All right. So, now that you understand
7:43what AI agents are and how they're
7:44different from basic chatbots, let's
7:46look under the hood and figure out how
7:47they actually work. Because just like
7:49humans need certain things to do their
7:50job, a brain to think, some memory to
7:52remember stuff, and tools to be able to
7:54work with, AI agents need specific
7:55components to function as well. There
7:57are five key parts that make up an AI
7:59agent. Let me walk you through on each
8:00one. First, every agent needs a brain.
8:02In the AI world, these are called large
8:04language models, or LLMs for short.
8:06You've probably heard of these already.
8:07We've got GPT-5 from OpenAI, Claude from
8:09Anthropic, and Gemini from Google. These
8:11are all LLMs, and you can think of the
8:13LLM as a super intelligent assistant who
8:15can understand your instructions in
8:17plain English and figure out how to get
8:18things done from there. It's the
8:20intelligence that powers everything
8:21else. And without the brain, all the
8:23other parts of this will be useless,
8:24like having a desk full of office
8:26supplies, but no one needed to actually
8:27use them. Secondly, the brain needs
8:29instructions on how to actually behave.
8:30This is what we call writing a prompt.
8:32So, writing a prompt is essentially how
8:34you program the behavior of your agent,
8:36but instead of writing complicated code,
8:37you're just writing clear instructions
8:39in normal [music] language to them. This
8:41is what makes building with AI so
8:42accessible to people who aren't actually
8:44programmers, because the way you tell an
8:45agent what to do isn't through code,
8:47it's through these well-crafted
8:48instructions that anyone can write.
8:50We'll get much deeper into this when we
8:51start building. Thirdly, agents need
8:52memory. Imagine trying to have a
8:54conversation with someone who completely
8:55forgets everything you said 30 seconds
8:57ago. It'd be impossible to get anything
8:58done. Memory allows your agent to
9:00remember what you just talked about,
9:01keep track of tasks that they're working
9:03on, and build on previous conversations
9:05as well. The good news here is that most
9:06agent platforms handle this memory
9:08automatically for you in the background,
9:10so you don't really need to worry about
9:11setting it up for yourself. Fourth, we
9:12have knowledge. Now, the AI models like
9:14GPT and Claude are trained on massive
9:16amounts of data from the internet, but
9:18that training data has a cutoff point,
9:19and there's a lot of stuff that they
9:20just don't know. More importantly, they
9:22don't know anything specific about the
9:23business that you're trying to help.
9:25They don't know about their products,
9:26they don't know about their services,
9:27they don't know about the policies or
9:28your pricing. So, just like you're
9:30training your employee with
9:31company-specific materials, you can give
9:33your AI agent additional knowledge
9:34through things like PDFs of documents,
9:36spreadsheets with product information,
9:37customer service transcripts, really any
9:39text-based information that you want it
9:41to have access to. Without this added
9:43knowledge, your agents will be limited
9:44to just general information and couldn't
9:46handle the specific tasks a business
9:48actually needs. And fifth, and this is
9:49the most exciting part, we have tools.
9:51Tools are what transform an AI agent
9:53from something that could just chat into
9:54something that can actually get things
9:55done in the real world. Think of tools
9:57like giving your digital employee access
9:59to different software and systems. Just
10:00like you might give a new hire access to
10:02your email, your calendar, and a CRM,
10:04you give an AI agent access to digital
10:06tools so they can take real actions.
10:08These tools let your agent do things
10:09like check real-time data, update
10:11databases, send messages and
10:12notifications, create documents, make
10:14phone calls, anything you can do on a
10:16computer, you can potentially give an
10:18agent the ability to do that as well.
10:19The really powerful part is when agents
10:21use multiple tools to solve complex
10:22problems, just like how we use multiple
10:25different websites and apps for when
10:26we're doing our own work. Now, here's
10:27the practical takeaway from all of this.
10:29While an agent has these five
10:30components, the brain, the prompt, the
10:32memory, knowledge, and the tools, you
10:34don't actually have to worry about all
10:35of these five things equally when you're
10:37building. The brain is handled by
10:39choosing which AI model to use, and
10:40honestly, any of the top models work
10:42great, and the memory is handled
10:43automatically by the platforms that you
10:45build on in most cases, which leaves you
10:47with what I call the three ingredients,
10:48the three things that you actually need
10:50to focus on as an AI agent builder. And
10:51that is prompting, how you instruct the
10:53agent to behave, kind of the glue that
10:55sticks it all together, knowledge, the
10:57external information that you give it
10:58access to, and three, the tools, the
11:01actions that you want it to be able to
11:02take. So, write that down, prompting,
11:04knowledge, and tools. That framework is
11:05going to guide everything we do in the
11:07build section of this video.
11:11All right. Now, we need to go even
11:12deeper on tools because they're honestly
11:13the most powerful part of AI agents.
11:15That's what separates a basic chatbot
11:17from a genuinely useful digital worker.
11:19But to really understand how tools work
11:21and to be able to build your own
11:22powerful agents later, we need to take a
11:23few steps back and cover some of the
11:25basics of how software and the internet
11:27actually work. Now, I know that might
11:29sound intimidating, but this is probably
11:30the most technical section of the entire
11:32video. But I promise you, once you
11:33understand this stuff, it's like having
11:35a superpower. It is the foundation of
11:36being able to build any kind of software
11:38and build apps for yourself and for
11:39other people. Everything else in this
11:41video is going to make so much more
11:42sense, so stick with me here. So,
11:43remember how we said that tools are what
11:44allow agents to take action, to actually
11:46do things rather than just chat. Well,
11:48the way agents actually do work online
11:50is pretty similar to how you and I do
11:52things online, too. But there's one key
11:53difference. Instead of clicking buttons
11:55and typing into forms and navigating
11:56around websites, agents use something
11:58called API. Now, before your eyes glaze
12:00over, let me show you what I mean.
12:01Because you already use APIs every
12:03single day, you just don't realize it.
12:05So, every time you do anything on the
12:06internet, you're actually making dozens
12:07of what we call requests to APIs and
12:10getting responses back. It's all
12:12happening behind the scenes for you,
12:13though. So, let me give you a real
12:14example. When you click on this video to
12:16watch it, here's what actually happened
12:17behind the scenes. Your browser sends a
12:19request to YouTube servers, essentially
12:21saying, "Hey, I want to watch this
12:22video." YouTube servers receive the
12:24request, found all of the data needed
12:26for this video, and then sent that back
12:28to your browser, to you, as a response.
12:30Then your browser took all of that
12:31information, unpacked that data, loaded
12:34everything up in front of you, and then
12:35started playing the video for you. And
12:37that whole request-response pattern
12:38happens with almost everything [music]
12:40you do online. If you open up Instagram,
12:42you're sending a request for your feed
12:43to be loaded, and the servers respond
12:45with all of those posts and stories.
12:46[music] If you're sending a tweet,
12:47you're sending a request that contains
12:49your tweet data, then Twitter servers
12:50save it and respond confirming that it
12:52worked. If you're checking your email,
12:54you're requesting your latest messages,
12:55and Gmail servers are responding with
12:57all of your emails in your browser as
12:58loading them. It's just like computers
13:00talking back and forth, requesting
13:01things and responding to those requests.
13:03We get nice-looking websites and apps
13:04that make it all feel simple, but under
13:06the hood, it's all just this
13:07request-response conversation that's
13:09happening constantly. [music]
13:10These requests and responses happen
13:11through what we call APIs, or
13:13application programming interfaces. And
13:15I know that sounds technical, but think
13:16about APIs as like waiters at a
13:18restaurant. You tell the waiter what you
13:20want, the waiter takes your order to the
13:21kitchen, the kitchen prepares it, and
13:23the waiter brings your food back to you.
13:25An API works in the same way. They take
13:27your request to the server, the server
13:29does whatever work is needed, and the
13:30API brings back that response to you.
13:32Now, there are two main types of
13:33requests you can make through APIs, and
13:35this is really worth noting down. You
13:37have get requests, which is when you're
13:38asking to get information from
13:40somewhere, like [music] checking the
13:41weather or looking up a stock price or
13:44loading this video. You're requesting to
13:46receive data. Post requests, on the
13:48other hand, is when you are sending
13:49information for the server to do
13:51something with, like posting a tweet or
13:53sending an email or uploading a photo.
13:55You are posting data for someone else to
13:57store and process for you. So, you've
13:59got get and you have post, [music]
14:00requesting data and sending data. Write
14:02those down because you're going to be
14:03seeing them a lot. All right, so here's
14:04where this becomes super relevant to AI
14:06agents. AI agents use the exact same
14:08APIs as their buttons to do things. When
14:11we talk about giving AI agents tools,
14:12[music] what we're really doing is
14:14giving it the ability to make these API
14:16calls themselves when they think it's
14:17necessary. Each tool an agent has access
14:19to is essentially an API that it can
14:21call to either get information or
14:23[music] send information somewhere else.
14:24Now, these kinds of tools come in two
14:26different flavors. Firstly, you've got
14:27pre-made integrations. These are tools
14:29that someone else has already built and
14:30packaged up nicely for you into an API.
14:32These are things like Google Calendar
14:34integrations or Gmail [music] or Slack.
14:36The hard work of building and figuring
14:37out the API is already done. You just
14:39kind of plug into it and your agent can
14:40use it. You can think of these as like
14:42buying a ready-made meal. Everything has
14:43already been prepped for you, you just
14:44kind of heat it up and eat it. On the
14:46other hand, you've got custom tools that
14:47you build yourself. This is when you
14:49need your agent to do something specific
14:50that it doesn't have a pre-made
14:51integration for. In this case, you need
14:53to build the tool yourself, as we're
14:54going to go into later, and set up the
14:56API connection to your agent manually.
14:58You can think of this as like cooking
14:59from scratch. It's more work, but you
15:00can make exactly what you want. Both
15:02approaches work great, but when we get
15:03to the build section, I'll show you how
15:04to use pre-made integrations and how to
15:06create custom tools from scratch, and
15:08it's much easier than it sounds,
15:09especially with the no-code platforms
15:11that we're going to be using. The
15:11important thing to understand right now
15:13is that any action an agent takes,
15:14whether it's sending an email, checking
15:16a calendar, updating a spreadsheet,
15:18whatever, it's doing it by calling an
15:19API, by making one of these requests and
15:21getting a response back. And once you
15:23understand that, you start to see the
15:24internet completely differently, where
15:26every action online is just requests and
15:28responses, which means that if you can
15:30identify the right API, then you can
15:32build a tool that allows your agent to
15:34automate almost anything.
15:38Okay, so now you understand that APIs
15:40are how the internet works. The next
15:41question is, how does an AI agent
15:43actually know how to use a tool? Because
15:45if you think about it, you can't just
15:46point an agent at an API and expect it
15:48to figure everything out. It needs to
15:49know what the tool does, how to use it
15:51properly, and what information to send
15:53to it in order to get it to work. This
15:55is actually a lot simpler than it
15:56sounds, and it's one of the things that
15:57makes AI agents so powerful. So, for a
15:59tool to work with an agent, it only
16:01really needs to know three things.
16:03Firstly, what the tool does, which is a
16:05clear description of the tool's purpose,
16:06like, "This tool sends an email." Or,
16:09"This tool checks calendar
16:10availability." Secondly, what input the
16:12tool needs, what information does it
16:14actually require to work? An email tool
16:16might require the recipient's address, a
16:18subject line, and the message body. A
16:20calendar tool might require a date range
16:21to check. And thirdly, what does the
16:23tool actually return? So, what does the
16:25tool give back to the agent after it
16:27runs? The email tool might return a
16:29confirmation that the message was
16:30actually [music] sent. The calendar tool
16:32might return a list of available time
16:34slots. And that's it, really. You've got
16:35the description of the tool, the inputs
16:37it expects, and the outputs. [music]
16:38Now, here's the cool part. The way you
16:39provide information to an agent isn't
16:41through complicated code, you're
16:42essentially just explaining how to use
16:44the tool in plain language, just like
16:46you'd explain it to your new employee.
16:47You write something like, "This tool
16:49sends an email. It needs three inputs,
16:50the recipient's email address as text,
16:52the subject line as text, and the
16:54message body as text as well, and it
16:56returns a confirmation that the email
16:57was sent successfully." The agent can
16:59read that description, and it genuinely
17:01understands it. It knows what this tool
17:03is for, what it needs to make it work,
17:05and what to expect back from it. There's
17:06a standard format for writing these
17:08descriptions known as a schema, [music]
17:09and I know schema sounds technical and
17:11scary, but it really is just a
17:12structured way of writing out those
17:14three things, what the tool does, what
17:15it needs, and what it returns. And the
17:17great news is that most of the no-code
17:18platforms we'll be using actually
17:19generate these schemas automatically for
17:21us, so you won't have to write them from
17:22scratch, but it helps to know that they
17:24exist [music]
17:25and what they're doing because if an
17:26agent is using a tool incorrectly, it's
17:28usually because the description isn't
17:30clear enough. Now, here's where the
17:31magic actually happens. Modern AI models
17:33like GPT-5 and Claude are able to just
17:35read these tool descriptions, they can
17:37understand them well enough to figure
17:38out both how to use the tool and when to
17:41use it, when it should actually be
17:42triggered in a conversation. So, let me
17:44show you what I mean with this simple
17:45example. Say you've given your AI agent
17:47a tool with the description that says,
17:48"This tool checks today's weather for
17:50any city." The tool needs one input, the
17:51name of the city as text, and it returns
17:54the current weather conditions. Now,
17:55someone chats to your agent says, "Hey,
17:56what's the weather like in Tokyo right
17:58now?" Here's exactly what happens inside
18:00the agent's brain. First, it looks at
18:01the message and understands that this
18:03person wants to know about weather. Then
18:04it looks through all the tools it has,
18:06and it might have 10 of them, and only
18:07one of them is the weather one. And it
18:08sees one tool description mentioning
18:10weather. It thinks, "Okay, this is
18:11probably the one I need." Then it looks
18:13further, and it checks what inputs that
18:14tool requires. It sees that it needs a
18:16city name. Then the agent looks back at
18:18the message, extracts Tokyo as the
18:20relevant city, and makes the API call to
18:22the weather API with Tokyo as the input.
18:25The API goes off, gets the weather data,
18:26and then sends back a response, probably
18:28a bunch of technical data about
18:30temperature and humidity conditions, all
18:32of that. And when the agent receives the
18:33response, the clever part is that it
18:35doesn't just dump all of that raw data
18:37on the user, it takes the information
18:38and writes a natural, conversational
18:40reply like, "It's currently 72° and
18:43sunny in Tokyo with a light breeze." So,
18:45what we see here is that the agent
18:46understood the intent, it found the
18:48right tool, figured out the inputs, made
18:50the call, and then translated that kind
18:52of technical database response into
18:54something actually useful for the user
18:55based on what they asked for, all
18:57automatically. And this is what makes AI
18:58agents so different from the software
19:00that we've had before. Traditional
19:02software needs you to click the exact
19:03buttons and fill in the exact forms,
19:05whereas agents can understand what
19:07you're trying to accomplish and figure
19:08out how to use their tools to get it
19:10done. When you really get this, you will
19:11never see technology the same way again.
19:13The combination of language
19:14understanding and tool use is genuinely
19:16a new kind of capability. And the better
19:18you get at setting up tools with clear
19:19descriptions, the more reliably your
19:21agents will be able to use them. In the
19:22builds later, you'll see exactly how to
19:24set up tools in practice, and you'll see
19:26the small changes to descriptions that
19:27can make a huge difference in how well
19:29the agent uses them. But for now, just
19:31understand the core concept. Clear
19:32descriptions are how agents know what
19:34their tools do and when to use them.
19:38All right, so now you understand how an
19:39agent uses a single tool. It reads the
19:41descriptions, figures out when to use
19:43it, grabs the right inputs from the
19:44conversation, makes the API call, and
19:46turns that response into a helpful
19:48answer. But obviously, having an AI
19:49agent that can only check the weather or
19:51do one thing isn't particularly
19:52impressive. The real power of AI agents
19:54comes when you give them multiple tools
19:56and the ability to use them together to
19:58accomplish their complex goals. Do you
20:00remember our definition from earlier? An
20:01AI agent is a digital worker that can
20:03understand instructions [music]
20:04and take actions to complete tasks. When
20:06you give an agent a task, it will try
20:08its best to complete it. But if it
20:09doesn't have the right tools available,
20:11it can't do much. It's like asking an
20:12employee to send a report to a client
20:14but not giving them access to their
20:15[music] email. Doesn't matter how smart
20:17they are, they can't do the job without
20:18the tools. The more tools you give to an
20:20agent, the more flexibility it has to
20:22solve problems. And this is where things
20:23start to get really interesting. So let
20:25me give you a real example from my own
20:26business to show you what I mean. Say I
20:28give an agent this task, which is find
20:29AI startups that have raised money
20:31recently, put them on a spreadsheet, add
20:32a summary of [music] each business, and
20:34email me the link when you're done. Now
20:35that's not a simple one-step task.
20:37There's actually a lot going on there.
20:38And when you give an AI agent a complex
20:40task like [music] this, and you provided
20:42it with multiple tools, it will actually
20:43break down the problem and plan out how
20:45to solve it. Kind of like how we you or
20:46I would approach it. The agent might
20:48think, "Okay, I first need to find AI
20:50startups who have raised money. So I'll
20:51use the web search tool, and I'll use
20:53that to run some searches about AI
20:54startups and [music] their recent
20:56funding rounds. Then I need to put them
20:57into a spreadsheet. I have a Google
20:59Sheets tool that can create new
21:00spreadsheets and add new rows. I'm going
21:02to use that. For each company I find,
21:03I'll need to add them as a new row in
21:05the spreadsheet with the information.
21:06Then I need to add summaries of each
21:08business. I can write those summaries
21:09myself based off what I found in my
21:11research. Finally, I need to email the
21:13link. I have a Gmail tool, so I'll use
21:15that to send the spreadsheet link." And
21:16then it just does all of that step by
21:18step using different tools in sequence,
21:20working towards the goal that you've
21:21gave. This is when you really start to
21:23see why they call these things digital
21:24workers. They can plan out multiple
21:26steps and execute them in order, use
21:28different tools as needed, basically
21:29approaching problems the way a human
21:31would. Now the really cutting edge stuff
21:32happening right now is with what are
21:33called reasoning models.
21:34>> [music]
21:35>> These are newer AI models that are
21:36specifically designed to be better at
21:38this kind of multi-step planning and
21:39problem solving. What makes them special
21:41is that they don't just plan once and
21:43execute. [music] They can actually
21:44reflect on the results as they go and
21:45adjust their approach if something isn't
21:47working. So let's say an agent runs that
21:48first web search for AI startups raising
21:50money, and it doesn't get very good
21:52results. A basic agent might just push
21:53forward with bad data, but a reasoning
21:55model might think, "Hmm, those results
21:57aren't that good. Let me try a different
21:58[music] search query. Or maybe I should
22:00search for recent funding announcements
22:02specifically." It's that ability to
22:03plan, execute, reflect, and then replan
22:06that makes these agents capable of
22:08complex tasks without constant
22:09hand-holding. Now I should be honest
22:11with you here, this technology isn't
22:12perfect yet. These multi-step tasks can
22:14be incredibly unreliable, and agents
22:16definitely still make mistakes on
22:18complex workflows. For anything
22:19important, you still typically want
22:20human oversight so that you can catch
22:22the errors before they actually cause
22:23problems. But things are moving
22:24incredibly fast, and the agents that we
22:26can build today are dramatically more
22:27capable than what we had even a year
22:29ago. And if we look a bit further ahead,
22:31we're already seeing the next evolution,
22:33which is multiple agents working
22:34together. Instead of one agent trying to
22:36do everything, you can have multiple
22:37specialized agents that each focus on
22:39one thing, kind of like having different
22:41employees with different job roles. So
22:43you might have a research agent that's
22:44really good at finding information, a
22:46writing agent that's optimized for
22:47creating summaries and content, and
22:49email agent that handles all the
22:51communication stuff. And the cool part
22:52is that one agent can actually use the
22:54other agents as a tool. So your main
22:56agent receives the task and delegates
22:57specific parts to the specialist agents
22:59like, "Hey, research agent, go find me
23:01these companies. Hey, writing agent,
23:03take this information and create
23:04summaries." Each agent focuses on what
23:06it does best, and together they
23:08accomplish more than any single agent
23:10could. This is exactly what companies
23:11like Microsoft, Salesforce, and Google
23:13are bidding heavily on right now. Entire
23:15systems [music] of AI agents working
23:17together to handle complex business
23:19processes. Now we're not going to build
23:20multi-agent systems in this video.
23:22That's a bit more advanced stuff that
23:23you can do explore once you've got these
23:24fundamentals down, but I want you to
23:26know that it exists and where all of
23:27this is heading. For now, let's keep
23:29building your foundation. Next up, we
23:31need to talk about the different ways
23:32people actually interact and use AI
23:34agents.
23:38All right, so we've covered what AI
23:39agents are, how they work, and how they
23:40use tools to get things done. Now we
23:42need to look at the different ways that
23:43AI agents are actually used in the real
23:45world, because not all agents work in
23:46the same way. There are basically two
23:48main categories that you need to
23:49understand. First, you've got
23:50conversational agents, and these are
23:52agents that humans interact with
23:53directly. So someone is actually there
23:55chatting with the agent, giving it
23:56instructions, asking questions, and
23:58getting responses back. You've probably
23:59seen these in a bunch of places already,
24:01like chat widgets on websites where you
24:03type messages back and forth, WhatsApp
24:04bots that you can text, Instagram DMs
24:06that respond automatically, or even
24:08voice agents that you can actually call
24:10and have a conversation on the phone. In
24:11all of these cases, there's what we call
24:13a human in the loop that's actually
24:15sending messages to the agent, and the
24:16agent is responding. It's a
24:17back-and-forth conversation, just like
24:19you'd have with another person, except
24:20the other side is an AI. Open AI's
24:22custom GPTs are great example of this.
24:24You can create an agent and then chat to
24:26it directly through the ChatGPT
24:27interface. Secondly, you've got
24:29automated agents, and this is where
24:30things get a little bit more
24:31interesting, because with automated
24:33agents, there's actually no human
24:34sitting there sending a messages
24:36directly. Instead, the agent is part of
24:38a larger system or a workflow, and it
24:40gets triggered automatically when
24:42certain things happen. If you think
24:43about it this way, conversational agents
24:45wait for a human to talk to them.
24:46Automated agents wait for an event or a
24:48condition to trigger them, and then they
24:50spring [music] into action on their own
24:51accord. For example, you could have an
24:53agent that triggers whenever a new lead
24:55fills out a form on your website. The
24:57moment that form submission comes
24:58through, the agent wakes up, looks at
25:00the lead's information, does some
25:01research on them, decides if they're
25:03qualified or not, and then updates the
25:04CRM with its findings. All of this
25:06without any human pressing a button or
25:08sending [music] a message directly to
25:09it. Or you could have an agent that runs
25:11every morning at 9:00 a.m., it checks
25:12your calendar for the day, looks up
25:14information about the people you're
25:15meeting with, and then sends you a
25:16briefing email before your first call.
25:18Again, completely automatic. You don't
25:20have to ask it to do anything. It just
25:22runs on a schedule or a different
25:24trigger. This is a really important
25:25distinction because it opens up a whole
25:27world of different use cases. Automated
25:29agents can handle processes [music] that
25:31happen constantly in a business. These
25:32are things that would be tedious or
25:34impossible for humans to monitor and
25:35respond to 24/7. In the building section
25:37of this video, you're going to get
25:39hands-on experience of building both
25:40types. We'll be building four different
25:41types of agents, three conversational
25:43and one automated, so you'll see exactly
25:45how each works in practice.
25:46Understanding this distinction is
25:47important because it shapes how you
25:49think about what's possible. A lot of
25:50people only think about chatbots and
25:51agents that you talk to, but some of the
25:53most valuable applications are agents
25:55that work completely in the background,
25:56handling tasks that you'd never want to
25:58do manually. All right, so we are almost
25:59done with the foundations. Let's just
26:01look at some real-world examples of how
26:03businesses are actually using these
26:04agents right now, and then we'll do a
26:06quick knowledge check to make sure
26:07you've got everything here before we
26:08jump into the building.
26:12Okay, so before we wrap up the
26:13foundations, let's quickly look at some
26:15real examples of how AI agents are being
26:17used by businesses right now. Seeing
26:18these concrete use cases helps all of
26:20this theory stuff to click into place.
26:21And these are all the kinds of things
26:22that we're going to be building in the
26:23build section. First use case is
26:25copilots, and these are AI agents that
26:27help someone in a specific role to do
26:29their job more effectively. For example,
26:31a customer support sales rep could have
26:32a copilot that would be able to
26:33instantly search the knowledge base of a
26:35company for answers mid-call, so it
26:37helps them to do their job. Same thing
26:38with the sales rep, they can have a
26:40copilot that gives them access to
26:41everything they need to know about the
26:42lead, and maybe can do research for
26:44them, and so on. In fact, in our final
26:45build, we'll be creating a sales copilot
26:47that was able to research leads and
26:48generate briefings so that the sales
26:50reps can walk into every call feeling
26:52fully prepared. Second major use case is
26:54lead generation and appointment setting
26:55agents. This is probably the most common
26:57business use case right now because it
26:58directly impacts revenue. When someone
27:00visits a website at 11:00 p.m. on a
27:02Saturday with questions, instead of
27:03having to wait until Monday and probably
27:05forgetting about it, an AI agent can
27:07immediately get back to them and answer
27:08the questions, capture their
27:10information, and even book appointments
27:11by checking calendar availability in
27:13real time. These days, speed to lead, or
27:15the speed at which you can reply to
27:17leads, is everything in sales, and the
27:19business who responds first wins the
27:20deal most of the time. These agents are
27:22starting to show up everywhere, website
27:24chat widgets, WhatsApp, Instagram DMs,
27:26even over the phone. And the point is
27:27that 24 hours a day, they are always
27:29ready to engage potential customers. In
27:30build two, we're creating a website chat
27:32agent with some very powerful tools that
27:34handles lead generation for a solar
27:35company. Third use case is research and
27:37qualification agents. These are agents
27:39that gather more information about leads
27:41so a business can prioritize the best
27:42opportunities. Sometimes a lead comes in
27:44with just basic details, a name, an
27:46email, a phone number, not too much to
27:47work with. A research agent can
27:49automatically dig deeper, finding
27:51LinkedIn profiles, company information,
27:52collect together context that helps the
27:54sales team know who they're going to be
27:55talking with. Or you can go even more
27:57direct and have an agent reach out by
27:58SMS
28:01or over the phone and ask them some
28:03qualifying questions. This is getting
28:05the information straight from the
28:06source. In build three, we're creating a
28:07voice agent that automatically calls new
28:09leads to qualify them, gathering that
28:10extra information to decide if they're
28:12good fit or not before human even needs
28:14to get involved. And fourth is voice
28:15agents more broadly. This is one of the
28:17fastest growing areas in the AI space
28:19right now, and the ROI with businesses
28:21has been proven. One of the startups
28:22Retail AI is processing over 40 million
28:24AI phone calls per month. Businesses are
28:26using these voice agents to answer
28:27inbound calls, qualify leads, book
28:29appointments, and even make outbound
28:31follow-up calls as well. The economics
28:32of this stuff is pretty compelling, with
28:34Client AI reporting that the AI agent
28:35handles work that required previously
28:37700 customer service reps with fast
28:39response times and higher customer
28:41satisfaction scores as well. We've got
28:43voice AI woven all through the builds
28:44that we're going to be doing, so you're
28:46going to get plenty of hands-on
28:47experience with it. So these aren't
28:48hypothetical future applications.
28:50Businesses are deploying agents like
28:51this right now and seeing incredible
28:53results. And you're about to learn how
28:54to build them. So let's do a quick
28:55knowledge check to make sure that
28:56everything in this foundation
29:00All right, we've covered a lot of ground
29:01in this foundations chapter, but before
29:02we jump into building these agents, I
29:04want to make sure that everything is
29:05landed for you. Because here's the
29:06thing, if you don't have these concepts
29:08down solid, the build section is going
29:09to feel very confusing. You'll be
29:11following along but just clicking
29:12buttons without really understanding
29:13why, and that's not going to help you
29:15when you're trying to build your own AI
29:16agents later. So let's do a quick
29:17knowledge check. I'm going to ask you a
29:18few questions, and you're going to
29:19genuinely try to answer them before we
29:21move on. Question one, what's the
29:22difference between a chatbot and an AI
29:24agent? Question two, what are the three
29:26ingredients you control when building an
29:28AI agent? Question three, what are the
29:29two main types of API requests? Question
29:31number four, what three things does an
29:33AI agent need to know about a tool to
29:35use it? Question five, what's the
29:36difference between a conversational
29:38agent and an automated agent? If you
29:40couldn't answer all of those
29:40confidently, I'd genuinely recommend
29:42going back and rewatching the sections
29:43that you are fuzzy on. So pause the
29:45video, go back, take some [music] notes.
29:47do not rush this. The foundations are
29:49what makes everything else click in this
29:50course. And trust me, once you get into
29:52the builds, it'll all make much more
29:53sense if you've got the stuff locked up.
29:55But if you're feeling solid on all of
29:56that, let's get into the fun part. Time
29:58to actually build some agents.
30:04All right, guys. So, jumping into build
30:05number one, we're starting off with a
30:07Telegram receipt analysis assistant.
30:09This is a pretty good general-purpose
Build 1: Telegram Receipt Analysis Assistant
30:11assistant that can be uh created quite
30:13easily on N8N, as I'm going to show you.
30:14And it shows you how to do a few things
30:16like extract information out of images,
30:18which is a really valuable skill to
30:19have. It shows you how to set up a chat
30:21loop that works on Telegram, so you can
30:22do any kind of Telegram deployments for
30:24your apps. And most importantly, what
30:25I'm going to teach you here, uh this is
30:26actually the second time I've shot this
30:28tutorial because I went through it the
30:29kind of traditional way of showing you
30:31how to build these nodes one by one and
30:33stack them together and connect the
30:34variables. I got to the end and I was
30:35like, that took a really long time to do
30:37a relatively basic system. And so, I've
30:40decided to take you more on the route of
30:42what the future of AI automation and
30:44building automations like this looks
30:46like. And that is using AI tools to
30:48research and plan out your automations.
30:50That's step one. I've created a GPT for
30:52you that you're going to be able to use
30:53for that. And then feeding it into a
30:55spec writing tool, which is basically
30:57taking in all the research and planning
30:58I've done, uh putting it into a few
31:00fields, and then it's going to print out
31:02a perfect N8N spec to actually pass to
31:04N8N's AI, and it will actually do a lot
31:07of the hard work for you. So, we're
31:08shifting in the AI automation space
31:10right now from needing to know every
31:11single setup and and how to connect each
31:13and every node to I know generally what
31:15I want and I can use AI to help me
31:17explore and research and figure out the
31:18best way to do that. And then I'm going
31:20to be heavily using the N8N AI feature
31:22within it to build this out for me. And
31:24when things go wrong, loop around and
31:26around and around until it gets to the
31:27point that I'm looking for. Now, this is
31:29going to be a much more future-proof and
31:31honestly faster way of learning the
31:32stuff. So, I'm excited to show you some
31:34of the tools that I've put together to
31:35help you guys learn this faster. Okay,
31:36the first handy AI tool that you're
31:38going to be using
31:38>> [music]
31:38>> in building out these automations is
31:40this GPT I've created called your AI
31:42automation CTO. This is as if you've got
31:44myself or someone else who's really
31:45familiar with N8N, um who can research
31:47the web and and help you to explore and
31:49sort of ask you the right questions so
31:50that you can get to the right kind of
31:52concept for your N8N automation. So, to
31:55save time, I've put this all in its
31:56place already. But this basically has
31:58all of the N8N documentation as a
31:59knowledge base, and it's been prompted
32:01to guide you through steps to extract
32:02the right information from you. So, you
32:04can click this button here, help me plan
32:05an N8N automation idea, and that will
32:07start the process that you're about to
32:08see that I've already gone through. The
32:09link to use this GPT along with the side
32:11the other tool we're going to talk about
32:12and all of the resources for this
32:14tutorial are going to be on my school
32:15community in the first link in the
32:16description. Head to the classroom, head
32:18to the AI foundation section, and you
32:20will see the full course for this video
32:21broken down there in chunks with the
32:23right resources at every step. So, make
32:25sure you go and grab that link now, and
32:27you can follow along. But here's how you
32:28use this GPT to plan out an automation.
32:30So, in this case, I said help me plan an
32:32idea. It asked me a few questions. I've
32:34said, this is an N8N automation for a
32:36Telegram-based assistant. Nice, that's a
32:37good front door. Uh it sort of runs
32:39through and just sort of verbal diarrhea
32:41of all the stuff that it knows about it,
32:42repeating what it's found in the
32:43documentation. And then it breaks down a
32:45practical blueprint for it. And then it
32:47asked me directly what questions it
32:48needs to move forward. So, I've gone
32:50down here and given it the feedback.
32:52It's triggered by a new Telegram
32:53message. It should be connected to a
32:54Google Sheet. Should be able to take in
32:56pictures as an input of receipts and
32:57then be able to log that info in a
32:59spreadsheet for company expenses. If
33:01over $500, then email my CFO via Gmail.
33:04I want to be able to chat to the data in
33:05the spreadsheet as well. Then it
33:06processed that, looked at its
33:07documentation, and then planned out
33:10what's going to be in the Google Sheet.
33:11This actually got a little bit more
33:12complex than I probably would have done
33:13this uh myself possible to get you
33:15through. But this is going to be
33:16interesting to see just how much more
33:17complex using AI as our assistant we can
33:20make this in even a a shorter amount of
33:21time than we would have before. So, it
33:23starts planning out the N8N
33:24architecture, plans out the
33:26conversational structure, and then it
33:28gets down to the bottom here when it
33:29asks me two tiny details, the company
33:32default currency and the CFO email
33:33address. I've given those here. And
33:35then, as you see on the side here, we
33:37have a different tool that I've created
33:38that takes in a bunch of fields about
33:40the automation purpose, the trigger
33:41details, the desired outcome, the
33:43specific providers, and the usage
33:45pattern, model preferences if you have
33:46any, and additional quotes. And what
33:48this does is runs it through a specific
33:50prompt that I've created in the
33:51background here that's going to take all
33:52that information and create the perfect
33:54prompt to pass into N8N. So, we've got a
33:56kind of like lot of prompt chaining here
33:58going on. But this is set up to be as
34:00usable as possible for you as a
34:01beginner. So, this GPT has been prompted
34:03to give you the right fields for this.
34:05So, as you can see here, I was just able
34:07to copy and paste in the automation
34:09purpose to here, trigger details,
34:11desired outcome, [music]
34:12specific providers, and so on, all over
34:13into this. Run the tool. And here we
34:15have our N8N spec, which is spat out by
34:18this tool, which again you'll be able to
34:19get it in the resources on school. And
34:20then I can just come in here and copy
34:22this, command C. And you can see down
34:23here there's actually a button that
34:24allows you to switch. It'll probably
34:25appear like this for you. Um it's
34:27actually better to click on formatted
34:29and grab the markdown formatted version.
34:31And then what we want to do is head over
34:32to N8N. You can come here to get
34:34started, put in your company email, and
34:36go through the sign-up process until
34:37eventually you see the home page and it
34:39looks like this, obviously without all
34:40of the workflows in it. Then you want to
34:42come up here and click on create a
34:43workflow. And this takes us into the
34:45editor, which we'll do a bit of an
34:46orientation in a second, but I just want
34:47to get this started as quickly as
34:48possible. So, you can click on build
34:50with AI. You'll see that we get monthly
34:51credits here. And now this does have a
34:53limit on the number of credits you can
34:54use. I have this because I have a a
34:56business plan going. But if you come
34:57over to the pricing page, you can see
34:59that you can start a free trial with no
35:00credit card required, and you can get up
35:02to 50 AI workflow builder credits that
35:04will allow you to get started as quickly
35:06as possible following the workflow that
35:07I'm walking you through here. Then all
35:08you need to do is paste in that spec
35:10from the tool that we had before. So,
35:12scrolling down and grabbing the spec,
35:14hitting back over and pasting it in
35:15here, and hitting submit. Now, that's
35:16going to work away in the background
35:18using N8N's AI to analyze what you've
35:20asked it for. It's going to figure out
35:21the nodes that it needs, and then it's
35:22going to throw them all on the canvas.
35:24Yours may vary, but I will provide the
35:25exact prompt that I gave it in the
35:27resources on school so you can try to
35:28follow it as closely as possible. But
35:30the thing about this is that you need to
35:31be a little bit more flexible with how
35:33you think about it. There's There's no
35:34one right answer necessarily. There's
35:36definitely simplified versions. This one
35:37that I'm looking at here that it's
35:38generated for me is definitely on the
35:39more complex side of how you could
35:40approach something like this. But often
35:42the AI will actually opt for a lot more
35:44strict and kind of non-AI features to
35:46make it a lot more deterministic. Now,
35:47this is important because AI models
35:49themselves are language models are
35:52non-deterministic. That means that you
35:53can give it the same input and there's
35:54no guarantee that it would generate the
35:56exact [music] same output, which is
35:57going to be a bit of an issue when
35:58you're trying to build reliable business
35:59systems. And so, the N8N AI leaning
36:02towards uh things that are much more
36:03deterministic where possible means that
36:05it tries to shrink the room for error
36:06down, which is actually a good thing and
36:08good practice in building automations.
36:10So, while this would be possible to do a
36:11lot simpler, I'm going to kind of go
36:12with the flow here. When you're using
36:14the N8N AI builder, it'll leave you with
36:16a few things here like kind of to-dos,
36:18which uh the last few things that you
36:19need to link up correctly in order to
36:21get it to work. What I like to do is
36:22just give this a a sort of skim through
36:24and try to understand each of the steps
36:25it's doing, maybe ask a few questions to
36:27help understand it better, and then I
36:29can move forward with actually going
36:30into testing. So, we start here with a
36:32Telegram trigger. That's going to be
36:33what we set up where it's sent a
36:34message. We're doing some workflow
36:35configurations here like setting the
36:37Google Sheet ID and the drive folder.
36:39That's okay. It's actually good practice
36:40to have these set first because then you
36:42can just change one node and everything
36:44that references those downstream will be
36:46updated in one go. Then we have a check
36:48of message type, so it's going to look
36:49to see if the Telegram message was a
36:50photo or a message, which makes sense
36:52because we've kind of got two different
36:54modes for this, which is chatting to the
36:55data or we're going to be sending a
36:56receipt photo for extraction and logging
36:58in the spreadsheet. So, here we have it
37:00going to the spreadsheet and trying to
37:01pull all the data from the spreadsheet,
37:02which is what we want. Then we have our
37:04AI agent, which is prompted to uh answer
37:06questions, which makes sense. It's
37:07already got the Google Sheet data here.
37:09And then it's going to send the response
37:10back to Telegram, so that'll make sense.
37:12Then we have the extract receipt data.
37:13Now, this is a bit more complex, but
37:14it's telling the agent that it needs to
37:16analyze a receipt, extract the following
37:17fields, return a confidence score, and
37:20some more in details about the
37:21formatting of those responses as well.
37:22So, that all seems to be pretty good.
37:24We're using the Gemini 2.5 Flash model,
37:26which is what I actually put
37:27specifically in this section here around
37:30the model preference because we needed a
37:31multimodal model out of the box so that
37:33we could just use Google Gemini 2.5
37:35Flash, which is really cheap and
37:36affordable. Um that requires a little
37:38bit of researching or just chatting with
37:39the uh the assistant here to figure out
37:41which model would be best for this. But
37:43you can see here it's actually not using
37:44the current model, so I want to come
37:45down and select the right one. Now, for
37:47you guys, you won't actually have your
37:48Google account set up correctly, which
37:50is something we're going to do in a
37:51second. You will see in the N8N AI down
37:53here it'll be saying, "Hey, you need to
37:54set up your Google. Need to set up your
37:55Telegram. Need to set up your sheets,"
37:57which are all things that we're going to
37:58do shortly. Then in order to be able to
38:00take the information in that receipt
38:01image and then pass it further down, we
38:03need a receipt data parser, which is
38:05just going to make sure that it's
38:06sending the data based off that receipt,
38:08turning that image into what's called
38:10structured data or JSON here. And this
38:12means that the language model is going
38:13to fit all of that information into
38:15something that we can easily interpret
38:17and then use downstream as variables.
38:19So, this is a very helpful skill to know
38:21in automation, and that's using an LLM
38:23to turn some sort of unstructured data
38:25into structured data and then passing
38:27that downstream into what's called a
38:28parser. And the parser is going to take
38:31I'll be able to read this JSON right
38:32here and then give us variables that we
38:34get to play with downstream. So, it's
38:35very important and we'll be using this
38:37quite a lot. And then we have a little
38:39format message, so it's just taking the
38:40variables. So, you can see here already,
38:42we've taken these vendors and expense
38:44date and currency, and all those things
38:46that we just extracted with Google
38:47Gemini 2.5 Flash, and then passed it
38:49through that parser, and out came these
38:51variables that we can now use. And then
38:52in this case, we're just turning this
38:53into a little message that can be sent
38:55back via Telegram. And it's asking them
38:56to please confirm or edit, reply with
38:58confirm to accept or vendor with the
39:00changes if we want to edit. So, that's a
39:03nice little feature that I didn't
39:03actually have in the original version of
39:05this build. And it's going to send that
39:07message off. Nothing too fancy [snorts]
39:08there. Now, this is where things get a
39:09little bit more hairy, if I'm honest. I
39:11saw this and I was like, "Hmm, this is
39:13waiting for a user confirmation. It's
39:15waiting for a webhook call." And I
39:17didn't see this webhook call actually
39:19get used anywhere else. And so, [music]
39:20in my little skim over before, I went to
39:22the N8N AI and so I said, "Basically,
39:24explain this to me. I don't understand.
39:26Can you explain how the wait for user
39:27confirmation works?" It goes, "Great
39:28question. It works by this, this, this."
39:30And then it spotted an issue in its own
39:32workflow. So, the tricky part is that
39:34when a user replies to Telegram, that
39:35reply comes as a new Telegram message.
39:37It doesn't automatically go to the wait
39:39node's webhook. You need to bridge this
39:40gap. Then it gave me two options, and
39:42the first one seemed great, so I'm going
39:44to say, let's implement option A. And
39:46the thing is, as you're going through
39:47this yourself, I obviously have a bit
39:48more information on how this all works,
39:50you get to go through here at every step
39:52and explain, hey, what is an output
39:53parser, and what does that mean? You
39:55need to really, really get used to
39:56relying on this n8n AI, because it is
39:58going to be your best friend in learning
40:00this platform as quickly as possible. So
40:01here we can go, it's planning out the
40:03steps to implement option A.
40:06Okay, so now we actually get to an
40:07important decision that you need to make
40:09as the automation builder here, the one
40:11steering the ship, and that is here it
40:13is actually asking us to use another
40:15external platform called Redis, which
40:17I've just looked up and appears to be
40:18some kind of lightweight database
40:20service for managing real-time data. And
40:23if I look at the pricing, they do have a
40:24free tier, but if I'm being completely
40:26honest, guys, this is supposed to be the
40:27introduction tutorial for this video,
40:29and doing all of these external
40:31integrations is actually a little bit
40:32too much for just easing you into it.
40:34So, I'm going to show you how to
40:35actually go back and rethink this, and
40:37[music] go back to the GPT and ask it to
40:39plan it in a slightly different way, cuz
40:41this is a really good example of what
40:43these different kind of, when you're
40:44heavily using AI for planning and
40:46building, there's so many like I've
40:48actually done this multiple times, and
40:50every single time it's given me kind of
40:51a different way of doing it, like I said
40:52before. And so it's an important skill
40:54for you to have is to be able to go back
40:55to this planning phase. So I'm going to
40:57ask the GPT and say, hey, is there any
40:58way we can simplify this, like a single
41:00agent with a few tools, and taking out
41:02the complex functionality like the
41:03confirmation message. So if we send
41:05this, so here it's giving me two
41:06different options, a simple sort of
41:08faster version, and one with a bit more
41:09cautionary around receipts. So I'm going
41:11to say, let's go with option A, give me
41:12the fields to put into the form,
41:14referencing the form that I've got over
41:15here. Then I can just grab these one by
41:17one. So I've got these all filled in
41:18now, I can just run the tool again. And
41:20actually I see a few things in this plan
41:21that I'd like to remove as well, so I'd
41:23say, so my last touch up here is let's
41:24remove the Google Drive saving feature.
41:26Let's make it as agentic as possible
41:28with the sheets and Gmail tools all
41:29connected to the agent for simplicity.
41:31That's going to make the automation look
41:32a lot smaller and simpler. And let's
41:34also use Gemini 2.5 Flash for the model
41:36as it's multimodal. That means it can
41:38take both image and even video and text
41:40as inputs without an issue. So with all
41:42these added in now, I can click run
41:44tool, wait a few seconds, and we'll have
41:46our new brief to pass into n8n. So I'm
41:47going to copy this.
41:53And we're going to go back and create a
41:54new workflow, open up the n8n AI, and
41:57then paste that in again.
42:02Nice. And now as I said before, it's
42:03actually easier to have a lot of these
42:05things handled within this. So when you
42:07change it here, it automatically updates
42:08all of these, for example, the Google
42:10Sheets. I only want to set the Google
42:12Sheet value once, and then it can be
42:13passed down through everything, nice and
42:15easy. So it's good practice to have. So
42:16I'm going to ask it, can you set up the
42:17workflow configuration steps so that I
42:19can add most of these in one go. So and
42:21I'm and I'm sure you can see how much
42:22simpler we got this down. This is kind
42:23of what I was trying to show you, that
42:25there are very advanced and complicated
42:26ways of doing things, and then if you
42:27can prompt n8n or prompt the sort of
42:30spec writer that we have to opt for
42:32simpler and often more agentic ones,
42:34it's going to look a lot less complex.
42:35Cuz as you can see here, we're getting
42:37the agent to do a lot of the heavy
42:38lifting, and it has to decide when to
42:40use the sheets, when to use the Gmail
42:41tool, when to send a message back. And
42:44so this AI agent node here is able to
42:46intelligently use the right tools when
42:48needed, rather than having these big
42:49long chains of like JSON parsing, and if
42:53this happens and do that, which yes, it
42:54is more deterministic and likely more
42:56reliable. For most use cases like this,
42:58you can rely more on using intelligence
43:00and tokens rather than trying to strip
43:02it all down to the most deterministic
43:03setup possible. Here we can see we've
43:05narrowed this down to just setting up
43:06this node now. I'm going to hide the AI
43:08assistant for now. And now we have
43:09things like the CFO email, when I want
43:11to escalate it, where do I want that
43:12email to go? I can just plug it in here.
43:13What's the expense threshold for sending
43:15an email to my CFO? That's $500. Default
43:18currency, USD. Google Sheet ID, which
43:20we'll need to set up in a second. Sheet
43:21name, which is here. Sheet headers, so
43:24on. Now to get this working, all we need
43:25to do is configure each of these nodes
43:27so that we can give it a test. So I'm
43:28going to start with Telegram here.
43:30You'll need to come to create a new
43:31credential here, and you're going to go
43:33to Telegram. So you want to download and
43:34open up Telegram. It's free to use, you
43:36can get it on your phone or your laptop.
43:38Then to create a new bot, you're going
43:39to want to search up here for BotFather.
43:41Click on the chat here, and then you can
43:43come in and type new bot.
43:45And it's going to take us through a
43:46setup process to get this new bot set
43:48up. So what's the name? We can call it
43:50Biz Receipts
43:52Bot.
43:54Let's also call it Biz Receipts Bot.
43:57And there we go, just like that we have
43:59our token. I'm going to copy that, hit
44:01back to n8n here, paste in the access
44:03token, and then click save. So that's
44:05super easy compared to some of these. If
44:07you do need help at any point when
44:08you're getting your integration set up,
44:10n8n AI here is actually really helpful.
44:12You can click here, and it's going to
44:13use AI to look at the documentation, get
44:15you the latest information on how to do
44:17this. And if you get stuck, you can chat
44:18here. So again, learning to use AI at
44:20every step and rely on it to help you
44:22get through roadblocks is really
44:24essential. As you can see, it's got the
44:25exact steps we just went through. So
44:27we'll click save there. It's going to
44:28test it for us, make sure that it's
44:29working correctly, and we have this
44:31green box, so we're ready to go. So
44:32that's our Telegram bot set up just like
44:34that. It's triggered on message, and
44:35it's going to automatically download the
44:36files and images, which is great, makes
44:38it a lot easier for us. And then we want
44:39to work through the rest of these
44:41configuration steps, like firstly the
44:42Google Sheet ID. So we can make this a
44:44lot easier for us by clicking into here,
44:47grabbing these sheet headers, and then
44:49going to Google Sheets.
44:51Now one thing to note about using Google
44:53Sheets and anything kind of Google
44:54related, that in order to integrate it
44:56with n8n as quickly as and easily as
44:58possible, you need to go to what's
45:00called a Google Workspace. This is
45:01basically a business account on Google
45:03that allows you to access Docs and
45:04Sheets and stuff through your through a
45:06business account rather than a personal
45:08one. And it's really important that you
45:09do this. And set it up, it does have a a
45:1114-day free trial. Um you can try it
45:13free for 14 days. You can come on, get
45:15on the starter one here, and start a
45:16trial. I highly recommend you do that,
45:17or it's going to take you a lot more
45:19effort to get these integrated in a
45:20second. But in this case, I'm on my
45:22Morning Side AI account, so I've got
45:23that all set up. I'm going to go to a
45:25blank spreadsheet here, and paste in
45:27these fields that we had before.
45:28Actually, put them down here. And then I
45:30can just start to grab these fields out,
45:32start popping them in. Then I have all
45:33of these columns set up correctly in the
45:35sheet. I'm going to just bold them to
45:37make it easier to look at. I'm going to
45:38call this company expenses tracker, and
45:40I'm going to name this sheet one
45:42expenses. [music]
45:43Then I'm going to grab the URL of this,
45:45and double-click this segment of it. As
45:47you can see, after the slash D, we want
45:49to copy that ID,
45:51hit back to n8n. And in case you got
45:53lost there, I was grabbing the sheet
45:54headers out of this section here. And so
45:55then what I need to do is paste in our
45:57Google Sheet ID that we just took from
45:59the webpage there. We've got the sheet
46:00name set up as expenses, which we had
46:02correctly here. And then we have our
46:03workflow configured correctly like that.
46:05Now we've got a few more configurations
46:06to set up. We have firstly the Google
46:08Sheets. You can go to create a new
46:10credential here, and here you can see as
46:12it says sign in with Google, that's
46:13connected to that Google Workspace. So
46:15if you're trying to connect with a
46:15personal account, it's going to walk you
46:17through a much more complex setup, so
46:18please, please get that Google Workspace
46:20set up. It's going to take you a few
46:21minutes. Do that. It's got a 14-day free
46:23trial. Come back, sign in here with that
46:25same Google account you created on your
46:26Workspace, and then you will have
46:28correctly set up your Google Sheets
46:30account here. And that means that n8n is
46:32going to be able to access that ID of a
46:34sheet that we gave it before. And here
46:35you can see it's inserting that ID that
46:37we set up just before into this
46:38document, and also the sheet names. You
46:40can start to see how when we set those
46:41variables earlier, they can be passed
46:43downstream a lot easier. And the key bit
46:45here to note that the n8n AI has
46:47actually correctly set up the
46:48descriptions of the tools. As I
46:50explained earlier in the video, tools
46:52have kind of descriptions, and they have
46:53information on the different variables
46:55that need to go in them. And then this
46:56tool description, which we are setting
46:57manually here, we are giving it all the
46:59information about what this tool does,
47:01what it takes in, how it's connected to
47:02the rest of the workflow, so that our AI
47:04agent here, with its system message,
47:06also understands what each and every one
47:08of these tools does. The Google Sheet
47:10for adding to the
47:12reading the whole spreadsheet for when
47:13we're asking questions over the data,
47:15and the Gmail tool for sending it, and
47:16the Telegram reply, and so on. So that's
47:18one of the reasons why the n8n AI can be
47:20so powerful when you prompt it
47:21correctly, because it would do all that
47:22context setting for you
47:24rapidly. So the same thing needs to be
47:25done for this Google here. So you can
47:27come to create a new credential, go
47:29through the same process, sign in with
47:30that new Workspace email, and then
47:32you're going to have your Gmail
47:33connected, and it's going to be sending
47:34from that email that you set up. And
47:35then finally down here, we have the
47:37Telegram set up, and we can connect that
47:38to the Telegram account that you just
47:39created. And now the final piece of the
47:41puzzle is to connect up our Google
47:43account correctly so that we can
47:44actually use the model that we want to.
47:46I'm going to change this model here
47:47because it struggles to use the exact
47:49one that you asked for, so we're going
47:50to use Gemini 2.5 Flash then to actually
47:52be able to use these APIs, you need to
47:53create a new credential here, and then
47:55you need to go to Google Cloud.
48:00You'll be able to log in here with your
48:01Google Workspace account. Then you go to
48:03the console.
48:04Then you want to come up here and click
48:06on a new project if you haven't got a
48:07project already. Then once you've set up
48:09the project, you want to head to billing
48:10account management. You'll likely need
48:12to create a new billing account. You'll
48:13want to go to payment method here. Then
48:15you will need to add some sort of debit
48:16or credit card in here, cuz that's how
48:17you're going to be charged for it. You
48:18can set all the limits you want, but for
48:20what we're going to be doing, it's not
48:21going to use much at all. You might be
48:22charged a dollar or two max. So get your
48:25card added in here. This is going to
48:26mean that you're able to create an API
48:27key, and then we can head back to our
48:29cloud console. You can see that we're in
48:31the project that you just created, and
48:32then we're going to want to head down to
48:34APIs and services.
48:37Enable APIs and services up the top
48:39here.
48:40We're going to search for the Gemini
48:42API.
48:44Click on this.
48:45Yours will say enable here, so you want
48:47to click enable, then go into manage.
48:51If you hit to credentials on the left
48:53here, then create credential, click API
48:55key.
48:56Now we have our API key. You can copy
48:58this, hit back over to n8n, paste it
49:00into this API key section, and then
49:02click save, and it'll do a little test
49:04on it, make sure it's working. You may
49:05need to go back and forth to make sure
49:06your billing is set up and it's able to
49:08charge you correctly. Once you've got
49:09that, you can click save, and you will
49:10have connected your Google Workspace and
49:12Cloud account to n8n to be able to use
49:14that in all future workflows. And one
49:16thing to go over here is this
49:17conversation memory. This suggests that
49:18we can have a bit more of a
49:19conversational assistant, and it's going
49:20to keep the last 10 messages in the chat
49:22in the context so the agent understands
49:24what's happened before. So that's just
49:25helpful for a conversational agent.
49:27Sometimes if it's non-conversational,
49:29then you can just leave that out. Now
49:30with all this set up, you can just pop
49:32into the system message here and make
49:33sure that it's all prompted correctly,
49:35cuz this is kind of the glue that holds
49:37all of this functionality together. You
49:38are an intelligent expense tracking
49:40assistant. Help users log expenses from
49:42receipt photos. Your capabilities
49:43extract expense data, log expenses,
49:45answer questions, send CFO alerts, reply
49:48to users. And it breaks down the
49:49workflow in full details there. Now, all
49:51that's left to do is the moment of
49:53truth. Uh we're going to save this. We
49:54are going to click execute workflow.
49:56Now, this means it is waiting for the
49:58trigger, so we can send a message on
49:59Telegram and it's going to ping this and
50:01it will receive it. This is just a way
50:02of testing it. It's not actually live.
50:04It's not going to quite every message
50:05yet. So, we can go into our chat here
50:07and say, "Hey man." Just to test it. And
50:09[music] yep, it has received our
50:10message, but we're getting an error
50:11here. So, this starts the process of
50:13using the AI agent and assistant in N8N
50:15to fix things. So, this is very
50:17important to see this live as we go. We
50:19can click open node here. No session ID
50:21found. Expected to find a session ID as
50:23an input called session ID. So, we can
50:24just click on the N8N AI here. It's
50:26going to analyze the error, give us a
50:28recommended fix, and then actually do it
50:29for us. So, again, I'm trying to show
50:31you the AI-based workflow for this. And
50:34then let's try to plan it out. Let's try
50:35to get the N8N AI to build it. Let's get
50:37it to explain it to us if we don't
50:39understand certain parts.
50:40So, to get this built out, I'm going to
50:41copy all of this. I'm going to go to the
50:43build section. Then I'm going to say,
50:45"Paste it in here. Fix this session ID
50:48error."
50:51So, the session is just an ID that's
50:53linked to our account. So, whenever we
50:55are messaging with the bot, it's like,
50:56"Okay, well, what conversation is this?"
50:58Cuz this can handle a thousands and
50:59thousands of users through this one
51:00automation. So, we need to be able to
51:02track which user we're talking to so
51:03that we add the messages to the right
51:05chain of messages that we're building
51:06for each user. So, here we can see it's
51:08fixed the conversation memory session
51:09ID,
51:10um changing it from input to custom tick
51:12key mode. Memory will now probably use a
51:14Telegram ID from message ID. So, we can
51:16execute and refine. Go back to Telegram
51:18here and say, "Hey man."
51:21There we go. It's working correctly. I
51:22couldn't understand a request. Please
51:24resend a receipt photo or text like,
51:26"So-and-so." Or ask a question like,
51:27"How much did I spend last month?" So,
51:29it's analyzed that and realized that
51:30it's not something that it's supposed to
51:31handle, and it's asked us for the
51:32correct input. And as you can see, to
51:34break down how this is displaying what's
51:36happened to us. Uh we have a green tick
51:38here, a green tick here, a green tick
51:40here, and then it's gone and used the
51:41Gemini Flash twice. [music] It's checked
51:44the conversational memory multiple
51:45times, which is a bit strange. And then
51:47it's used this tool once to send that
51:48response via Telegram. Now, all that's
51:50left to do is to test the rest of the
51:51functionality. So, I'm going to close
51:52this off. We can click execute workflow
51:54again. And this time I'm going to send
51:56it a receipt. So, I'm going to drag this
51:57in here. Send it.
52:01And we see it will should analyze it
52:02with this, extract the information, and
52:04then Oh, so we have an issue with the
52:07Google Sheets account. So, again, we
52:08just go through the process asking the
52:10N8N AI to help us with this. And as
52:12expected, it's just going to tell us to
52:13double-check our credentials. So, I'm
52:14going to go through this process again,
52:16create a new credential. We're going to
52:17rename this to latest.
52:20Save. Make sure both of these are on the
52:22latest.
52:24I'm going to save. Make sure you're
52:26saving the workflow constantly because
52:27it needs to save in order to upload
52:29those changes to the actual deployment.
52:49We should see over here. Boom. There we
52:52go. So, we have added in the information
52:54to the spreadsheet successfully. I'll
52:55just drag these out so we can see the
52:57receipt file ID, the vendor, expense
52:59date, currency, total tax, everything
53:02that we asked for here. Even the items
53:04that were on that receipt. It's got a
53:06high confidence as well, which is great.
53:07So, we have successfully extracted
53:09information from that first receipt and
53:11put it into a spreadsheet. So, that's a
53:12big win. Interestingly, it's chosen to
53:14read the sheet as well. I don't know why
53:15it's reading the sheet before it puts it
53:16in. If I was going to keep tweaking this
53:18around, I'd make sure that it wasn't
53:19doing that. But for now, it seems to be
53:20working fine. Maybe it's just getting a
53:22read of the columns so that it can
53:23better fill it out. At this point, I'm
53:25not too bothered. It seems to be
53:26working. Now, another thing we want to
53:27check is the ability for it to escalate
53:29it to my CFO if it's over $500. So, I've
53:31got this set up on a Google Workspace
53:33email as I recommended here. Then I'm
53:34going to execute the workflow again. Oh,
53:36and as you can see, we're getting a
53:37response back, which is great. Giving
53:38the user a bit of feedback on what's
53:40happening. And here I have an Apple
53:41Store receipt for a uh healthy 3,500
53:44euros.
53:46I'm going to send this here. And there
53:47you go. It looks like it didn't even
53:48need to read the sheet this time because
53:49it had already read it in the last
53:51session. It remembers the last message
53:52we've sent and the ones before it. So,
53:54maybe it already knew what the sheet
53:55looked like. And it seems we're getting
53:56more issues with authentication here.
53:58So, I'm just going to set this up again.
54:14Save that.
54:16Save the workflow. Execute it again.
54:22And send our receipt.
54:26Yep, and we've seen an email sent off
54:28and logged in the spreadsheet as well.
54:30Boom. There we go. Over 500, true. And
54:33this row here was from the failed ones,
54:34so we can probably delete that.
54:36But here we go. Our CFO email sent at
54:39It's officially sent an email and logged
54:40this in here. And it's detected that
54:42it's over $500. So, now if I go to
54:44email,
54:46then I've got an email from myself here
54:47saying high-value expense alert at Apple
54:49Store Grafton Street. High-value expense
54:51has been logged. So, this is going to be
54:52a helpful way to send off to your
54:53finance department or CFO whenever
54:55there's a big expenditure so that they
54:56can follow up on that and make sure that
54:58that's an approved purchase. So, now
55:00that we've got all this working, the
55:01last thing to do is ensure that we're
55:02able to chat to this and it's able to
55:03pull that information from the
55:04spreadsheet and make it ask questions
55:06over that data. What I'm going to do is
55:08just grab this here. I'm going to grab
55:09all the information in the spreadsheet,
55:11head back [music] to our handy-dandy
55:13assistant, and ask it, "Can you create a
55:17bunch of dummy data in a table and add
55:21to our sheets?"
55:28And I can turn off thinking here.
55:37So, I can copy those data out. I can
55:38head back to the spreadsheet and I just
55:39click in here, paste it in. Now, I've
55:41got a bit more to work with, a couple
55:43more categories and so on. And then we
55:44can head back to Telegram. I'll execute
55:46this workflow again. I'll say, "What is
55:49the total spending on this account?"
55:52Now, it should query the data, pull that
55:54all back to the agent, and boom. Total
55:56spending on your account is 5,000 USD or
55:59and a 3,000 total. So, everything is
56:02working as expected. [music] That's
56:03great. Now, we can click on this toggle
56:05here to make it live. That means that
56:06instead of having it executed every
56:07time, it's going to run with every
56:09message. And then we have our buddy here
56:11to chat away with, and we can say, "How
56:13many trans
56:18So, as you can see, we now have a
56:19handy-dandy expense assistant put onto
56:22Telegram uh that's able to add things to
Self Host Your n8n
56:23a spreadsheet from a image. Very
56:26powerful skill to have. We've heavily
56:27used the N8N AI and the AI tools that
56:29I've created for you guys to plan this
56:31out, to iterate, to go back and forth,
56:32to use the N8N AI to also debug and work
56:35through issues. You've just seen a
56:36realistic walk-through of what the stuff
56:38looks like when someone like myself or
56:40other AI automation engineers are
56:41building these systems. So, so that is
56:43build one under the belt. I will be
56:45giving you guys this template exactly so
56:46that you can import it yourself. If you
56:47don't want to do everything yourself,
56:49I'll also be providing those final
56:50prompts that we gave to the AI so that
56:52you guys can try to follow along as
56:53closely as possible with the experience
56:55that I've gone through here. This has
56:56been a great skills foundation for what
56:57we're going to be doing in the next
56:58three builds, which are kind of linked
57:00together as a a chain of different
57:02automations and systems that you can
57:03build for a given business that work
57:05together as part of a larger system. All
57:07right, guys. So, before we build our
57:08second agent workflow, I want to talk
57:09you through hosting since it's
57:10particularly important that you
57:11understand where your workflows are
57:13actually going to be running once you've
57:14got them set up and deployed for your
57:16clients. So, in order for things to run
57:1724/7, your workflows have to always be
57:19on, which means they need to be hosted
57:21in some kind of service somewhere. So,
57:23when we signed up to N8N and when we
57:24started building, we were automatically
57:26putting N8N on the N8N cloud. So, with
57:29the N8N cloud, you're basically
57:30borrowing some space on their server.
57:32It's like renting an apartment, but it's
57:33for running your workflow. They host
57:35these workflows for you automatically
57:37with no setup required for the hosting,
57:39but you pay based on usage. So, this
57:41works fine when you're learning and just
57:42starting off and building your first few
57:44workflows just like this. But as you
57:45scale up and particularly start to deal
57:47with clients doing a lot of volume,
57:48you're going to hit walls where your
57:49workflows might crash with a large
57:51amount of data. Your bills can spike
57:53unexpectedly. You can't install certain
57:55tools that you need. And ultimately,
57:56you're stuck within N8N's limits and
57:58their pricing structure as well. So, for
58:00running an actual AI agency or AI
58:02automation agency powered by N8N and
58:04selling those workflows to your clients,
58:06pretty much every AI agency I know is
58:08self-hosting their N8N and using that to
58:10run their client workflows. Or in other
58:12words, they own their own home for their
58:14workflows versus renting an apartment in
58:16N8N's cloud. So, when you self-host, you
58:18can run as many workflows as you want,
58:19basically. And instead of paying
58:21surprise bills to be N8N, you pay a
58:23predictable and usually much smaller
58:25monthly fee just for the server access.
58:27You also get the freedom to install any
58:28community tools that you need. And most
58:30importantly, you control everything
58:31about your infrastructure. But if you
58:33had to set all of this self-hosting
58:34stuff up from scratch, that would be a
58:36lot of complicated work for beginners
58:37particularly. But fortunately, there are
58:39a lot of services out there that handle
58:40all of the technical complexity for you
58:42of this self-hosting in order to get the
58:44most scale out of your automations. So,
58:45when it comes to self-hosting,
58:46especially for beginners, Hostinger is
58:48my recommendation since it does
58:49basically all of the heavy lifting for
58:51you automatically with literally like a
58:52one-click N8N installation. And
58:55fortunately for me, Hostinger has
58:56offered to sponsor this video. So,
58:57shout-out to Hostinger for being the
58:58sponsor of this video. So, let me show
59:00you how to get your self-hosted N8N up
59:02and running if you plan on scaling your
59:04agents professionally as an AI
59:05automation agency. So, below this video,
59:07there's going to be a link that will
59:08send you to Hostinger's self-hosted N8N
59:10page. They've got a page specifically
59:11for it. You can select whatever tier you
59:13want, but KVM 2 is a good price for the
59:15value you get. So, uh we can choose this
59:17plan, and then we can select either a
59:18one-month or 12-month or 24-month for
59:21better savings. Your server location of
59:22where you're hosting your systems uh
59:24will automatically be chosen based on
59:26your location. And the closer the server
59:28is physically to you, the better
59:29performance you're going to get. Now,
59:30down here, you'll see N8N was already
59:32selected for me, so I can leave that as
59:33is. And before heading to checkout, you
59:35can get an extra 10% off with code Liam
59:38Ottley, all caps. All right, so you can
59:39put that in there and get an extra 10%
59:41off your hosting uh setup. Then you just
59:42register your account. You can fill in
59:43your billing details and enter your
59:45payment info. Now, we just need to add a
59:47root password. Make sure you save this
59:48somewhere safe. And next, we can get
59:50malware scanning for free, which is
59:52great. And I'm going to select that
59:54before finishing things up. Now,
59:55Hostinger is doing all of the complex
59:57setup for us automatically, which is
59:58awesome. And once it's finished up,
1:00:00we'll be routed to the dashboard. We'll
1:00:02go from there. Now, from here, I just
1:00:03click on manage app. I'll be taken to my
1:00:05own self-hosted n8n instance. So, here
1:00:07is where you enter your info and get
1:00:09your instance up and running. Once
1:00:10inside, we have the option to receive
1:00:11some free features for advanced
1:00:13debugging, search, and organization. And
1:00:15now that I'm in, I can go ahead and
1:00:16create my n8n workflows from here. So,
1:00:18either using a provided template or
1:00:19creating from scratch and building node
1:00:21by node. Now, I have unlimited
1:00:22automation power, running 24/7 with
1:00:25predictable cost. So, that's a key thing
1:00:26for turning this into a business.
1:00:28Occasionally, n8n will release versions
1:00:30with new and useful features, so you'll
1:00:31want to update your n8n from inside your
1:00:33Hostinger account, which there's a
1:00:35tutorial for right here. And if you want
1:00:36to customize your domain, you can follow
1:00:37the guide here for a custom URL that
1:00:39your workflows actually live at. And if
Build 2: Website Lead Gen Chatbot
1:00:41you need to reset your password, you can
1:00:42find out how to do that here, of course.
1:00:44These are some helpful guides as well,
1:00:45but what's especially helpful, I find,
1:00:47is the AI agent called Cody, who can
1:00:49walk you through basically anything on
1:00:50the Hostinger platform, which is super
1:00:51great for beginners. Now that you have a
1:00:53solid understanding of the benefits of
1:00:54self-hosting and how to get it up and
1:00:55running, let's get back to building our
1:00:57next AI agent workflow.
1:01:01All right, guys, so we're getting into
1:01:02build number two now, and this is the
1:01:03start of the chain of business-focused
1:01:05builds that we're going to be doing, so
1:01:06it's important you get this right cuz
1:01:07they are all kind of interrelated and
1:01:09part of a bigger system or package that
1:01:11you can sell. And so, this one is a
1:01:13throwback to one of my favorite builds
1:01:14that I've ever done on the channel. It's
1:01:15sort of updated and refreshed to be uh
1:01:17more current and new, but the use case
1:01:19itself is still rock-solid and one of
1:01:20the top ones that you can sell to
1:01:22businesses, and that is a lead
1:01:23generation chatbot that helps to answer
1:01:25questions about the business and about
1:01:27the services on the website. In this
1:01:28case, we're going to be building an AI
1:01:30tool that allows them to pass in their
1:01:31monthly power bill and their address,
1:01:34and we're going to be able to return to
1:01:35them, based off the Google Solar API,
1:01:37which is really the powerhouse of this
1:01:38build. We're going to convert their
1:01:39address into a latitude and longitude
1:01:41coordinate. We're going to pass that
1:01:42into the Google Solar API, and it's
1:01:44going to return It's going to basically
1:01:45look up their house, uh determine what
1:01:47shape their roof is, the different sides
1:01:49on it, estimate how many panels could
1:01:50fit on it, and then also, based off
1:01:52their monthly power bill, be able to
1:01:54estimate a range of different solar
1:01:55packages that they could buy, and the
1:01:57estimated payback periods it'll look up
1:01:58based off their location, how much sun
1:02:00those roofs are going to get, and also,
1:02:02look up based off their state and
1:02:03location and area, any tax incentives uh
1:02:06from the federal government or the state
1:02:07government, and be able to give them a
1:02:08full comprehensive picture of how much
1:02:10they could potentially save based off
1:02:11the power bill and location, sun hours,
1:02:14savings, all of the stuff that is really
1:02:16important for someone to know before
1:02:17they go in and make a solar purchase.
1:02:18So, this is a way of creating a what
1:02:21would essentially be a human kind of
1:02:22solar consultant task to take in the
1:02:24information [music] about them,
1:02:25determine what packages they can look
1:02:26at, and we're going to be able to
1:02:27automate this fully through AI within a
1:02:29chatbot, so that all users can come on,
1:02:31ask a few questions, the chatbot's going
1:02:32to offer them, "Hey, do you want to get
1:02:34a perhaps a a quotation or estimate on
1:02:36how much that you could save and how
1:02:37much solar could cost for your house?"
1:02:38And then after they've gotten that
1:02:39value, we're going to prompt the agent
1:02:41to afterwards ask for, "Hey, if this
1:02:43seems interesting, I can put you in
1:02:44touch with one of our representatives,
1:02:46and they can take you a bit further on
1:02:47this process um to learn more about what
1:02:49this would mean and and look like if
1:02:50you're going to roll this out for your
1:02:51house, different types of panels we
1:02:52could set up, and so on." We're going to
1:02:54be learning a ton of super valuable
1:02:55skills in this that you're going to
1:02:56carry forward into all of your future as
1:02:58an AI automation expert, being able to
1:03:00call custom APIs. In this case, we're
1:03:01calling the Google Solar API and the
1:03:03Google Geocoding API as well. I'm going
1:03:04to teach you a very key skill in making
1:03:06your agent more powerful, which is using
1:03:07the workflow as a tool node, which
1:03:09allows us to build out complex workflows
1:03:11and then connect [music] them as a tool
1:03:12on our agent. I'm also going to be
1:03:13showing you how to set up a simple
1:03:15knowledge base within n8n so that you
1:03:16can load documents in and allow your
1:03:18agent to answer questions over those
1:03:19documents. Great skill to have. And
1:03:21finally, I'm going to be showing you how
1:03:22to take everything we've built here and
1:03:24set it up on a chat widget on a website
1:03:26so that you can take it out of n8n and
1:03:28put it onto a website for customers to
1:03:29use and give you a new deployment option
1:03:31other than the Telegram one we've
1:03:32already done. A website deployment for a
1:03:34chatbot is a very useful one to know how
1:03:36to do. So, to start things off, we're
1:03:37going to follow the same process that we
1:03:38went through last time. We're going to
1:03:39be using the GPT and the relevance tool
1:03:41that I've created here. We're going to
1:03:42be chatting back and forth with this AI
1:03:44automation CTO to figure out how we can
1:03:46uh get the right plan. We're going to
1:03:48feed that into our automation brief, and
1:03:49then we're going to go from there into
1:03:50setting it up with the n8n AI, testing
1:03:52it, [music] and then deploying it to a
1:03:53website. And this is the platform we're
1:03:55going to be using to take out n8n agent
1:03:56and put it on a website, so I'm just
1:03:58going to copy the URL of this and pop it
1:04:00in here as context. Okay, I'm starting
1:04:01off a conversation with this prompt
1:04:02that'll be included in the resources if
1:04:04you want to follow along. Basically
1:04:05saying a a rough scope of the build. I'm
1:04:07trying to build a lead generation agent
1:04:08for a solar company's website. It's
1:04:10going to be deployed via a chat widget
1:04:12using n8n chat UI. It's going to be able
1:04:14to answer questions from a knowledge
1:04:15base, which is going to be basic,
1:04:16[music]
1:04:17about the business and guide the user
1:04:18towards a free solar estimate, which
1:04:20will be done through the Google Solar
1:04:21and Geocoding APIs. We will take in
1:04:23their monthly electricity bill and also
1:04:24their address, then send that into a
1:04:26workflow as a tool AI agent tool. Um
1:04:28you'll see what that means in a second.
1:04:29That we use those APIs to return us a
1:04:31simplified breakdown of the relevant
1:04:32data to them from the Solar API. The AI
1:04:35is going to give them a nice summary of
1:04:36all of the information in the Solar API
1:04:38that that they've returned to us. And
1:04:39then after that estimate has been given,
1:04:41the AI will suggest that they provide
1:04:43their phone number and a name for one of
1:04:45our representatives to get in touch with
1:04:46more information and special offers uh
1:04:48to get them sort of encouraged to give
1:04:50their uh information. And then this lead
1:04:52information will be added to an
1:04:53airtable, which is kind of like a fancy
1:04:54Google Sheet, which you'll see it's a
1:04:55great tool to learn. That's another key
1:04:57one that you're going to be learning in
1:04:58this, is how to set up airtable and
1:04:59connect it to n8n. And that's going to
1:05:01be serving as a CRM or our customer
1:05:02relations manager, which is a basically
1:05:04a database of all the people that we're
1:05:06contacting or working with in our
1:05:07business. And then I've said I would
1:05:09like this to be as lean as possible and
1:05:10simple as possible using a single agent
1:05:12and tools. So, in this case, I know what
1:05:14I want, so I'm telling it quite exactly
1:05:15what I'm looking for, the different
1:05:17services I'm going to use. But in many
1:05:18of your cases, you may not know, and
1:05:19you're going to use this AI automation
1:05:21CTO to be able to help find those kind
1:05:23of geocoding or solar APIs, getting it
1:05:25to search the web and figure things out.
1:05:27So, here we have the research that's
1:05:28been completed, what the APIs are, how
1:05:29they're going to work, the shape, the
1:05:31endpoints, and practical notes. Talking
1:05:32about the architecture of the n8n agent,
1:05:34chat trigger, AI agent, solar estimate
1:05:36tool, and the create lead tool. Yep,
1:05:38that's correct. And an optional uh
1:05:40knowledge base tool via a vector
1:05:41database. Then it's breaking down the
1:05:42second workflow, which is going to be
1:05:44packaged into the solar estimate tool.
1:05:46So, we're going to be using a separate
1:05:47workflow as a tool, but there's a little
1:05:49trick you can do to kind of keep it
1:05:50within the same uh workflow, which is
1:05:52great. So, this is going to be a
1:05:53separate sequence of steps that's a bit
1:05:55bigger, which is going to chop that
1:05:56solar information retrieval from the
1:05:58Solar API into a couple steps. Here we
1:06:00have breaking down kind of the prompt or
1:06:01the glue that's going to stick it all
1:06:02together and how the behavior we expect
1:06:04the behavior to go. So, I'm going to
1:06:06tell it to assume that this is USA only
1:06:07because that's where the Google Solar
1:06:09API is relevant. And don't worry about
1:06:10handling all the edge cases cuz it's
1:06:12starting to build into here uh ways to
1:06:13handle if something goes wrong or if uh
1:06:16there are errors. We don't necessarily
1:06:17need to do that in this version, but it
1:06:18is something that you would do later on.
1:06:20So, I'm asking it to just create an MVP
1:06:22or minimum viable product here so we can
1:06:24test the core functionality. And then I
1:06:25will say,
1:06:30And I've told it to carry over a lot of
1:06:31this research about the APIs into the
1:06:34information that I'm going to put into
1:06:35the form here on the left.
1:06:37Okay, now we have the brief here. If for
1:06:39the model preference, because you guys
1:06:40have already set up your Google account,
1:06:41I'm just going to keep using Google in
1:06:42this case. Um so, we can just say,
1:06:49And we're going to give this a run.
1:06:55Come down and get this raw. We're going
1:06:57to head over to n8n, create a new
1:06:58workflow.
1:07:01Open the AI editor here, paste it in,
1:07:03give it a quick check over. It's got all
1:07:05the details about the Solar API here,
1:07:07that's really important. The output
1:07:08schema, and I think we're good to go.
1:07:23There we go. This is the first attempt
1:07:24it's given us. Uh let's just have a skim
1:07:26through and see what it's asking us to
1:07:27set up. So, the airtable uh lead tool,
1:07:30that makes sense. [music] It's going to
1:07:31need us to set up our airtable
1:07:33integration there. Uh the Google API key
1:07:35and the Google API key. So, just a look
1:07:37through here, give a bit of an
1:07:38explainer. We have the chat trigger
1:07:39here, and if we pop this open here, we
1:07:41can look at the chat trigger. So, this
1:07:42allows us to, in this case, chat away
1:07:45here in this chat session, and this is
1:07:46going to allow us to test the
1:07:47functionality before it's actually put
1:07:49onto the website, so this is our testing
1:07:50window. And this log section will show
1:07:52us what's happening to the AI agent at
1:07:54every step as we go through the chat. We
1:07:55don't need that right away. And once we
1:07:57receive a message, this chat trigger
1:07:58will fire information into the solar
1:08:00lead agent here. We have a handy-dandy
1:08:02prompt. You're a solar energy
1:08:03consultant. Your role is to answer
1:08:05questions. Answer questions in the
1:08:06knowledge base. Well, it seems like it's
1:08:08just put the knowledge base directly in
1:08:09here, um which is is one option. I'm
1:08:11actually going to take that out and give
1:08:12it a proper knowledge base. Important
1:08:14rules.
1:08:15After providing an estimate, that's what
1:08:16we want it to do. So, yeah, that looks
1:08:18pretty good overall. We have the Google
1:08:19Gemini 2.5 flash. Again, it's got the
1:08:21wrong model here, so we'll just change
1:08:23it over to the one we want. We've got
1:08:24our original Google connection here from
1:08:26the previous builds, you should just be
1:08:27able to reselect that.
1:08:30And we have the solar estimate tool
1:08:31here. Now, this is actually not the uh
1:08:36easiest way of doing things because we
1:08:38have a uh just a second workflow here.
1:08:40So, we basically want to connect this
1:08:41whole workflow via this into this. So,
1:08:44normally you'd have to create a separate
1:08:45workflow, you'd go back up to add and
1:08:47create a new one, and then we would we
1:08:48would uh click here, we would add a new
1:08:50one here, and go call n8n workflow tool.
1:08:53So, this is how you can build much more
1:08:54complex tools with multiple stages like
1:08:56this from an agent. So, if I click this,
1:08:58it's basically asking me which workflow
1:09:00am I supposed to call uh with this tool?
1:09:02So, a little trick you can do here is
1:09:03that you can actually set it up by from
1:09:05ID.
1:09:06And because we have this entry point
1:09:07here, we can actually trigger this as
1:09:09the entry point by taking the URL up
1:09:12here and grabbing this section of our
1:09:13URL after the workflow bit, and then go
1:09:15back to this workflow uh n8n [music]
1:09:18workflow tool here, paste in this as the
1:09:19ID, and there we go. It's it's been able
1:09:21to read this and determine what inputs
1:09:23cuz we need to pass some information
1:09:25into that workflow. And the AI has
1:09:27already set up the address as a in the
1:09:28monthly bill case we're looking for
1:09:30actually a number. So, this is all set
1:09:31up correctly as the inputs, and that's
1:09:33why it is automatically popped up here.
1:09:35So, just one more time, this whole
1:09:36workflow that we're working in is this
1:09:39workflow ID up here that we clicked.
1:09:40But, because on this whole canvas, the
1:09:42only option for triggering this workflow
1:09:44via an ID is this one, when we put in
1:09:47the ID of this workflow into this tool,
1:09:50it's going to call the only one that's
1:09:51available. So, it can't enter here
1:09:52because this is not a trigger by another
1:09:55workflow. We're going to take the ID of
1:09:56this whole workflow, pass it in here,
1:09:58and we can sneakily keep this on the
1:10:00same canvas, nice and easy like that.
1:10:02So, we can delete this.
1:10:03Then we can check out how it set the
1:10:05solar API section up. So, we have the
1:10:07information of the monthly bill and the
1:10:09address being passed into this geocode
1:10:11address. So, we've got it using the
1:10:12correct URL that we found in the
1:10:14research section. With indication we
1:10:16have none here for now, and we're just
1:10:17going to be putting in our API key in
1:10:19the query parameters, which will go in
1:10:21the URL that we send off to Google. So,
1:10:22that all looks pretty good. We'll grab
1:10:24our API key in a second. Then we take
1:10:26the solar data, which is going to be
1:10:27grabbing the information from the
1:10:28previous step, taking that latitude and
1:10:30longitude that the geocoding API found,
1:10:32and setting it into the
1:10:34>> [music]
1:10:34>> input to the solar API as the latitude
1:10:37and the longitude here, and our API key
1:10:39as well. Sending that off, then it's
1:10:41going to dump back a ton of information
1:10:43to us. So, we need to pick through that
1:10:44and determine what we actually want. In
1:10:46this case, we want to
1:10:48expect us to have a little bit of issue
1:10:49with this because it's sending back so
1:10:50much data. So, I won't go into this too
1:10:52much for now, but it's basically can we
1:10:53extract only the stuff that's important,
1:10:55send that back to the agent, and the
1:10:57agent can turn those numbers into a
1:10:58nice, clean response to give to the
1:11:00user. We have got a conversation memory
1:11:01as usual here that's handy to have that
1:11:03set up. We're remembering the past 10
1:11:04messages. And one thing we are missing
1:11:06is our knowledge base. So, I'm going to
1:11:08set that up later, but for now we can
1:11:09just pop it in here as a placeholder,
1:11:11simple vector store down here.
1:11:14And we are just going to leave that for
1:11:15now. All right. So, the most important
1:11:17thing for us to do now is to make sure
1:11:18that the solar estimate is working. So,
1:11:20we can do this a few ways. The easiest
1:11:22way to do that is to come in here. We
1:11:23need to change these inputs to being
1:11:26created by the AI. So, that's an
1:11:27important button to know exists that
1:11:30when we have certain fields for say for
1:11:32these tools that we're using, we can
1:11:34either hardcode the inputs, so we can
1:11:36have it set as fixed, and we can always
1:11:39pass in the same value. We can have it
1:11:40as an expression from variables earlier
1:11:42in the workflow. Or, in this case, as a
1:11:44tool for an AI agent, we can let the
1:11:45model define this parameter. And what's
1:11:47helpful is to add in a description of
1:11:49the tool. We can say this is
1:11:51>> [music]
1:11:51>> the address of the user. And this goes
1:11:54back to the descriptions that we write
1:11:56for tools. The descriptions of the
1:11:58variables or the parameters that you
1:11:59pass into the tool is also helpful to
1:12:01give the model more context on what is
1:12:03supposed to go where and the purpose of
1:12:04each of these. I'm adding must be as a
1:12:06number here,
1:12:07giving an example of the format. It's
1:12:09just some more context around how it
1:12:10should be structuring each of those when
1:12:11it passes it in.
1:12:14So, if we go stop and we execute the
1:12:17step, now it pops up with things that we
1:12:19can put in. Here we can see this is as a
1:12:21number. Remember in this button down
1:12:22here, it says it's a number, and the
1:12:24address is going to be a string. So, I
1:12:25like to go random USA address. [music]
1:12:28Let's just go maps and find some random
1:12:30guy's house. Let's go Utah. Where is a
1:12:33city?
1:12:35This one looks good. Actually, yeah,
1:12:37let's go a few panels. So, we can see
1:12:39these different sides to the roof.
1:12:40Google's actually going to be able to
1:12:41figure that out, which is pretty
1:12:42helpful. So, we're going to copy this
1:12:43address. Sorry to this person.
1:12:47Monthly bill of $200. Actually, before
1:12:49we can test this, we should get our API
1:12:50key set up from Google. So, let's just
1:12:52back out of here, head to
1:12:54Google Cloud Platform that we've been
1:12:57using previously. All right. So, now
1:12:58you've got that project that you created
1:12:59before that you've already got the
1:13:00billing set up for. We want to go down
1:13:02to APIs and services. You want to enable
1:13:04APIs and services up here. And we're
1:13:05going to look for the geocoding API.
1:13:09You can click this.
1:13:11You can click enable here. Then we're
1:13:12going to go back and go solar.
1:13:16And we're going to
1:13:18And we're going to enable this. Then we
1:13:20can go into manage. We can go to
1:13:21credentials.
1:13:23And then you can create a new API key.
1:13:26We can copy this, hit back, open up this
1:13:29geocoding one.
1:13:31Paste the key in there.
1:13:32Then go to the solar one. Same again.
1:13:36And now, while we're here, we may as
1:13:37well point out and link back to some of
1:13:38the concepts we learned earlier. We have
1:13:40this as a get request, and get requests
1:13:42don't have a request body. We don't send
1:13:44away a big payload of information. What
1:13:46this is doing, it's just essentially
1:13:47adding on little things to the end of
1:13:49the URL. So, a get request will take
1:13:51this, and then it's going to be
1:13:53attacking on the latitude and longitude
1:13:55to the end of that. They're called get
1:13:56parameters or query parameters, and
1:13:58they're going to be added onto the end
1:13:59of the URL, and that includes our API in
1:14:01this case, which is not like the most
1:14:03safe way to do it, but for these
1:14:05purposes it will be fine. Now, we can
1:14:07try to save this. Okay. So, I've just
1:14:08cleaned this up a bit so that we can run
1:14:09through some testing loops as we work to
1:14:12getting this custom workflow working.
1:14:14Now, if we right click on here and go
1:14:15execute step,
1:14:17sorry, if we open it up,
1:14:18we change these to AI.
1:14:22We can save that, and then right click
1:14:24on execute step. We can put in the
1:14:26address and put in like $200 monthly
1:14:28bill. We execute this, and then the
1:14:29error of any errors that return in here
1:14:32are actually going to be hidden in here.
1:14:33So, you'd expect to see dick, dick,
1:14:34dick, but actually you need to click
1:14:36into here, and you can see that the
1:14:37resource you're requesting could not be
1:14:39found. If you click on view sub
1:14:40execution, we get to go on a bit more of
1:14:42a kind of debugging mode. You can see we
1:14:44have the editor tab here, the executions
1:14:46and evaluations. Our editor and [music]
1:14:48executions are the main ones you're
1:14:49going to need to worry about. So, in
1:14:50this case, we can go back through all of
1:14:51the previous runs of this agent. And in
1:14:53this case, we want to look at the most
1:14:55recent failed one, and it's going to
1:14:56show us what went wrong. So, you can see
1:14:58that it successfully triggered another
1:15:00workflow here. We can click into it. We
1:15:02can see that it passed in the $200 and
1:15:03the address. So, those are the input
1:15:05fields we created, the AI created. These
1:15:07are the things we passed in. And then,
1:15:09[music] the geocode address sent to work
1:15:10well. We passed in this information, and
1:15:12we got out the latitude and longitude,
1:15:15lat and long. There we go. So, 39 and
1:15:17-111. And then, we tried to pass into
1:15:19the solar data API. Seems like the
1:15:21resource we were requesting could not be
1:15:22found. usually means that [music] we've
1:15:24incorrectly set up the API information
1:15:26here. So, So, if we just click into some
1:15:28of the error details, 404 error, request
1:15:30>> [music]
1:15:30>> entity was not found. So, that tells me
1:15:32that we are getting some kind of error
1:15:34with this URL. So, the easy way to do
1:15:36this is to screenshot this. We can
1:15:38actually go back over to our buddy here,
1:15:40say getting this issue.
1:15:44We're going to be able to copy that
1:15:45whole thing.
1:15:47So, now we get to use [music] the
1:15:48ability for our GPT to search the web,
1:15:51to look at the images we've given it, to
1:15:52have context of what we're trying to do.
1:15:53And we're using this instead of the N8N
1:15:55one because this is able to search the
1:15:56web and actually figure out what's going
1:15:58on here. Saying, [music] and for a bit
1:15:59more information, I can even go down to
1:16:01screenshot this information. Actually,
1:16:03we can send this whole thing. Scroll
1:16:05down to the lat and long.
1:16:22So, it's important you see these kind of
1:16:24troubleshooting workflows in action
1:16:26because this thing in this case has more
1:16:27context, it can search the web, and it
1:16:29knows what we're trying to build, and
1:16:30then we can take this information, pass
1:16:31it into the N8N node, or we can just
1:16:32change things around ourselves. Okay.
1:16:34So, it seems like it might be due to the
1:16:35location that I've chosen. So, Utah
1:16:37might be a little bit too out of the
1:16:38way. So, let's maybe give a different
1:16:40state a try. If we go to California
1:16:42somewhere,
1:16:43if we go to Stockton, and this looks
1:16:46like it's got a bunch of different sides
1:16:48on it. These guys here.
1:16:53And so, let's go back. We can go back to
1:16:55our editor that we're over here.
1:16:58Right click, execute step, and change
1:17:00this over to the California address.
1:17:02Promising. Cuz I was hanging on this for
1:17:04quite a long time. Maybe we go into
1:17:05executions. See what the error is here.
1:17:07Okay. So, we did get the data back.
1:17:08That's great step. So, we passed these
1:17:10in correctly. If we go to schema here,
1:17:12we can see all the information. Now, if
1:17:13you go JSON, you can see really the
1:17:15crazy amount of data that we get back
1:17:16from this. Postal code, max array of
1:17:19panel count, max sunshine hours per
1:17:21year, carbon offset,
1:17:23roof segment stats, sub calculate the
1:17:25degrees of the roof, the area of the
1:17:27roof in meter squared, the amount of
1:17:28sunshine they're expected to get. It is
1:17:31a crazy amount of data, and look, it
1:17:32just goes on and on and on. And so, then
1:17:34it goes through the different like
1:17:35configurations. Say, if we had 27
1:17:37panels, this is how much energy it would
1:17:38generate. This is the different segments
1:17:40of the roof you'd need to cover. And
1:17:42then, if you go down even further, it
1:17:44links it to the monthly bills. So, here
1:17:46you can see if we have a monthly bill of
1:17:48150, then it calculates the potential
1:17:49savings, the federal incentives for that
1:17:51area. What we're going to be doing is
1:17:52plucking out the relevant information
1:17:53from this. It's actually by filtering by
1:17:55the the monthly bill value here that is
1:17:58related to the one that they've
1:17:59provided. Then we're going to be sending
1:18:00that back to our agent to summarize and
1:18:02send back to a nice message to our user.
1:18:03So, I assume that we're getting an issue
1:18:05in formatting this or extracting the
1:18:06values out of this very big JSON. So,
1:18:09we're going to copy the selection here,
1:18:11see what the error here was. So,
1:18:12normally you'd be able to ask the AI for
1:18:13this, but in this case, because we have
1:18:15so much JSON to to format, we need to be
1:18:18a little bit smarter about how we're
1:18:19able to get this bit of code written up.
1:18:21So, if we go back to the GPT here, and
1:18:24we paste in everything that we've got
1:18:25just in, it's probably going to be too
1:18:27much to fit into the GPT here. So, let
1:18:29me just at least attempt it. Now, at the
1:18:31bottom here is the current code. [music]
1:18:34Can we please write a new one?
1:18:42So, I'm going to cross my fingers and I
1:18:44hope that we can fit it all in here. I
1:18:46don't think we will be able to. There
1:18:47you go. Shout out, OpenAI. That is That
1:18:50is a massive message. So, we can see
1:18:52that it is going to help us to strip
1:18:54this down to only what is essential.
1:18:56>> [music]
1:18:56>> Handle the array response properly,
1:18:57picks the closest financial analysis.
1:18:59So, here we go. Okay. So, we can copy
1:19:01this code up here, hit back, and edit
1:19:03in. Need to click out of this because
1:19:04we're in the executions, and we need
1:19:06[music] to go back to the editor. Double
1:19:07click on this.
1:19:09Delete it, paste it.
1:19:11Save it, and then we're going to run
1:19:13this step again.
1:19:15And we have another failure. So, if we
1:19:17go to executions here, we can click on
1:19:19this and see that again we're having
1:19:20issues with the format solar estimate
1:19:22response. Other info here. What we can
1:19:24do is copy the error details here. Just
1:19:25going to pop them back into
1:19:35And I'm going to ask it to simplify down
1:19:36a bit more. And actually, while we're at
1:19:37it, it might be helpful to see if the
1:19:39N8N AI can figure this out. And it may
1:19:41be in this case that the GPT is not
1:19:43using the right variable names um for
1:19:45this workflow. So, if we go back to our
1:19:47editor, actually if you go into
1:19:48executions,
1:19:50go to debug and editor, and we add in
1:19:52the AI. So, it kind of spins all the
1:19:54data here. As we go into debug and
1:19:55editor, we paste in the information
1:19:57here.
1:20:16So, now we have two different options
1:20:17coming back. We have the one from the
1:20:18GPT where I suspect it may just be
1:20:20selecting the variables wrong, which is
1:20:22something it does quite often. Yep, here
1:20:23we go. The error is occurring because
1:20:24we're trying to reference the solar
1:20:25estimate workflow trigger. That node has
1:20:27been renamed, so that was actually me
1:20:29just playing around before. I deleted
1:20:30this one and re-edited it to try to get
1:20:32the integration with this set up
1:20:33properly. So, now that we've updated the
1:20:35name of the variables that we're calling
1:20:36in this code block, we can go and give
1:20:38it another run. Close this.
1:20:42Execute it again.
1:20:44And again, even N8N is not able to fix
1:20:46this. So, we need to go through the loop
1:20:47again.
1:20:50Go to debug and editor.
1:20:53Unpin the data, pop this open, and tell
1:20:55it to execute and refine. Now, N8N's
1:20:57going to go to work and try to fix this
1:20:59automatically. And while it's doing
1:21:00that, I'm also going to send uh this
1:21:02information over to the GPT.
1:21:10And to be sure that we have the right
1:21:11name data in it, I'm going to grab a
1:21:12screenshot of this here.
1:21:15I'm asking the GPT to simplify things
1:21:17down cuz the issue reason you have these
1:21:19issues is because there's just such a
1:21:20massive amount of JSON, and it's
1:21:22struggling to get the variables
1:21:24perfectly set up and write the right
1:21:25code to pull out the right variables
1:21:27from the right depth of that JSON. So,
1:21:29here are the tools. Please [music] give
1:21:32that.
1:21:43Okay, we have the code now. I'm going to
1:21:44copy it, come back over, and paste it
1:21:46in.
1:21:56Boom, we did it.
1:21:57That was a good example of having to go
1:21:58back and forth. You guys won't be
1:22:00running into these issues that often
1:22:01because this is quite a complex uh JSON
1:22:03object that's being returned, as I said.
1:22:05But, you need to be familiar with those
1:22:06loops where you can use this debugging
1:22:08in the editor. As you saw there, when we
1:22:10have this pin on, it means that we've
1:22:11already pinned the input data. We can
1:22:13actually go to the execute workflow and
1:22:15just click it again, and it will move
1:22:16through. So, you can easily cycle
1:22:18through getting the N8N AI to check
1:22:20things over, make changes, and then just
1:22:22right click or just click here to
1:22:23execute the workflow again, and it's
1:22:25going to run through. Um and eventually,
1:22:26we did get that working. So, we can see
1:22:28what we're actually returning here. If
1:22:29we close this off, we're returning the
1:22:31address, the coordinates, imagery
1:22:32quality quality, the user input, and
1:22:34then the solar panels, the max amount, a
1:22:36financial snapshot, and any notes as
1:22:38well. So, this is going to be sent back
1:22:40to our agent as this form of data in
1:22:42JSON, and it's going to be expected to
1:22:44read over that and then be able to
1:22:45provide them a nice summary as well. So,
1:22:47think we're in a pretty good position to
1:22:48now go and test this in action through
1:22:50our chat widget. So, we can save this.
1:22:56We can unpin this data here. Then we can
1:22:58open the chat, start a new chat, and
1:23:00say, "Hey, man."
1:23:02Hey, I'm your solar energy consultant.
1:23:03Can I get an estimate?"
1:23:08It's showing our logs here. So, now it's
1:23:09saying, "I need your service address."
1:23:11We don't have that saved anymore.
1:23:25That's going to ping this, send it
1:23:26through, send the information back, and
1:23:28then we're going to get a nice summary.
1:23:30You'd like to need about eight solar
1:23:31panels, this many kilowatt hours per
1:23:33year, estimated monthly production. Um
1:23:35what incentives can I get? So, we can
1:23:38actually click through here to see what
1:23:41this returned. So, it returned uh all of
1:23:43this information. We actually have
1:23:44information about the federal
1:23:46incentives.
1:23:48Let's see what it can provide me there.
1:23:49The biggest incentive available is a
1:23:51federal tax credit, which can cover 30%.
1:23:53How much money specifically?
1:23:58Boom. So, we've got a very
1:23:59conversational agent already that's able
1:24:01to provide information based off the
1:24:03findings of the solar API. We can chat
1:24:05back and forth to get more information,
1:24:06uh which is very helpful. Great. What's
1:24:08the next step?
1:24:12So, we can actually change the prompting
1:24:13around to ensure that it leads them
1:24:14towards that lead capture. And so, now
1:24:16it's asking for the name and phone
1:24:17number, but we don't have our Airtable
1:24:18settings set up here correctly. So,
1:24:20we're going to set that up quickly now,
1:24:21and then we're going to set up our
1:24:22knowledge base as well uh before we
1:24:24deploy this over to our chat widget. So,
1:24:26we're getting there, uh very close to
1:24:28having this all wrapped up. Save that.
1:24:30Now, we're going to head over to
1:24:31airtable.com.
1:24:32A link to sign up will be in the
1:24:33description and also in the resources.
1:24:35Now, if you guys use that link, it gives
1:24:36my team some free Airtable credits, and
1:24:38I'd appreciate you using that link
1:24:39because we do spend a lot on Airtable
1:24:41based off how much we use it. So, so
1:24:43what you want to do is sign up to
1:24:44Airtable. It's free to create an
1:24:45account. Then you're going to want to go
1:24:46down to the bottom left here and create
1:24:48a new [music] one. Going to build our
1:24:49own app. And then if you go back to our
1:24:51plan, um you can ask, "Can you create me
1:24:54a CSV file to import into Airtable to
1:24:58set up the columns quickly?" And
1:25:00actually, just to remind it, because
1:25:01we've given it so much information, I'm
1:25:03going to give it a reminder.
1:25:11So, we can paste that in there. And
1:25:13also, we're going to head over here and
1:25:14see if we can go back to that last
1:25:16execution. Um
1:25:17editor logs. Get these up. Um
1:25:20>> [music]
1:25:20>> and if we go back to the chat trick, if
1:25:22you go back to the overview, and we go
1:25:24to the executions and see if we can get
1:25:26back to that information that was
1:25:28provided from the agent. Back even more,
1:25:30maybe? As well? Yep, so called it, and
1:25:32this is the information we get back. So,
1:25:34I'm just going to send this to here as
1:25:36well. A reminder here is what the solar
1:25:40PR returned. So, there we go. We should
1:25:42be able to give us a little bit of a a
1:25:44CSV that's going to enable us to set up
1:25:46our Airtable base really quickly. So,
1:25:48it's kind of like a spreadsheet, but
1:25:49you're able to do a lot more with that.
1:25:50There's automations, you can make
1:25:51dashboards. Love Airtable. I honestly
1:25:53think it's one of the best apps uh ever,
1:25:55and I use it a lot um for various
1:25:56things. There's great AI features
1:25:58throughout it. So, when say you're doing
1:26:00hiring or recruiting, and you've got
1:26:01people who are coming in and applying
1:26:02through forms, so you can have an
1:26:03Airtable form connected to a
1:26:04spreadsheet, and then when they come in,
1:26:06you can have automatic AI fields that
1:26:08analyze the information and do certain
1:26:10things and start automations. It's
1:26:11really an awesome thing to to know how
1:26:13to use. Super versatile. So, we're going
1:26:15to click to download the CSV here. Going
1:26:16to head over to our Airtable. I'm going
1:26:19to Perhaps I could upload this using the
1:26:22assistant here. Set up the base core.
1:26:32So, there's a nice AI assistant here as
1:26:34well if you're a newbie, and it should
1:26:35be able to help us get this set up a lot
1:26:36quicker. So, you can collapse this on
1:26:37the side for now, like this. Now, I am
1:26:39going to remove the email cuz we are
1:26:42collecting that. Going to delete both of
1:26:44these rows. And just make sure we've got
1:26:45the right settings here. So, yep, that's
1:26:47created time should be as a date and
1:26:51include the time. Default to current
1:26:52date. Um we have the name. I think we
1:26:55can swap the name over to here. Make
1:26:57that the primary field. We can delete
1:26:58the lead ID. Got address, monthly bill
1:27:01in USD, latitude and longitude as
1:27:03numbers, estimated annual energy number,
1:27:06max panels number, notes, chat session
1:27:09ID. That all looks good to me. We're
1:27:11going to call this Smith's Solar CR.
1:27:15Give this an icon of a sun. Boom. We can
1:27:18collapse this down. We're going to
1:27:20delete this table here by right-clicking
1:27:22on the table one. Now, we just have our
1:27:23leads table. So, we're pretty much ready
1:27:25to go here. I'm just going to make sure
1:27:27I've copied these. Command C. And then
1:27:29what we're going to need to do is come
1:27:30to our settings. We're going to go to
1:27:31the builder hub. Going to go to personal
1:27:33access tokens. Going to create a new
1:27:35token. Going to be called our
1:27:39Going to add a scope. Can read. Can
1:27:41write. Can read the schema. Can write
1:27:43the schema. And that should be good
1:27:45enough for now. We can add a base to
1:27:47this, the Smith's Solar CRM. And we can
1:27:49create this token. So, we copy this,
1:27:51head over to our uh N8N here, and we're
1:27:54going to go back to our editor. Look
1:27:55into the create lead tool. Create a new
1:27:57credential. Paste in the access token.
1:27:59And you'll see, we need to make sure we
1:28:00have these ones. We've enabled all of
1:28:02these. We save that. It's tested it.
1:28:03It's working correctly.
1:28:06Um we're going to remove the email
1:28:07mentioned here, generated a solar
1:28:09estimate.
1:28:11For this, I'm going to delete these
1:28:12fields. We're going to set it as fixed.
1:28:14We're going to go by URL. Um it's going
1:28:16to be create a record, which is what we
1:28:18want. Then we're going to head back over
1:28:19to our
1:28:20um
1:28:21base here. Go back. Back. Back. Pop back
1:28:24into our Smith's Solar CRM. We're going
1:28:26to grab the
1:28:28URL here.
1:28:30Hit back.
1:28:32Paste this in. [music]
1:28:36And there we go. It's loaded in. You can
1:28:37just paste that same URL again. It's
1:28:39going to automatically populate these
1:28:41variables. So, the name is going to be
1:28:43uh we can add here lead full name. Oh,
1:28:46the date and time, actually, it's going
1:28:47to be automatically filled, so we can
1:28:48delete that. The phone is going to be
1:28:52lead.
1:28:55That's always what it's doing. Monthly
1:28:56bill. And for these, I think we can uh
1:28:59set this to an expression. We can add
1:29:01the session ID
1:29:03in there as well. And then we are pretty
1:29:04much good to go. We've got a description
1:29:06here. We've set the description of the
1:29:07tool. Then, pretty much ready to give
1:29:10this a spin. If we save that, we go and
1:29:13click this reset chat button, and say,
1:29:14"Hey, man."
1:29:17I'm going to grab this address again.
1:29:19I want an estimate broski. Ed Eddie is
1:29:22this and I pay like see if we can get a
1:29:25bit tricky with it a bit slang. 200 a
1:29:28month my bro.
1:29:30See if it's a little bit flexible and
1:29:32intelligent with the potential slang
1:29:34it's going to receive. It's not looking
1:29:35good both. What are you even doing
1:29:36there? Okay, something's not working
1:29:38here. I'm going to stop it. Oh, it did
1:29:40actually respond to it eventually. We
1:29:41can go sure my name is Leon Killsbury
1:29:47and I my number is not sure why it's not
1:29:50showing us these things popping up one
1:29:52by one which is not ideal but seems like
1:29:54it's working away in the back end.
1:30:02There we go. We got Leon Killsbury
1:30:03popped into the CRM here. If we delete
1:30:06this, we've got his name, number, the
1:30:08address, the monthly bill, the latitude,
1:30:09the longitude, the estimated annual
1:30:11sunshine hour or whatever that is,
1:30:12energy estimated monthly energy annual
1:30:16and monthly energy, max panels, and the
1:30:18notes, and the chat session. So, we're
1:30:19successfully logging the information in
1:30:21the CRM. Big win. Key skill for you guys
1:30:23to know is how to interact with
1:30:25Airtable. It's such a versatile thing to
1:30:27be interacting with. You know how to now
1:30:29write information. Retrieving
1:30:30information is a bit different. We're
1:30:31not going to be going into that just yet
1:30:33but for all intents and purposes, we are
1:30:3595% of the way there. We're just going
1:30:37to add on our knowledge base now and
1:30:39then hook it on to the
1:30:41N8N chat UI which is going to allow us
1:30:42to quickly put this on to a web page so
1:30:45that our client's customers can interact
1:30:46with it. All right, so now we need to
1:30:47make a separate section of this workflow
1:30:49to do the knowledge base and that's
1:30:52going to start with a new node here
1:30:53which is a form. Now, N8N is a little
1:30:56bit trickier than other platforms to set
1:30:57up these
1:30:59knowledge bases but it is worthwhile in
1:31:01the end. So, I'm going to show the
1:31:02easiest way to just get some information
1:31:04or a couple document put into a
1:31:05knowledge base, a quite basic one for
1:31:07you to use for your first clients.
1:31:09There's all sorts of layers of
1:31:10complexity here like rag and vector
1:31:12databases and so on but for now we're
1:31:13just going to keep this nice and simple.
1:31:15So, we're going to go going to go to AI
1:31:17here. Going to find a document loader. I
1:31:20believe it's what we're looking for
1:31:20here.
1:31:24Well, that's one part of it. Then we're
1:31:26going to add in a vector store here.
1:31:29Simple vector store. [music]
1:31:30We're going to add documents to vector
1:31:31store. Insert. We're going to create a
1:31:33new one.
1:31:37So, this is the key that's going to be
1:31:39basically the identifier of this vector
1:31:40store. So, we need to remember what that
1:31:42is. We've just created a new one called
1:31:44tutorial in this case. We're going to
1:31:45insert some documents.
1:31:48Then we're going to connect this
1:31:49document to this default data loader.
1:31:51We're going to add embeddings. We're
1:31:52going to use might as well use some
1:31:54Google Gemini ones in this case. Gemini
1:31:56embedding 001. We're going to set this
1:31:57to binary. We're going to have simple
1:31:59splitting on and then we are pretty much
1:32:01good to go. Okay, so what's happening
1:32:02here is we're going to be able to upload
1:32:03a document to a form in a second. It's
1:32:05going to push it into this vector
1:32:07database and insert it, convert all of
1:32:09the information into binary which is the
1:32:11way that the computer is going to be
1:32:12able to read and understand it. We're
1:32:13going to be using a data loader here to
1:32:14essentially chop up that document which
1:32:17I'm going to give you guys in the
1:32:17resources. Just a an AI generated Smith
1:32:20Solar context document talking about the
1:32:22business and what they do. It's going to
1:32:23chop that into chunks and what a
1:32:25knowledge base for a vector store does
1:32:27or a rag system which is known as
1:32:29retrieval augmented generation, that
1:32:31means that at the time of generating an
1:32:32answer, we are essentially [music]
1:32:34retrieving some information and
1:32:36augmenting the generation with that
1:32:37information. So, in this case, it's
1:32:39going to be chopping up the document
1:32:40with the data loader. It's then going to
1:32:42be running each of those chunks through
1:32:43this embedding model which basically
1:32:45converts the meaning of that chunk into
1:32:48a multi-dimensional coordinate. Imagine
1:32:50it in just 3D space. If you have like a
1:32:52cube, certain things will mean say a dog
1:32:55might be here and a cat might be here
1:32:56and an airplane might be here. The
1:32:58closer they are within that
1:33:00multi-dimensional space, easiest to
1:33:02imagine it as three-dimensional, that
1:33:03means that those things are similar.
1:33:06Therefore, the chunks about the company
1:33:07and their history or the services or say
1:33:10the services and the pricing might be
1:33:11relatively close together whereas ones
1:33:13about
1:33:14I don't know their vision or mission
1:33:16might be a little bit different. So,
1:33:17this means that when we ask a question
1:33:19and the agent uses the knowledge base,
1:33:21it's going to be taking in the question
1:33:23from the user, running it through the
1:33:24same embedding model which you'll see we
1:33:26set up in the second. That means it's
1:33:27going to be able to relate the message
1:33:29from the user to the information in the
1:33:31knowledge base. It'll say, "Hey, we've
1:33:32got this question. What have you got
1:33:34that's similar to that kind of content?"
1:33:36If it's about the services or pricing,
1:33:37it's going to find those things in the
1:33:38vector space, pull them back down, and
1:33:40then give them to the agent when it
1:33:42comes to actually writing the answer.
1:33:43So, that's a basic of a retrieval
1:33:45augmented generation system using a
1:33:47vector database and what's called
1:33:49semantic search. Might seem a bit
1:33:50complex but there's plenty of videos
1:33:52breaking that down a lot more simply.
1:33:54I've given you the high level of what
1:33:55you need to know there and we can just
1:33:56jump into actually putting some
1:33:58information into this and then
1:33:59connecting it up to our agent.
1:34:02So, we don't want any authentication.
1:34:04We're just going to call this upload
1:34:05docs to Smith Solar knowledge base.
1:34:07Yeehaw. Form elements, this will be a
1:34:10file. This will be a Actually, let's
1:34:12just leave it as all file types. In this
1:34:14case, let's go doc. This can be a
1:34:16required field. This will be
1:34:24So, we can save this. We can execute the
1:34:26workflow. Going to pop this up for us.
1:34:27We can choose to Actually, let me pop up
1:34:29pages. So, this is the document here.
1:34:31I'm just going to export it to a docx in
1:34:34this case. This will be available on the
1:34:36school, of course. bunch of
1:34:37information. Each of these chunks will
1:34:39be see the battery storage if they're
1:34:41asking about their installation process.
1:34:43It will be able to find and retrieve
1:34:44this segment.
1:34:46And so now we have this. I can choose
1:34:47the file. I go to downloads. Smith Solar
1:34:49KB in a Word document. I upload that,
1:34:52submit it. Now, the workflow
1:34:53successfully executed. Open up this. We
1:34:56now have how many different chunks. Page
1:34:58content. See here we have our different
1:35:00chunks and this must go on for quite a
1:35:02long time. So, it's essentially chopped
1:35:03up the document into chunks and it's
1:35:05going to then load it into the vector
1:35:08store using this based off the
1:35:10embeddings that Google has provided. And
1:35:11now the final step for this is to
1:35:13connect up our vector store on the chat
1:35:15agent. We can go add another tool. We
1:35:17can go to simple vector store as we had
1:35:19before. Retrieve documents. We want
1:35:21[music] the two
1:35:22call this to access a knowledge base of
1:35:28for
1:35:29documents containing answers
1:35:31information. Now, we want to change the
1:35:33vector store key to the tutorial one we
1:35:35just set up. Limit is the number of
1:35:36chunks it's going to return. So, we
1:35:38probably only want I mean probably
1:35:40the top two to be honest.
1:35:42In this case, we don't want it to
1:35:44re-rank. And then we're going to set up
1:35:46the embedding model to be the same one.
1:35:48You have to use the same one with Gemini
1:35:50and we've got that one selected there.
1:35:52Now, it's getting a bit messy. I don't
1:35:54like this. I like having my vector store
1:35:56in the middle here. Pop that down there.
1:35:59Select this. Pull this bad boy down. And
1:36:01now we are looking a bit better and a
1:36:03bit cleaner, aren't we? Little bit OCD
1:36:06here. Never hurt anyone. Now, we are
1:36:08good to go and give this a spin. Save.
1:36:11Open the chat. Start a new session. Hey
1:36:13man, where are you located? Remember we
1:36:16had this information in the prompt here
1:36:18that we needed to change. So, knowledge
1:36:20base. We're going to cut this out. We
1:36:22just say, "You use your knowledge base
1:36:26vector store tool to search for answers
1:36:31to questions about solar."
1:36:36Save that. We're going to start a new
1:36:39session. Hey man, where are you located?
1:36:42If we pull up our document here, should
1:36:43say
1:36:45Central Texas. [music] And we have
1:36:47Central Texas in here somewhere. What's
1:36:49another question we can ask? What
1:36:51inverters do you offer? Microinverters.
1:36:54And there you go. We are successfully
1:36:56answering from the knowledge base. We
1:36:57have got all of the functionality
1:36:59completed for this build now and it's
1:37:00all nicely fit onto one
1:37:03canvas here which is always nice. So,
1:37:05that is the entire build. The last step
1:37:07now to take this, connect it to N8N chat
1:37:09UI. We're going to do that now. Righty.
1:37:11So, now the final step, we're going to
1:37:12go on to n8nchatui.com.
1:37:16We can go down here to start designing
1:37:18my free customized widget.
1:37:20>> [music]
1:37:20>> And we want this to be a
1:37:22pop-up. We can change the colors around.
1:37:24Let's say cuz it's solar, we want to
1:37:26make it orange. That's orange. [music]
1:37:29Circle looks nice. See we're editing it
1:37:31down here. Make it You can change the
1:37:33icon for now. I don't think we need to
1:37:34worry about that. Order radius. Don't
1:37:37need to worry about that. Bubble size.
1:37:38Maybe we want to crank that up a bit.
1:37:40The tool tip. Say put a little message
1:37:42there. Window itself.
1:37:44Border radius style. Avatar size. It
1:37:47looks a bit gross when it's too big. Not
1:37:49going to worry about the starter prompts
1:37:51and stuff for now. You guys can play
1:37:52around with that as you like. Don't need
1:37:54to accept files. Let's down enable file
1:37:57uploads. Enable voice input. No for now.
1:38:00Think that it's rounded. Don't really
1:38:01like those colors.
1:38:03Can't change the footer. It's already
1:38:05got the branding in it. So, you need to
1:38:07pay to activate this so you can get it
1:38:08without the the branding. That's pretty
1:38:10standard. Once you're in there we can
1:38:12change that [music] hideous orange color
1:38:15there. Background color.
1:38:17Okay. Let's make this gray one. Make
1:38:20this look like an iPhone maybe.
1:38:22We want to change the text color to
1:38:23white, I think. No, that's not Oh, my
1:38:26god. That's not what we wanted to do.
1:38:27Text color for this should be black.
1:38:29Black. For the user message, we want the
1:38:30text to be There we go. Maybe make it a
1:38:32bit bluer. I'm sure you guys are big
1:38:34enough and ugly enough to figure this
1:38:35out. It's just playing around with the
1:38:36settings. We can go Smith Solar
1:38:40assistant
1:38:42and then we can close that down. That
1:38:44all looks very good. Now, we need to
1:38:45connect it. We can go to our Solar
1:38:48Legion chatbot here. We want to save it.
1:38:50We want to open up this.
1:38:52We want to change this to publicly
1:38:55available one. Make sure that is
1:38:57publicly available. We want to turn this
1:38:58on and active.
1:39:01Make sure we've got that copied and
1:39:02we're going to hit back over to this.
1:39:05And then we want to test it see if it's
1:39:07working. Great.
1:39:09And we're getting our functionality
1:39:10working correctly in here. I'd probably
1:39:11shrink the text size down a little bit,
1:39:13but for now we can just go to embed,
1:39:14close this down, copy it, and then what
1:39:16you want to do is head over to the site
1:39:19here, which
1:39:20is which is just called a playcode HTML.
1:39:24You get this free online HTML editor.
1:39:26You can just go to the editor directly,
1:39:28and then we have this here. Going to
1:39:30close out of the AI chat. Going to go
1:39:31into the index.html. Let's just get this
1:39:34guy [music] to piss off. We'll close
1:39:35this, and we can scroll right down to
1:39:37the footer. Actually, not to the footer.
1:39:38We want to go above it. So, this is the
1:39:40website code. Might look a little bit
1:39:41scary here, but basically you want to
1:39:43look for where the body starts, and we
1:39:44want this to be the last thing to load
1:39:46on the page. So, we're going to scroll
1:39:47down to the end of the body here, and we
1:39:49can put it in here. Paste in that
1:39:51segment, we save it. Well, we should be
1:39:53able to go back to the preview. If we
1:39:55get rid of this somehow, I don't know
1:39:56why this founder guy won't leave me
1:39:58alone. Anyway, you can see here we have
1:40:00our chat widget, and if we type "Hey
1:40:02man,
1:40:03nice website, bro." But you get the
1:40:04idea. Look at this behind it. We can
1:40:06chat to it. It's going to have the same
1:40:07functionality as we had on N8N there,
1:40:09but that is the end of the build. We
1:40:10have successfully put our Solar Legion
1:40:12chatbot onto a website. We have our
1:40:14document loading here. We have our
1:40:16workflow within a workflow here, and it
1:40:18has all been set up. We get to see the
1:40:20debugging process here and there
1:40:21throughout that using the GPT and the
1:40:23relevance tool, and going back and forth
1:40:25with the N8N AI to get our final result.
1:40:27Let's get on to the next build and see
1:40:28how it connects to this one as I could
1:40:30build on for it that you can sell to
1:40:31your clients. This template will be
1:40:32available on school for you guys to
1:40:33download if you want the full version.
Build 3: Speed to Lead Voice Agent
1:40:37All right, guys. Getting into build
1:40:37number three now. We're going to be
1:40:39working on a speed to lead system that
1:40:41connects directly with the last build
1:40:43that we did. Now, this is a really
1:40:45valuable thing to learn how to do
1:40:46because there's all these stats around
1:40:47it. You can pull it up. Basically, if
1:40:49you can get back and respond to a lead
1:40:52who's shown interest in your business or
1:40:53your offer or your services, if you can
1:40:55get back to them within like two to five
1:40:57minutes, the conversion rate on those
1:40:59jumps by like four or 500%. I'll put the
1:41:01exact stat on the screen, but it's
1:41:03pretty ridiculous. And for business
1:41:05owners, it's basically like free money
1:41:06if you come to them and set up a system
1:41:08like this. So, it's a great one to
1:41:09learn. This is a like one way of
1:41:11implementing it. This is with a voice
1:41:13agent, but we're going to be walking
1:41:14through the same process that I've been
1:41:15showing you. We're going to be speaking
1:41:17it out with the GPT here, getting clear
1:41:19on it, doing a bit of research, figuring
1:41:20out the best approach, and we're going
1:41:21to be putting it into our automation
1:41:22brief generator here, popping over to
1:41:24N8N, and then also we're going to be
1:41:26going to Retail, where we're going to be
1:41:27setting up a voice agent, and that's
1:41:29going to be the platform that we use to
1:41:31allow them to call us, chat to our AI
1:41:33agent over the phone. It's going to ask
1:41:35them a bunch of questions, qualifying
1:41:36questions as they're known, cuz
1:41:38basically when you have say someone
1:41:39interacts with the chatbot that we made
1:41:41in the last video, we now have a bit of
1:41:43information on them, but we don't know
1:41:44if they're a great fit for what we're
1:41:45offering. So, this is a qualification
1:41:47step, very common across businesses
1:41:49because often times you're going to have
1:41:50a limited capacity, or you'll have an
1:41:52offer or a service that is like tailored
1:41:54and suited to someone. At some point you
1:41:56have to narrow down your product and
1:41:57offering
1:41:58to be able to better suit certain people
1:42:00and also maintain some sort of
1:42:02operational streamlining because if a
1:42:04business offers everything to everyone
1:42:06all the time, they don't have many
1:42:08repeatable processes. So, businesses
1:42:09tend to niche down towards serving a
1:42:12certain group of people
1:42:13with certain sets of needs, and that is
1:42:15why a qualification in this form through
1:42:17a voice agent is such a essential part
1:42:19that you can basically sell to any
1:42:20business. So, for [music] this
1:42:21particular speed to lead system, they're
1:42:23going to give us a call. It's going to
1:42:24be a little bit different to how you'd
1:42:25normally run one of these. Normally,
1:42:26you'd use an outbound voice agent. So,
1:42:28voice agents there's two different
1:42:29types, outbound being
1:42:31we are sending the call. So, I am
1:42:33calling you. Say you've given me your
1:42:34phone number on say the [music] chatbot
1:42:36we made previously. As soon as that
1:42:37phone number lands in my airtable or my
1:42:39database, I can automatically send an
1:42:42outbound call to you, and you pick up,
1:42:44and it goes, "Hey, this is Wendy from
1:42:46Smith Solar. You just got a quote from
1:42:48us. I'm just reaching out to follow up
1:42:50with a bit more information, see what
1:42:51you're interested in, and explain some
1:42:53of our packages and services to you. Do
1:42:55you have a moment?" And so, we can chat
1:42:56back and forth, and like if you're new
1:42:57to this stuff, that might sound crazy,
1:42:59but it's very, very easy to get that
1:43:00kind of chat functionality going over
1:43:02the phone. But there is a bit of a
1:43:04gotcha here, and that there's starting
1:43:05to be a lot of regulation around voice
1:43:08agents, whether it's [music] inbound,
1:43:09outbound, robo calling, all sorts of
1:43:11stuff. But the main thing that you need
1:43:13to be aware of is that outbound calling
1:43:15in particular is particularly strict and
1:43:17in some countries as well. So, there's
1:43:19laws in the US, there's
1:43:21You can You can be sure that there's a
1:43:22whole lot of laws in the regulations in
1:43:24the EU. So, you need to be aware of what
1:43:26the laws and regulations are in the area
1:43:28that you're building in or the where the
1:43:29business is based that you're helping.
1:43:31That's an important thing. But as it
1:43:32pertains to this build that we're doing,
1:43:34it means that we're not going to
1:43:35actually go through the outbound setup
1:43:36because you're going to need to do all
1:43:37sorts of verification depending on where
1:43:39you are. You might need to send your
1:43:40company verification and do all of this
1:43:42rubbish. So, to keep this nice and
1:43:44streamlined, we're going to slightly
1:43:45tweak the speed to lead build. We're not
1:43:46going to be reaching out to them after
1:43:48they fill in that chatbot. We are going
1:43:50to be expecting that like yes, we've got
1:43:52your number now. Thank you from the
1:43:53chatbot, but we're going to pretend that
1:43:55we didn't reply back to them in the
1:43:57chatbot with, "Hey, here's our phone
1:43:58number. Give us a call." So, we're
1:44:00flipping it from an outbound to an
1:44:02inbound call, where we're going to be
1:44:03waiting for them to call our number.
1:44:06That's going to make it so much faster
1:44:07and more streamlined to get set up. But
1:44:09because I'm like that, I'm going to be
1:44:11giving you guys a little snippet that
1:44:12you can very easily add onto your
1:44:15N8N template. I'm going to include it
1:44:16with the final template for this build
1:44:18that if you wanted to switch it over
1:44:19from inbound to outbound and turn this
1:44:21into a proper speed to lead system, and
1:44:23you want to go through all of that setup
1:44:24and verification process that can get
1:44:26quite complex, to be honest, then it is
1:44:28there if you actually want to try and go
1:44:29sell this and and implement it. So, So,
1:44:31that's a rough overview of the build.
1:44:32They're going to call us. We're going to
1:44:34ask them a few questions using a Retail
1:44:35voice agent, and then we're going to
1:44:37analyze the transcript that comes out of
1:44:38that call, decide if they are qualified
1:44:40or not based on the criteria, and then
1:44:42we're going to update the lead in the
1:44:43airtable. So, automated system, they
1:44:45call, we check if they're a good fit,
1:44:47and then we update the lead in the
1:44:48airtable. So, for example, in the next
1:44:50build we're going to be talking about
1:44:51how a sales rep would take that
1:44:53information. They'd have these qualified
1:44:55leads in front of them, and those are
1:44:57the people they'd be hopping on calls
1:44:58with. So, it all ties together really
1:44:59nicely, super valuable, and you guys are
1:45:01going to be able to go sell the hell out
1:45:02of this thing when we're done. So, stick
1:45:04with me cuz we're getting there. So,
1:45:06first things first, we need to explain
1:45:07to the AI automation CTO here what we're
1:45:09looking to do. So, we can explain
1:45:10basically what I've just said to you
1:45:12here. "Hey man, so I am trying to create
1:45:13an AI automation with N8N that is going
1:45:16to act as a speed to lead system, and
1:45:18we're going to be using a
1:45:20uh
1:45:21Retail voice agent. We're going to set
1:45:23that up as a qualifier. It's going to be
1:45:25prompted to ask questions about the
1:45:26user, and then from that we'll take the
1:45:28transcript, and we're going to be web
1:45:29hooking from
1:45:31Retail. So, at the end of that call,
1:45:32we're going to fire a webhook, and we're
1:45:34going to catch that webhook in N8N, and
1:45:36then from there we're going to want to
1:45:37check that phone number against a lead
1:45:39that's already in our airtable CRM. So,
1:45:41we're going to want to look up and make
1:45:42sure that the person calling is someone
1:45:44that has already filled out
1:45:46our chatbot that we've collected their
1:45:47information from previously. And so,
1:45:48there's a little check there to make
1:45:49sure the caller matches up with some
1:45:51lead in our database, and then we're
1:45:53going to run it through a basic LLM step
1:45:55and analyze the call transcript that
1:45:57came from Retail, and we're going to
1:45:58look for certain features that means
1:46:00that they're qualified for our offer.
1:46:02That would be things like being in
1:46:03Texas, having enough budget, having a
1:46:06house that all of they own. And that LLM
1:46:08step is going to spit out a
1:46:09qualification as true or false, and then
1:46:12we're going to update the CRM with
1:46:14either qualified or not qualified. And
1:46:17that's the end-to-end pipeline for this
1:46:18build. So, can you ask me some questions
1:46:19to get clear on this? Then if you need
1:46:21to, you can do some web searching to
1:46:22figure out the best way to implement
1:46:23this. So, there we go. It's doing a bit
1:46:25of a search for us to help us prep for
1:46:26this. And obviously in this case, I've
1:46:27given it a pretty specific outline, but
1:46:29the great thing about these is like you
1:46:31could just state, "This is what I'm
1:46:32trying to do." And in this case, it's a
1:46:33very clear use case. It's a speed to
1:46:35lead system. It's quite common. But in
1:46:37your case, I'm teaching you these skills
1:46:39so that you can Maybe you could just
1:46:40take the whole transcript from a
1:46:41discovery call you do with a client and
1:46:43just stuff it in here and say, "Hey,
1:46:44help me figure out what I could build
1:46:46for them and get back to them with a
1:46:47couple proposals." That's a great way of
1:46:48doing it as well. Now, it's asking us
1:46:50some clarifying questions. So, which
1:46:52event are you firing into N8N? We're
1:46:53going to fire in the call ended the
1:46:55fields in the payload. So, that's the
1:46:57information that is being sent from
1:46:59Retail over to N8N. But that is going to
1:47:01be just the phone number and the
1:47:02transcript. That's all we really need.
1:47:04The airtable source of truth for
1:47:05matching callers is the phone number.
1:47:07Yep. So, we're going to have already
1:47:08collected the phone number from the
1:47:10previous stage where they interacted
1:47:11with the chatbot on our website. They
1:47:13gave us their phone number and their
1:47:14name, and we collected a bunch of other
1:47:15information about like their address and
1:47:17their monthly power bill and stuff, but
1:47:19that's not super relevant. The main
1:47:20thing is that we have their name and
1:47:21their phone number, and that's going to
1:47:23allow you to match it. So, yeah. The
1:47:25name The name is probably going to be a
1:47:26lot harder to match because they may say
1:47:28it differently over the phone, or the
1:47:29transcription won't pick it up
1:47:30correctly. So, the We really need to
1:47:31rely on the phone number as the way of
1:47:34matching up the callers to the existing
1:47:36leads. So, we just transcribed it all in
1:47:37there. Man, if you guys aren't using
1:47:39Whisper Flow, I don't know what you're
1:47:40doing. I'm I'm yapping to my computer
1:47:41all damn day at this point. So, here's
1:47:43the recommended outline. The webhook
1:47:44trigger. Yep, that makes sense. A
1:47:46responding to the webhook. I guess, sure
1:47:48if you want. Normalize the phone with a
1:47:49code node. Airtable, find lead. Yep. So,
1:47:52we're going to take that phone number,
1:47:53and we're going to check in the airtable
1:47:55database for that phone number. If
1:47:57there's no match, it's going to mark it
1:47:58as an unmatched caller and stop. If it
1:48:00is found, then it's going to go to the
1:48:01LLM qualification step. Going to send
1:48:02the transcript and any information, and
1:48:05it's going to force a structured output
1:48:06so that we can look to detect this. And
1:48:08we could also put some more information
1:48:10into the CRM, which is actually going to
1:48:11be pretty helpful. Which can actually be
1:48:12super valuable to the business owner at
1:48:14a later date because they can do an
1:48:15analysis of this data, of all the leads
1:48:17that they had, and determine what's the
1:48:19qualification rate, what are the most
1:48:21common reasons for not being qualified,
1:48:23why are we getting all these leads that
1:48:24are not qualified, why are we getting
1:48:25people who are not in Texas. So, it's a
1:48:28good thing a good practice for you as an
1:48:29AI automation agency owner or freelancer
1:48:32to be thinking about this from their
1:48:33perspective as well. How can I give them
1:48:35more than more than they asked for, more
1:48:37than just a speed to lead system? How
1:48:38can I give them an insight into their
1:48:39data like this? It's a It's a great
1:48:41thing to be trying to do. And then if it
1:48:42comes back as qualified being true based
1:48:44off the criteria we put into this LLM
1:48:46step, then we're going to update the
1:48:47airtable lead. So, that all makes sense.
1:48:49Couple design choices that matter so you
1:48:51don't paint yourself into a corner. Just
1:48:52to confirm with the call analyzed versus
1:48:54call ended. If we just need the
1:48:56transcript and the phone number, do we
1:48:58really need to do the call analyze step,
1:49:00or can we just use call ended? Phone
1:49:01matching will make or break this. Yep.
1:49:03Again, this is an MVP, so don't worry
1:49:05about making it too robust. For the
1:49:06qualification, they need to have at
1:49:07least
1:49:09$10,000 ready to put up for this, and
1:49:12the rest they can get in a loan. And
1:49:13drop that in there.
1:49:15So, this practice of working with an AI
1:49:16to define the scope as such a valuable
1:49:18skill. I'm finding myself using it over
1:49:20and over and over again. When you can
1:49:22give it a like a a goal, "Hey, I want to
1:49:24do this." and you ask it to ask you
1:49:26questions until it's able to clarify
1:49:28exactly what you're looking for, you can
1:49:29push it in the right direction. It can
1:49:30do searches of the web, pull information
1:49:32in. You can say, "Hey, I'd like to do it
1:49:33like this. Here's a video I found. Can
1:49:35you get the transcript?" Well, at least
1:49:37not within the GPTs here, but you could
1:49:39go get the transcript yourself, put it
1:49:40in. You just bring as much context in
1:49:42there and get it to dig through it until
1:49:43you agree on the scope for whatever
1:49:45you're trying to build. And this goes
1:49:46beyond just AI automation. Anything
1:49:48you're building with AI, anything you're
1:49:49doing with AI, it's a very very good
1:49:50skill to have. Getting it to ask you
1:49:52questions and confirming the scope of
1:49:53what you're trying to do. Okay, so now
1:49:55I've got this information here. I'm
1:49:56going to screenshot this as usual.
1:50:00Now, I need you to fill in all of these
1:50:02fields. Give me a a value for each of
1:50:04these fields so that I can paste across
1:50:06so I can run this tool to create the
1:50:07brief.
1:50:08The it the phone numbers will be stored
1:50:10in airtable with the plus format. So,
1:50:12it'll have the area code or the country
1:50:14code, sorry. So, it will always have the
1:50:16plus added to the front of it. If
1:50:17airtable returns multiple leads, don't
1:50:20worry about airtable returning multiple
1:50:21leads with the same phone for now. This
1:50:22is just an MVP.
1:50:27All right, so I can just start copying
1:50:28these over. And here, it's recommending
1:50:31open AI for the AI provider. I am
1:50:33actually going to just tell it to not do
1:50:35open AI because we've already set up our
1:50:36Google, so let's just keep using Google.
1:50:38You guys can figure it out now how to
1:50:40get your API key. It's pretty
1:50:41straightforward. You sign up and create
1:50:42an account, and you can find your way to
1:50:44the business or developer platform, set
1:50:46up your billing, and get an API and get
1:50:48an API key, so that's not too difficult.
1:50:50Let's go Google and the usage pattern,
1:50:52model preference. Let's just grab this.
1:50:55Google to Gemini 2.5. Let's Let's see if
1:50:59it'll get it this time. So, we can just
1:51:00copy all of these, drop them in here,
1:51:02and run. While that's cooking, we can
1:51:04come over here. Back to N8N. We can
1:51:06create a new workflow. Kind of pop open
1:51:09the N8N AI.
1:51:13Scroll down, view all.
1:51:16Unformat that, copy all of this down to
1:51:18here. Oh. And then, drop it in. This is
1:51:21such a completely different experience
1:51:22to when I first got into automation, and
1:51:24I'm so glad that you guys are joining
1:51:25now. And like this is this isn't even
1:51:27like the cutting edge of using AI to
1:51:29build the stuff. And I don't want to
1:51:30overwhelm you guys with
1:51:32with the very very very latest stuff.
1:51:34This is really what you need to start
1:51:35thinking in the right way. Very simple
1:51:37set of tools that are free to use or
1:51:39very very cheap to use. There's a lot of
1:51:41more like more advanced paid tools that
1:51:42you guys can get into, but it's becoming
1:51:44a very very very good time to be a
1:51:46builder because because anything that
1:51:48you can think of and explain to an AI,
1:51:50it can help you to figure out how to do
1:51:51that. And it's a bloody awesome time to
1:51:53be alive. All righty, so we're looking
1:51:55pretty good already. It's pretty much
1:51:56one shot of this, which is great.
1:51:59Um what else have we got to do? Just
1:52:00configure these. Airtable base ID,
1:52:02airtable ID for leads. Look on this bad
1:52:05boy. Get out of here. Airtable base ID
1:52:07and airtable table ID. It's easy enough.
1:52:09So, we can get back over to airtable, go
1:52:11into our Smith Solar CRM. Now, one thing
1:52:14I may do is just click this, copy that,
1:52:17hit back to our buddy the GPT. Say,
1:52:19"Here are the rows or the columns,
1:52:21sorry, that are on my spreadsheet right
1:52:23now in on the airtable, sorry. Is this
1:52:26set up correctly or do I need to add
1:52:27some more columns and jiggle things
1:52:29around?" It looks like it hasn't grabbed
1:52:30that top row. I'm just going to have to
1:52:32screenshot these.
1:52:40I could do this manually. I could just
1:52:42look through and see what the fields
1:52:43are, but we're getting next level lazy
1:52:44these days, and I'm totally here for it.
1:52:46If you want to get extra lazy, you can
1:52:48do this. Okay, can you please give me
1:52:50that in a CSV format? I need the entire
1:52:53CSV
1:52:55header row so that I can input that CSV
1:52:57into airtable and set this up in one
1:53:00shot if possible. I don't know how you
1:53:02do it, but it needs to
1:53:03automatically detect the correct kind of
1:53:06field so I don't have to go through and
1:53:07manually update all the field types. I
1:53:09don't think that last bit's possible,
1:53:10but yeah, won't reliably auto detect
1:53:12fields from this alone. Now, this is
1:53:14what's called CSV or comma separated
1:53:16values. So, basically you have a whole
1:53:17bunch of things that are separated by
1:53:18commas, and these determine like the
1:53:20different columns, right? So, name,
1:53:22created time, and then [music] name is
1:53:24here, the created time is here. And then
1:53:26what we can do is say,
1:53:28let me download that CSV. So, it's now
1:53:31just going to make it into a little file
1:53:32for us, give it to us to download.
1:53:34Great, so we've got the CSV now. We hit
1:53:36back to airtable. Just going to make a
1:53:40import new table CSV file local file.
1:53:44Bam. Upload that bad boy. Import your
1:53:46file, create a new table just for the
1:53:48sake of this. Can I have it got it
1:53:50right? Looks like pretty much good, I
1:53:52think. Name, created at. It should be a
1:53:54phone number, probably, mate. Come on
1:53:56now. Think we could probably not worry
1:53:58about that fancy phone number in the
1:54:00format. Get rid of that. Address. I
1:54:03don't know why that would be a select,
1:54:04mate. Same
1:54:05monthly bill. Number number number
1:54:08number number long text. Probably don't
1:54:10need a long text for that. Qualified,
1:54:13yes or no. Qualification meets criteria.
1:54:15Yep. State can be a short text. Cash
1:54:18available, number. Last call, long text.
1:54:21[music] Yep. Last call at. Last call ID
1:54:23can be a single line text. This can be a
1:54:25single line. I guess that's actually a
1:54:27select. So, I've got a qualification
1:54:29values here. Here's qualified overall,
1:54:31home owner, yes, state, cash available,
1:54:33and then whether the call matched up in
1:54:35the database or not. So, we can import
1:54:36that. All right, so now we can delete
1:54:38the old leads table. Just get that out
1:54:39of here. You normally wouldn't do it
1:54:40this way around, but this is just a lazy
1:54:42way, if I'm honest. Qual leads again.
1:54:45So, now, as we were doing, we need to
1:54:47get the airtable table and base ID,
1:54:48which can be done in here, I believe. I
1:54:51would say that this is the table or the
1:54:53base, sorry. And this second one, so if
1:54:55you just double click, you see it can
1:54:57select these chunks. This would be
1:55:00I don't know, the workspace. This would
1:55:01probably be the base room, and this and
1:55:04this would be the table. So, let's grab
1:55:06that. See if I got it right. Our phone
1:55:08name. Now, I don't know what this phone
1:55:10field name is, so I'm just going to ask
1:55:11it. Um ask, "What is the phone field
1:55:14name in the workflow configuration
1:55:15step?"
1:55:18Got you. Got you. Got you. See, so it
1:55:20can help you figure out what the hell's
1:55:22going on here. So, basically what we
1:55:23have here is a a search airtable search,
1:55:26and it has a formula called a filter by
1:55:28formula. These can be quite tricky, but
1:55:29AI can help you write them. Basically,
1:55:31it's saying we want to filter the
1:55:32airtable database by phone. So, what
1:55:34it's trying to make sure is that when we
1:55:36are looking in the the columns of the
1:55:37airtable, we need to get the exact right
1:55:39name in order to have
1:55:41the the filter by formula return the
1:55:43right value. So, here we have phone, and
1:55:45it's just spelled phone, and we have
1:55:47phone here. Now, I don't really know why
1:55:49I'd need a but the filter
1:55:54Now, I'm asking it, "Is this redundant
1:55:55because we don't seem to be putting an
1:55:57expression?" So, you'd think that these
1:55:59brackets would be also in here. So,
1:56:01yeah, that's redundant. Great. Good job.
1:56:03See, we still got the edge on this AI,
1:56:05man. Like they're they're not all that,
1:56:08you know? Not just yet, buddy. Not just
1:56:10yet. So, this is actually not doing
1:56:12anything as far as I can tell. Oh, no,
1:56:14no, I think it it actually modified it.
1:56:16Yeah, so there you go. If you hide this,
1:56:17buddy, you can see now it's taking the
1:56:19phone field name equals the value from
1:56:23equals the value from the actual phone
1:56:25call. So, it looks a little more
1:56:26complicated now, unfortunately, but that
1:56:28makes it a little bit more resilient if
1:56:29you were to change things around. So,
1:56:30let's just do our usual walk-through of
1:56:32the build to make sure we understand
1:56:33everything. So, Retail AI uh call ended
1:56:36webhook. So, we're going to need to set
1:56:37this up within Retail in a second. It's
1:56:39post. This [music] is just some basic
1:56:40information here. That's all good. And
1:56:42then we have a respond 200 okay. So,
1:56:45this means that it's going to fire back
1:56:46to Retail to let them know, "Hey, look,
1:56:49everything's all good. Like you don't
1:56:50need to keep keep trying to keep trying
1:56:51to send stuff our way. Everything is
1:56:53okay. 200 response." [music] Um there's
1:56:55different response codes on the web. Uh
1:56:56200 is okay. So, basically an app will
1:56:58send back something like like it might
1:57:00send back a 404. You might have seen a
1:57:02404 error code when you try to go to a
1:57:04web page that doesn't exist. It sends
1:57:05back an error code which loads in your
1:57:06browser as like 404 error. In this case,
1:57:09we're just letting Retail know, "Yeah,
1:57:10mate, got it. Thank you."
1:57:12And it can move on. Then we're going
1:57:14into setting up some workflow variables
1:57:15as we've done before. Getting into this
1:57:17practice of setting them here so we've
1:57:18got one place rather than having to dig
1:57:19through five different nodes. Like do
1:57:21all these different airtable nodes we'd
1:57:22have to dig through. So, we're just
1:57:24variable-izing variable-izing? Is that a
1:57:25word? I just made it a word.
1:57:27Variable-izing these values so that we
1:57:29can reuse them later on and easily
1:57:31change them. As we just covered this
1:57:32phone field name, a little bit overkill,
1:57:34but does a job. And here is an easy way
1:57:35for us to change that qualification
1:57:37criteria. If say the owner owner said,
1:57:39"Hey, no, our new criteria is $12,000."
1:57:42we could easily come in here and change
1:57:43this. So, that's all good. Normalize the
1:57:45phone number. So, this is a helpful
1:57:47step. This is the difference between
1:57:48using an AI to generate it and just
1:57:50doing it yourself. If I'd shown you guys
1:57:51the manual way to do this of just like
1:57:53node after node after node, we
1:57:54definitely would have skipped this. So,
1:57:56AI can be very helpful to think through
1:57:58all the possible edge cases. As you saw
1:57:59even in the GPT, I like, "This is an
1:58:01MVP. Don't stress it too much." cuz
1:58:02otherwise it gets a little bit too
1:58:03complex. But, it can really really think
1:58:06through all the edge cases and help you
1:58:08to build something that's much more
1:58:09production ready straight away within
1:58:11your first attempt. So, this is just
1:58:13returning a normalized phone number. So,
1:58:15I think it's Yeah. So, it's So, it's
1:58:17using a regular expression here and
1:58:18getting it formatted. So, that's just a
1:58:20nice checking step. Not too difficult.
1:58:22You guys don't need to know that. You
1:58:23could ask the AI to explain that code to
1:58:24you, but it's honestly nothing that
1:58:26interesting. Then we're going to search
1:58:27the airtable for that phone number so we
1:58:29can connect up the person we chatted to
1:58:30on the website up with the person who's
1:58:32calling. So, it's going to be passing in
1:58:33that base and table ID that we got
1:58:35earlier. We've got that filter by
1:58:36formula that's going to basically look
1:58:37at the whole sheet and say,
1:58:39>> [clears throat]
1:58:39>> "Hey, if this value" in this case that
1:58:41phone part was the first bit here. This
1:58:43part means if the phone field in
1:58:45airtable equals the phone number that we
1:58:47get from Retail, then return that to
1:58:49me."
1:58:49>> [music]
1:58:49>> And we're just asking for the first one
1:58:51in this case. If if we did find a lead,
1:58:52and it's just doing a check of if it's
1:58:54if the array length is greater than
1:58:57I guess it's zero. Yeah. So, if what was
1:58:59returned from this is greater than zero,
1:59:01then we're going to Oh, well, if it
1:59:02wasn't it's going to go down and log an
1:59:04unmatched call. [music] In this case
1:59:05we're not actually doing anything with
1:59:06it. You could quite easily set this up
1:59:08to go into a separate table in the air
1:59:09table, but we're not really bothered
1:59:10with that right now. Then we've got the
1:59:12where the action happens. We've got our
1:59:13buddy Gemini 2.5 flash. Did they set it
1:59:15up this time? Nope, still can't get it
1:59:17right. Pop that in there. I've got a
1:59:19Google account already set up. Then we
1:59:20have this AI agent step, just a basic
1:59:22qualification prompt using the
1:59:23information we gave into that original
1:59:25brief. They need to be in the state of
1:59:27Texas. They need to be a homeowner and
1:59:29they need to have cash available now at
1:59:30$10,000. Now here as you see, we could
1:59:33again I'm not smart on this AI like over
1:59:36and over. Let's go expression. We have a
1:59:38bit of an issue here cuz look at these
1:59:40things these are not variable-ized. So
1:59:42if we go into our workflow configuration
1:59:45a bugger. We're going to have to do it
1:59:46later. Actually no, let's try doing it
1:59:47now. Unfortunately we're going to need
1:59:49to wait until we actually get a webhook
1:59:50from Retail to test this properly, but
1:59:51what we're going to be able to do is
1:59:52come back in here, pop this out and then
1:59:55change these to variables based off this
1:59:56workflow configuration. So when we
1:59:58change it at that node it will
2:00:00automatically update these like I was
2:00:01mentioning. So that's going to make it
2:00:03easy to manage for us moving forward if
2:00:05our client makes any changes to the
2:00:07qualification criteria. So qualified,
2:00:09calculate if the lead is based on state
2:00:11Texas and homeowner true and cash
2:00:13available is greater than 10,000. If any
2:00:15value is unknown set qualified to false.
2:00:17So we've got a clean qualification
2:00:18prompt there. Again didn't have to write
2:00:20that, that was all included in the
2:00:21information that was given to us [music]
2:00:23from our N8N prompt that we generated.
2:00:25So stop that there. Uh Then we have our
2:00:28structured output parser. So that's just
2:00:29a fancy way of saying this output so
2:00:31that I can play around with the
2:00:32variables afterwards. So again this has
2:00:34been done by the AI, nice and easy. But
2:00:36basically it's going to be taking that
2:00:37output from the LLM and ensuring that it
2:00:39fits into
2:00:41>> [music]
2:00:41>> this shape here and if it does, then
2:00:43we're going to be able to get them and
2:00:45play around with those variables. Then
2:00:46we have the final step which is updating
2:00:47that lead record. So if they've been
2:00:49qualified we want to update it in the
2:00:50CRM so that
2:00:51>> [music]
2:00:52>> the sales team who's going to be in
2:00:53basically interacting with the next
2:00:54phase of this build in the final build
2:00:56we're going to be doing, they know that
2:00:57that's qualified and they're ready to go
2:00:58and they can go in there and close. All
2:01:00right, so with that looking pretty tidy.
2:01:01I'm pretty happy that we were able to
2:01:03one shot that. Now we can go over to our
2:01:05buddies at Retail retailai.com and what
2:01:08we're going to be doing is create an
2:01:09account or in my case I'm just logging
2:01:11in. You can try this for free.
2:01:18All right, so once you've made your
2:01:19account on Retail you'll see something a
2:01:20bit like this. We're going to want to go
2:01:22up to create a new agent. We're going to
2:01:23do a voice agent. We're going to click
2:01:25on a single prompt agent. Maybe I'll
2:01:28zoom this in a bit for you guys. And
2:01:29then go next. And then we're going to
2:01:30come in here and give you a little bit
2:01:32of an orientation on Retail, right? I'm
2:01:34going to zoom out actually so we can see
2:01:35everything in this little tiny screen I
2:01:37got. Hope that's not too zoomed out for
2:01:38you guys. It's a quick run down of how
2:01:40voice agents work. They work the same as
2:01:42any other text based agent. We need to
2:01:43give it a prompt that determines how it
2:01:45functions, who it thinks it is, how to
2:01:47behave. Kind of the glue that holds
2:01:49everything together. And just the same
2:01:50way we have a knowledge base that we can
2:01:52add in so that it knows how to answer
2:01:54questions from a knowledge base. We can
2:01:55set up custom tools like being able to
2:01:57in Retail's case quite easy to set up a
2:02:00booking over the phone. I actually did a
2:02:01video on that if you want to watch that
2:02:02I'll put that up here. So it's actually
2:02:04able to book calls in real time with
2:02:06people. So in this case we're just doing
2:02:07qualifications so we don't need to
2:02:09Actually you could technically if they
2:02:10were qualified you could add another
2:02:12step on the end that finds in a time
2:02:14that's available for them and books them
2:02:16in directly with the closer or the sales
2:02:18team. In this case we just want to
2:02:19qualify, but you could add that on.
2:02:21Maybe that's a little challenge you do
2:02:22after this. After this whole tutorial
2:02:24when you've done everything you can go
2:02:25and watch that other video of mine, come
2:02:26back and try to add on a real time
2:02:28booking ability so that you can make
2:02:30this even more powerful. But for now we
2:02:32don't need to worry about functions, but
2:02:33they are how you create the most
2:02:34powerful functionality in here. We have
2:02:36speech settings which you can go through
2:02:38and we'll have a play around with real
2:02:39time transcription settings, a bunch of
2:02:41other stuff in here. The main thing we
2:02:42want to look at is webhook settings.
2:02:43This is what we are most interested in.
2:02:46While we're here we may as well grab
2:02:47that. If we go back to N8N we're going
2:02:49to click on here. We can copy this, head
2:02:51back to Retail and we can paste it in
2:02:53here. We are basically telling Retail
2:02:55when we first set this up
2:02:57on call ended, when the call ends, we're
2:02:59actually Just to be safe I'm going to
2:03:01use call analyzed make sure that they've
2:03:02completed the transcript. We go call
2:03:04analyzed there. When the call has been
2:03:05analyzed and the call has ended, it's
2:03:07going to ping this URL which we're going
2:03:10to be setting when you like actually run
2:03:11your N8N automation you switch it to
2:03:13live. It's going to be sitting there
2:03:14waiting and waiting and waiting and
2:03:16waiting for someone to knock on their
2:03:17door. And when a call ends [music]
2:03:19Retail is going to know to go to that
2:03:21address, knock on the door and say hey
2:03:22mate,
2:03:23>> [music]
2:03:23>> you asked me to come talk to you every
2:03:25time a call was finished and was being
2:03:27or had been analyzed. Here I am I've got
2:03:29a bunch of information, go do whatever
2:03:30you want with it. And we have the
2:03:32webhook timeout here that links up to
2:03:33this response node. So like so when this
2:03:36pings back to Retail it's going to
2:03:37basically respond and as you can see
2:03:39here Retail is going to be waiting for
2:03:40us to respond. So just a bit of back and
2:03:42forth to make sure they know what's
2:03:44happening, we know what's happening.
2:03:45We've got this put in here now. We may
2:03:46as well give it a test. We head back and
2:03:48we uh By the way guys if you are
2:03:50wondering how I'm scrolling around with
2:03:52this, if you're on a
2:03:54trackpad it's pretty easy. If you're on
2:03:56a mouse and keyboard, if you hold the
2:03:58command key on your Mac or whatever
2:04:00thing but you can scroll in and out and
2:04:03you can kind of like move around. So
2:04:04what we want to do is to execute this
2:04:06workflow. It's going to be waiting for
2:04:07us to call the test URL and then we go
2:04:09test.
2:04:11Boom. It's going to grab that
2:04:12information, crank a doodle. And so
2:04:15looks like this failed due to our base
2:04:16and table ID so we're going to have to
2:04:17circle back to that in a bit to fix
2:04:19that. But it worked and we did receive
2:04:21some information. Come here. Here is the
2:04:23information that came out. So you So you
2:04:25get to see the kind of information that
2:04:26Retail is going to be sending back at
2:04:28the end of the calls. We get all this
2:04:29information. In this case it's a call
2:04:31started event whereas the transcript
2:04:33tool calls. So this doesn't have much
2:04:34data in it at all. Pretty empty. We're
2:04:36going to be giving it some data to work
2:04:38with in a second, but we connect it up.
2:04:39When a call ends it's going to be
2:04:41pinging over to Retail here. So that is
2:04:43a important step in this build. Now
2:04:45continuing our orientation we have the
2:04:46model selector up here. Let's go for the
2:04:482.5 flashlight. We can play around with
2:04:50the settings here. Temperature, just the
2:04:52randomness of the call. The lower the
2:04:54better and more predictable so we want
2:04:55it to be quite predictable. Can play
2:04:56around with the voices here which we
2:04:58will do in a second and the languages as
2:04:59well. So we've got our testing panel
2:05:01over here which we're used to, but I
2:05:02think we're pretty much ready to just
2:05:03jump into our prompt writing. Now we
2:05:06need to be pretty precise here because
2:05:07as we set up in that in N8N it's going
2:05:10to be looking for certain things in the
2:05:12transcript. So we need to make sure that
2:05:13the agent is set up to ask questions and
2:05:15walk them through asking those sort of
2:05:17things to get that information out of it
2:05:18so we can properly qualify them. So as
2:05:20always we're going to be trying to use
2:05:21as much AI here to help us as possible.
2:05:23So I'm going to head back over to our
2:05:25buddy here and I'm going to say uh I'll
2:05:28grab our Smith Solar knowledge base
2:05:29which you guys will have had from the
2:05:31previous one, but it'll be on the school
2:05:32if not. And guys all of these chats are
2:05:34going to be available and these prompts.
2:05:36So if you want to just sort of copy
2:05:38exactly what I put into N8N then you can
2:05:39do that. I'll make sure I include those
2:05:41for you guys on the on the school
2:05:43community. But we're going to want to
2:05:44ask uh the assistant here to write a
2:05:46prompt for us that aligns with the
2:05:48qualification criteria and so on. So
2:05:50great. Now I need to write the prompt
2:05:51for the voice agent on Retail. I'm going
2:05:53to give you a bunch of information
2:05:56um on Smith Solar as a company. But what
2:05:58you really need to do is create a lean
2:06:00and mean AI qualification prompt for
2:06:02this voice agent, give it a character
2:06:03and so on. I'll provide some
2:06:04documentation on the best prompting
2:06:06methodology for these kinds of voice
2:06:08agents. But given what you know about
2:06:10this use case, given what you know about
2:06:11the business based off the information
2:06:13I'm going to provide below and also the
2:06:15prompting guide and what the transcript
2:06:16analyzer is going to be looking for,
2:06:18please write up a prompt for this voice
2:06:20agent. So I'm going to dump a whole
2:06:21bunch of stuff into here. If I go here
2:06:24is the Smith Solar knowledge base and
2:06:26I'm going to go to I think 11labs.com.
2:06:30These guys had a pretty good prompting
2:06:32guide. I'll put this link in the
2:06:33resources, but I think 11labs has got a
2:06:35They're another voice agent platform. We
2:06:36can just copy this whole page it's going
2:06:37to give us the best prompting methods. A
2:06:39lot of what we I do with AI now is just
2:06:41finding the best context. Who's got it?
2:06:43Where can I grab it? How can I put it
2:06:44into the chatbot's context? So we're
2:06:45going to paste that in there.
2:06:47We're going to say hello there
2:06:49qualification
2:06:51prompt from N8N automation. All right.
2:06:54And then we want to give it
2:06:56context on this bad boy. Let's grab
2:06:58this, hit back and then boom. All right,
2:07:01so ChatGPT is taking its sweet time. I
2:07:03don't know what's up with this thing
2:07:04lately, but it takes freaking forever
2:07:05these days.
2:07:06Um
2:07:07Gosh that sounds so spoiled, hey. Can
2:07:08you please send this to me in a
2:07:12markdown formatting in a code block so
2:07:14that I can copy it with all of the
2:07:15markdown formatting into the prompt for
2:07:17Retail, please. There we go. And
2:07:19actually I can see here that it's missed
2:07:21a bit of context here. We didn't tell it
2:07:22too much about what happened in the
2:07:24previous step of us capturing the
2:07:25information off the chatbot. So what we
2:07:27need to do is give it a bit of an update
2:07:29on what happened before so it doesn't
2:07:31ask stupid questions again like hey,
2:07:32could you give me your average electric
2:07:34bill? All right, so they've actually
2:07:35already had a conversation with a
2:07:36chatbot on our website where they were
2:07:39asked a bunch of questions or they asked
2:07:40questions to us and they were able to
2:07:43provide us with the address and their
2:07:45electric bill and we gave them a
2:07:46quotation, a real time quotation of the
2:07:49potential solar savings. So they're
2:07:50actually already interested, they've
2:07:52already shown interest in our
2:07:54solar stuff. They've already shown their
2:07:55interest in purchasing with us by
2:07:57providing their phone number and their
2:07:58name. And so in this case we've actually
2:08:00sent our phone number to them in the
2:08:02chat there, told them to call us when
2:08:03they have time and they've called us
2:08:05after that. So we've already got their
2:08:06information about their address and
2:08:08their electric bill and their potential
2:08:09savings. That's already logged in the
2:08:10CRM. You don't need to worry about that.
2:08:12So just focus on the qualification
2:08:14criteria. Let's try to keep this as lean
2:08:16and mean as possible. You've already
2:08:17bloated this out. Strip it down. Make
2:08:19sure it's nice and lean.
2:08:23Now Now typically you would want to give
2:08:25it a bit more freedom so it's not as
2:08:26linear
2:08:27so that if the the person does ask
2:08:29questions about us with Solar or the
2:08:31business you'd probably give it a
2:08:32knowledge base, upload the document. We
2:08:33could literally do that in Retail in a
2:08:34few clicks. But often times with
2:08:36prompting less is more because the more
2:08:37instructions you give it the more
2:08:39conflicted it can be. If you just give
2:08:40it a nice high level prompt and tell it
2:08:42sort of how it should behave there
2:08:44rather than getting in the real
2:08:45specifics. The more specifics you give
2:08:47it the higher chance of it messing up
2:08:49when it gets into a situation that it
2:08:50doesn't know how to behave. So the the
2:08:52sweet spot is clear about high level and
2:08:55with enough flexibility to use the
2:08:56knowledge base and and a clear goal
2:08:58that's been set basically to work
2:08:59towards that and it will get there
2:09:00eventually. That's what's That's what's
2:09:02makes agents agents, right? They have
2:09:04some sort of goal or purpose that you
2:09:05give them. So, we can copy this, come
2:09:06back over to our powers at retail, paste
2:09:09it in there, give a little skim, and
2:09:11under 2 minutes confirm these points.
2:09:12Yep, these are true, qualify them, and
2:09:14that they can speak they'll and tell
2:09:16them that they're special for follow up.
2:09:17And you also probably wouldn't say,
2:09:19"Great, you're qualified." cuz it makes
2:09:20them feel like a a statistic in a in a
2:09:23in a system. So, So, you definitely play
2:09:25around with this prompt to make it a bit
2:09:26more suited to what they need, but I
2:09:27think we're good to go with this now, to
2:09:29be honest. We want to change to AI
2:09:30speaks first, and we have dynamic
2:09:32message, cuz we've already told it here,
2:09:33it says, "Hey, thanks for calling Smith
2:09:35Solar, this is Sam." So, we're going to
2:09:37get the AI to speak first and come up
2:09:38with the first message. With all this
2:09:39set up, we can actually give this a
2:09:41test. Give it a test. Hey, thanks for
2:09:43calling Smith Solar. This is Sam.
2:09:44[music] I just need to confirm a few
2:09:46quick details to make sure we're a fit.
2:09:48Yeah, sure. What do you need? Are you
2:09:49located in Texas? Uh yep, we're in
2:09:51Austin. You own the home where you want
2:09:53solar installed? Yes, I do. To get
2:09:56started, do you have at least $10,000
2:09:58available now to put toward the project?
2:10:00The rest can be financed. Yeah, of
2:10:02course. Perfect, you're qualified. Next
2:10:04step is a quick consult with our team to
2:10:06finalize options. A specialist will
2:10:08reach out shortly. Anything else before
2:10:10I let you go? Uh no. What I mean like
2:10:12when when about might they reach out to
2:10:14me, do you know? I don't have an exact
2:10:16time frame, but they do tend to reach
2:10:18out fairly quickly. Is [music] there
2:10:19anything else I can help you with today?
2:10:21Nope, that's all. Thank you. Thanks for
2:10:22calling Smith Solar. Have a great day.
2:10:25Right, so if I'm honest, I would
2:10:26probably do quite a lot more work on
2:10:27this to get it being a lot more
2:10:28conversational, uh being a lot more
2:10:29flexible. I'd do a lot more testing.
2:10:31But, for the purposes of the tutorial,
2:10:33that's all you guys need to get started.
2:10:34This prompt will be included in the uh
2:10:36resources if you want to use it. I'd
2:10:38highly recommend that you guys actually
2:10:39try to enhance it and make it a bit more
2:10:40advanced. You guys can play around with
2:10:42the voices here as well. I think we'll
2:10:43stick with this uh
2:10:45American sounding lady. Now, we need to
2:10:46pop back over to Innityn to get [music]
2:10:47things uh polished up here. All right,
2:10:49and I just double-checked for our
2:10:50Airtable bases uh what the issue is
2:10:52here. So, we need to go back over to it
2:10:55table here. So, the base is actually
2:10:56this one. Should have known it has table
2:10:58here. Uh so, the base, we can put that
2:11:00in there. We go back, grab the table ID.
2:11:02So, this TBL, copy that, paste that in
2:11:04there. We execute step, figure that. And
2:11:07now that we've got some data in here, we
2:11:08can actually come over to our buddy here
2:11:10and do that little tweak we wanted to
2:11:12do. So, we can variable-ize, using my
2:11:14word there. And we've got all of this
2:11:16information that we probably don't need
2:11:18there. You go away. Uh min cash
2:11:19required. Well, what was that before?
2:11:21Actually, here, let's just give me an
2:11:22example, but cash available now, uh and
2:11:26cash available now is equal to or
2:11:27greater than 10 than
2:11:28>> [music]
2:11:29>> No, not that. Delete that, and then put
2:11:31our min cash requirement in here. So,
2:11:32that means it will automatically be
2:11:34updated when we make any changes. So,
2:11:35that's pretty handy to do. Uh so, we can
2:11:37actually try to run this. Boom, so
2:11:39that's worked. So, we've already got
2:11:40some Actually, we didn't need to do that
2:11:42at all. Now, the final thing we need to
2:11:43do here is actually get some real data
2:11:44running through here and make sure that
2:11:45it's able to update our lead
2:11:47information. So, the tricky thing with
2:11:49this is that we need to go back over to
2:11:50retail. We're actually going to need to
2:11:52uh publish this bad boy. Going to MVP.
2:11:55Uh we can have an inbound phone number.
2:11:57You'll see here that we need to choose
2:11:58an inbound or an outbound phone number.
2:12:00So, inbound, we go to select a number.
2:12:02We don't actually have a number set up.
2:12:03So, that [music] is unfortunately, or
2:12:05fortunately, depending how you look at
2:12:06it, where we need to actually pay for
2:12:09access to this because they allow you to
2:12:11play around and test and test and test,
2:12:12which is great, but at a certain point,
2:12:14they're going to need to ask for some
2:12:15money for the services that they're
2:12:16providing. So, we go to phone numbers,
2:12:18we can add in a phone number, buy a
2:12:20number. Oh, I need to set up my payment.
2:12:21So, come over come over to your billing,
2:12:24can manage our billing info. And to
2:12:25stripe here, you can set up a payment
2:12:27method. So, we've got our billing set
2:12:28up, and then we can head over to the
2:12:30phone numbers, buy a number, grab any
2:12:32old number. You'd probably want to pick
2:12:33one if you're doing a US-based client or
2:12:35only got US and Canada here. Uh but you
2:12:37want to pick one that's in the same area
2:12:38code ideally for the best pick up rates.
2:12:39Uh in this case, it's inbound, so it
2:12:41doesn't really matter, but uh we can
2:12:42just grab this random one here. There's
2:12:44a whole bunch of set up here, but as you
2:12:45can see, we need to verify our identity
2:12:47to make outbound calls. So, that's why
2:12:48I've gone for an inbound option here. If
2:12:49you guys want to switch this over and
2:12:50use the template I'm going to put on
2:12:52school, there's a little thing that adds
2:12:53on to it, and you can actually turn this
2:12:55into an outbound uh speed-to-lead system
2:12:57rather than inbound, which is probably
2:12:58how you'd want to do it. So, we've got a
2:12:59phone number here. We go to agents, a
2:13:01single prompt agent here, and we are
2:13:02going to click this publish button up in
2:13:05the corner, call it uh MVP, select one
2:13:08of our inbound phone numbers, publish
2:13:09the bro.
2:13:10And now if we call that number, this
2:13:12guy's going to pick up. Let's go. So, we
2:13:14can I'll grab my telephone.
2:13:16I'm going to execute the workflow. We're
2:13:18going to go back and get that phone
2:13:19number. Where is it? Publish. Hey,
2:13:21thanks for calling Smith Solar. This is
2:13:23Sam. I just need to confirm a few quick
2:13:26details to make sure we're a fit. Sure.
2:13:28What do you need? Are you located in
2:13:29Texas? Yeah. Yeah, sure I am. I'm in
2:13:31Texas. Do you own the home where you
2:13:33want solar installed? Uh yeah, I do. To
2:13:36get started, do you have at least
2:13:37$10,000 available now to put toward the
2:13:39project? The rest can be financed. Yes,
2:13:41I can do that. Perfect, you're
2:13:43qualified. Next step is a quick consult
2:13:45with our team to finalize option. A
2:13:47specialist will reach out shortly.
2:13:48Anything else before I let you go? No,
2:13:51that's all good. Thanks for calling
2:13:52Smith Solar. Have a great day. [music]
2:13:54Now, I'm going to tell the truth. Yep,
2:13:55bang, bang. So, I stopped here
2:13:58um because the phone number that I
2:14:00called from wasn't in the database. So,
2:14:03filter by formula here didn't work. Let
2:14:04me do that again. I will go to our
2:14:06Airtable. I'll change this phone number
2:14:08to my phone number.
2:14:17So, we can execute this again. I call
2:14:19our buddy Sam back.
2:14:22Hey, thanks for calling Smith Solar.
2:14:24This is [music] Sam. I just need to
2:14:25confirm a few quick details to make sure
2:14:27we're a fit. Yeah, sure. Are you located
2:14:29in Texas? Sure I am. Yep, Texas I am. Do
2:14:32you own the home where you want solar
2:14:34installed? Yes, I own the home. To get
2:14:36started, do you have at least $10,000
2:14:38available now to put toward the project?
2:14:40The rest can be financed. Of course.
2:14:42Perfect, you're qualified. Next step is
2:14:44a quick consult with our team to
2:14:46finalize option. A specialist will reach
2:14:48out shortly. Anything else before I let
2:14:50you go? Nope, that's all. Thank you.
2:14:52Sounds good. Thanks for calling Smith
2:14:53Solar, and have a great day. Why are you
2:14:55not going, bro? All right, so this
2:14:56normalized phone number thing is kind of
2:14:58being annoying. Um so, just keep things
2:14:59simple and save a little time here. I'm
2:15:01just going to delete that, and then
2:15:02here, we can go to the JSON normalize
2:15:05phone, delete that, and then we can dig
2:15:08through this a massive amount of
2:15:09information here. Scroll all the way
2:15:11down. Got the phone number right at the
2:15:13bottom here. So, the from number is who
2:15:15I'm calling. That is my number that I'm
2:15:16calling from, so we have that put into
2:15:18there. Now, if I execute that step, then
2:15:20we get all the information from Leon
2:15:21Killsbury. So, the final thing we need
2:15:23to do is actually get some output from
2:15:25this structured output parser so that we
2:15:26can line things into the Airtable lead
2:15:28record. So, going to keep ripping
2:15:30through these. Hey, thanks for calling
2:15:32Smith Solar. This is Sam. I just need to
2:15:34confirm a few quick details to make sure
2:15:36we're a fit. Yes, sure. I am from Texas,
2:15:39and I have I own my house, and I also
2:15:43have over $20,000 to work with here. So,
2:15:47how does that sound? Perfect, you're
2:15:48qualified. Next step is a quick consult
2:15:50with our team to finalize Sounds good,
2:15:52man. A specialist will reach out
2:15:54shortly. Anything else before I let you
2:15:56go?
2:16:02Now, we're having issues with this. I'm
2:16:03just going to ask the Innityn AI to fix
2:16:05this. Uh just to fix this, I think if I
2:16:07delete this and I go if the ID here uh
2:16:10exists, execute step, is a string, but
2:16:12exists and it's fixing a boolean. String
2:16:14exists.
2:16:20Yep, there we go. Okay, so if the ID
2:16:22exists, meaning has it found anything in
2:16:23the database uh in the Airtable, then we
2:16:25are good to go. And I can then run this
2:16:27through here.
2:16:29Now, we get the output parser. We can
2:16:30see that it's put out this information
2:16:32here. Then we can match these up. Uh so,
2:16:34the columns to match on is going to be
2:16:35the ID, and then we can use the ID that
2:16:37we have from our Airtable here. And then
2:16:39we can update some of these fields here.
2:16:40So, we have the uh qualified being an
2:16:43expression, and then we need to look at
2:16:45the output from here. Qualified as the
2:16:47qualification here. Qualification
2:16:49reason, reason, state from the call,
2:16:51home owner as an expression again. I
2:16:53know it's not. Uh the home owner is an
2:16:55expression. Cash available, question.
2:16:57Last call transcript, get the full
2:16:59transcript put in there. Expression here
2:17:01for the last call, call ID, call match
2:17:04status, and it's matched. So, with all
2:17:06of that added, it's going to match based
2:17:08off the ID that we caught in the uh
2:17:10Airtable here. Now, we can execute the
2:17:12step, test it, but this hasn't worked
2:17:14because we have these variables here.
2:17:16So, that's not ideal. We can even
2:17:18improve this prompt.
2:17:33There we go. So, that variable wasn't
2:17:35set up correctly. Now, we're getting the
2:17:36state, the home owner, cash available,
2:17:38and everything, and we're good to set
2:17:40this. Execute the step. Last call out uh
2:17:42expects a date time, so we're getting a
2:17:43bit of an issue with the format that
2:17:45Retail gives us the time. So, I'm just
2:17:47going to take that out, to be honest.
2:17:49You do a formatting step prior if you
2:17:50really cared that much. Just deleted it,
2:17:52and there we go. We should now have and
2:17:54here all this information updated.
2:17:56Qualified, qualification reason. So, I'm
2:17:58just going to delete a lot of this stuff
2:18:00so that we can do a final run-through.
2:18:02Transcript in there, last call out, last
2:18:04call ID. We can just put it back to
2:18:06nothing. So, now we can do the
2:18:08run-through to end all run-throughs.
2:18:09Save that, [music] execute it, and I've
2:18:11[clears throat] gone like a tomato here
2:18:13since the sun's gone down.
2:18:15Hey, thanks for calling Smith Solar.
2:18:17This is Sam. Hey, Sam. Yeah, yeah, yeah.
2:18:19Sam Sam, I actually am the had I don't
2:18:21know if you know this, but I am actually
2:18:23am a home owner in Texas. I own the
2:18:25home. I live in Texas, and I have not
2:18:27just 10, but I have 100,000 macaronis to
2:18:30invest in solar, cuz I'm all in on the
2:18:32green future. Perfect, you're qualified.
2:18:34Next step is a quick consult with our
2:18:36team I know, that sounds perfect. Put me
2:18:38in right away. Awesome. Bye. See, I'm
2:18:40just sweet-talking, you know? Boom,
2:18:42boom, boom.
2:18:44It's not looking good, bro. Shouldn't
2:18:46take that long, bro. And after a long
2:18:48wait, we have it completed. So, that's
2:18:50all been added into the Airtable
2:18:51database here, and that is the end of
2:18:53the speed to lead thing. Now, as I said,
2:18:55I am going to be giving you guys on the
2:18:56template on the
2:18:58uh
2:18:59on the school a little module up here
2:19:01that allows you to change this from a
2:19:03inbound, as in they're calling into you,
2:19:04to an outbound. There is a budget set up
2:19:06that you need to do on uh Retail to make
2:19:07sure that they're okay with you doing
2:19:08that. But that has been the speed to
2:19:10lead build, guys. As you can see, voice
2:19:12agents, that's the just the current
2:19:13state of the tech right now. Uh but now
2:19:15you've got a coverage of voice agents,
2:19:16you know how to use those, set those up,
2:19:18get familiar with Retail, it's a great
2:19:19platform to know, and how to hook them
2:19:20up and and do things with the data that
2:19:22comes out the other side. Next build
2:19:23we're going to be doing is like the
2:19:24capstone, the like wow moment you guys
Build 4: Sales Rep Copilot
2:19:26are going to get out of this course,
2:19:27which is being able to build a whole a
2:19:29sales copilot that ties into the system
2:19:31we've been building here, where after a
2:19:33lead has been marked as qualified, it's
2:19:34going to be passed off to the sales team
2:19:36who's looking at that Airtable database,
2:19:37sorting by those qualified leads. We're
2:19:39going to be putting them a whole app
2:19:41that assists them in preparing for those
2:19:42calls using a bunch of cool AI features
2:19:44on N8N. So, be ready for that. Great
2:19:46work on making it so far. Let's keep
2:19:48pushing and finish this off cuz I
2:19:49promise this last one, you're going to
2:19:51be like, "Holy moly, I can't believe how
2:19:52far I've come in the space of just a few
2:19:54hours."
2:19:57All right, guys. Now we are onto the
2:19:58final build, build number four, where
2:20:00we're kind of tying everything we've
2:20:01learned together into what I call like
2:20:04your capstone project, where you get to
2:20:05see how all the stuff that we've learned
2:20:07so far comes together to build a really
2:20:09powerful system that actually has a
2:20:11front-end interface. So, we're going to
2:20:12be building a sales copilot, which uh a
2:20:15copilot is a type of AI agent that is uh
2:20:17very popular right now as a way of
2:20:19augmenting staff. So, we have full
2:20:20automation and where like the task is
2:20:22completely eliminated and the human
2:20:24doesn't need to be involved anymore.
2:20:25That is done for simpler tasks uh or for
2:20:28more complex one, it takes a lot of
2:20:29effort um and it's not really suitable
2:20:32for things that require a human in the
2:20:33loop um such as like contract reviews or
2:20:36in this case like anything related to
2:20:38sales where there's a human involved.
2:20:39So, we're going to be building a AI
2:20:41sales rep copilot that helps the sales
2:20:44rep to do more stuff in less time and to
2:20:46be be better prepared for the calls, to
2:20:48automate certain parts of their job like
2:20:50updating the CRM after a call, uh for
2:20:53researching the prospect before and
2:20:55getting a a guide for how they can
2:20:56approach the call, and for also being
2:20:58able to send things like follow-up
2:20:59emails after the call uh based off what
2:21:01happened in that call. So, we're going
2:21:03to be creating it on Lovable. So, we're
2:21:05going to be connecting an N8N workflow
2:21:06here to a custom front-end on a vibe
2:21:09coded platform of your choice. We're
2:21:10going to be using Lovable here. And this
2:21:12is going to show you how you can start
2:21:13to use N8N as a back-end, as like the
2:21:15brain or the engine, and then connect it
2:21:17to any kind of vibe coded app you want.
2:21:19So, you can have a custom-looking uh web
2:21:21app or application that you've built,
2:21:22and then you can connect N8N through
2:21:24webhooks as the engine that powers
2:21:26certain features, which is a very, very
2:21:27handy skill to know, and it really opens
2:21:29the doors to the amount of things that
2:21:30you can sell to your clients. So, uh
2:21:32we're going to be going through the
2:21:33similar workflow here that I've been uh
2:21:35walking you through. You guys should get
2:21:36the the MO by now. We're going to be
2:21:38using our AI automation CTO here, and
2:21:40then we're going to be taking that over,
2:21:41passing it into this automation brief
2:21:42generator, passing it into N8N, getting
2:21:45that built out 90% of the way by the N8N
2:21:48AI itself, and then after that we're
2:21:50going to be uh able to take that, take
2:21:52that webhook, go on to Lovable, and then
2:21:54connect them up, and we'll have a final
2:21:55app at the end. And I think you guys are
2:21:57going to be pretty proud of how far
2:21:58you've come in this course. So, that's
2:21:59why I wanted to have this as the
2:22:00capstone project. So, um just following
2:22:02along with me here, I've got a prompt
2:22:03that I pre-wrote just to keep things
2:22:05moving quickly here. It's very similar
2:22:06to what we've been doing previously.
2:22:07You'll be able to get this prompt, as
2:22:08with all the others, on uh the school,
2:22:10where the rest of these prompts will be
2:22:12for you to follow along. Um in this
2:22:13case, we're saying, "I want to build a
2:22:14sales copilot on N8N that my sales reps
2:22:17can chat to through a front-end in
2:22:18Lovable. The agent should be triggered
2:22:19by webhooks so the Lovable app can send
2:22:21messages to it and get responses back.
2:22:22Here's what I needed to do. Do prospect
2:22:24research. So, the rep should be able to
2:22:25find and research people on LinkedIn. I
2:22:27want to use a Serp API for finding
2:22:29profiles via Google search, and then
2:22:30Apify's LinkedIn scraper for pulling the
2:22:32full profile data." So, we're going to
2:22:33be using this Serp API, which is a good
2:22:35one for you guys to learn how to use,
2:22:36which basically allows us to search
2:22:37Google and pull the search results. And
2:22:40then we're going to be using Apify's
2:22:41LinkedIn scraper to pull the actual
2:22:42profile data off of uh LinkedIn. Uh
2:22:44we're going to be able to do a company
2:22:45and web search, so not only researching
2:22:47the prospect or the person that's
2:22:48hopping on the call, but also being able
2:22:50to uh research their company. So, we're
2:22:52going to be using a tool called
2:22:53Firecrawl here, which again is a great
2:22:54one for you guys to learn how to use and
2:22:56get set up. We're going to be connecting
2:22:57to the same CRM that we've been using
2:22:59kind of as the continuity throughout
2:23:01this uh these three builds. And then
2:23:03we're going to be doing email follow-ups
2:23:04as well as an option for being able to
2:23:06send messages or send emails to
2:23:07prospects after the call. Um we're going
2:23:09to have a bit of conversational memory.
2:23:10We're going to be using a Gemini model
2:23:12as per usual. And then here are the
2:23:13seven tools just to make it really clear
2:23:15for the AI to to know what we want here.
2:23:16So, we've got a Serp API for search
2:23:19getting those LinkedIn profile URLs.
2:23:21This is going to take those LinkedIn
2:23:22profile URLs and actually scrape the
2:23:24data off. And then we're going to have
2:23:25the Firecrawl web search to find any
2:23:26information on the company, and those
2:23:28will be passed to the Firecrawl page
2:23:29scrape, which is going to extract all
2:23:30the information from those pages for our
2:23:32AI to use. And then we have things like
2:23:33updating the Airtable and Gmail send.
2:23:35So, that's all pretty clear. I've just
2:23:37added a bit on the end here saying, "Can
2:23:38you please help me to research these
2:23:40APIs to make sure I have the exact ways
2:23:41I need to call them within N8N to get
2:23:43this working first try." Because the N8N
2:23:45AI doesn't have uh web searching
2:23:47capabilities at the moment, as far as I
2:23:48can tell. So, this is just making sure
2:23:50that we can basically do a web search,
2:23:52figure out how to use these APIs
2:23:53correctly. It can try to bundle it up
2:23:55into this uh little goody bag that we're
2:23:57going to be passing over to the N8N AI.
2:23:59So, I'm going to run that. Should search
2:24:00the web. So, while we're waiting for
2:24:01that, we can probably go over to
2:24:03Lovable.dev, and we can get you logged
2:24:05in or create an account if you haven't
2:24:06already. Uh I believe they've got a free
2:24:08plan, so you should be able to have a
2:24:09play around on this and get this up and
2:24:10running without having to pay. Okay, so
2:24:11if you're unfamiliar with Lovable, it is
2:24:13a vibe coded website platform, so you
2:24:15can build web apps, you can build sort
2:24:16of static websites, whatever you want.
2:24:18In this case, we're going to be building
2:24:19a custom web application that is going
2:24:22to allow us to grab the basically act as
2:24:24the front-end for us to send messages
2:24:26in. So, instead of using Telegram as the
2:24:27way we send messages to our agent,
2:24:29instead of using the N8N chat, we're
2:24:30going to be using a uh webhook, which
2:24:32allows us to basically hook our N8N uh
2:24:35system that we're building into this
2:24:37front-end. Which front-end is kind of
2:24:39like what you see, the back-end is the
2:24:40stuff that happens behind the scenes to
2:24:42actually do the functionality or or get
2:24:43things done within the application. So,
2:24:45this is really good uh for building
2:24:47full-stack applications. Apps like
2:24:49Lovable are really good for building
2:24:50that front-end, and you can connect the
2:24:52more complex back-ends with something
2:24:53like N8N. So, that's a really valuable
2:24:54skill that I wanted to teach you guys in
2:24:56this course. I think a smart way of us
2:24:57doing this, as you can see, it takes in
2:24:58a prompt. I think using our handy-dandy
2:25:00AI automation CTO, um we'll be also able
2:25:03to just ask it to give us a prompt to
2:25:04give them to Lovable in a second. So,
2:25:06let's just check what we've got here.
2:25:07N8N shape, webhook in, agent tooling,
2:25:09webhook out, webhook trigger Lovable to
2:25:11N8N. So, it's done the research for us
2:25:13on N8N and Lovable integrations. So,
2:25:15we're going to use a webhook trigger
2:25:16node. If you want the final workflow
2:25:18output returned automatically. Okay, so
2:25:20it's given us a couple options here for
2:25:21the webhook setup. I'm probably just
2:25:22going to say, "This is an MVP. Let's do
2:25:26the sim- simplest Lovable integration
2:25:29possible to Okay, it's done all the
2:25:31research on the uh Serp API, knows what
2:25:34to pass, Apify LinkedIn scraper,
2:25:36Firecrawl's web search. It's got all
2:25:38that there. That's great. Firecrawl page
2:25:40scrape, search records, update records.
2:25:43Now, I might even in this case, just to
2:25:44ensure that it's super clear on what we
2:25:47are uh connecting to, I can actually
2:25:48give it a reference to uh what we have
2:25:51here in Smith. So, the CRM so it knows
2:25:53what we're working with. So, uh we have
2:25:54the agent transcript here. So, this can
2:25:56actually be very useful for us and uh
2:25:58for the sales rep when pulling things
2:25:59in. So, the the call that they had on
2:26:01the phone, and actually earlier we
2:26:03didn't actually pass in another thing
2:26:05you'd do if you're putting this into
2:26:06production would be to save the uh the
2:26:08chat transcript from the chatbot that we
2:26:10did. By this point, the sales rep has
2:26:12the conversation they had with the
2:26:13chatbot, the conversation they had with
2:26:14the uh voice agent, and then all of that
2:26:17can be passed into the sales rep when
2:26:18it's doing the research and prepping for
2:26:20the call. Um and that can be really
2:26:21helpful. In this case, we've only got
2:26:22the uh last call transcript, but that
2:26:24can be something cool for you guys to
2:26:25put into the the chatbot side of things
2:26:27if you want to make this a little bit
2:26:28more valuable. It's a good extension and
2:26:30or test of your skills, really, to
2:26:31ensure that you you've actually learned
2:26:32something from this. So, what I'm going
2:26:34to do is just export this here. Here,
2:26:36grid view, download CSV. Then I'm going
2:26:38to pass it back over to this here. Also,
2:26:41uh we are going to be working with this
2:26:43CRM. I've given you a uh CSV file that's
2:26:47going to explain to you the different
2:26:48headings that we have or columns that we
2:26:50have. So, can you please ensure that
2:26:51this spec is aligned properly with
2:26:53[music] uh with that and the different
2:26:55values and fields that we have to work
2:26:57with so that it works on the first shot
2:26:58when we pass it into N8N. Okay, so
2:27:00that's one thing there, and I'd say,
2:27:01"Can we also pick a specific LinkedIn
2:27:05scraper from Apify?" And it looks like
2:27:08it's going for a Postgres chat memory.
2:27:11Um in this case, again, that's a little
2:27:12bit too complex. You guys need to prompt
2:27:14it to be MVP-facing unless you want
2:27:16Well, this is a tutorial, so I don't
2:27:17need to be as rigorous as setting up a
2:27:19Postgres database. You probably would uh
2:27:20or you'd connect it into something like
2:27:22the Airtable to track all the messages
2:27:24uh and link it to a to the leads. You
2:27:26can have another table in Airtable that
2:27:27is messages, and you have the chats
2:27:29logged in there, and you link it to the
2:27:30lead in the in the leads database. Also,
2:27:33I want us to be able to like ChatGPT
2:27:34create new chats. So, that means we're
2:27:36going to need to create a new session
2:27:37variable so that the int system stays
2:27:39the same. When we create a chat on
2:27:42Lovable, it creates a unique ID or a
2:27:43session ID, and then anytime a message
2:27:45is sent, it sends that session ID to
2:27:47Lovable uh to N8N. With that, it
2:27:50catches, "Okay, well, what chat am I
2:27:51looking at? Okay, session ID three.
2:27:53Okay, well, then I need to load in the
2:27:54chat memory from that session." So, so
2:27:56that's how we're going to be able to
2:27:57manage multiple different chats in
2:27:59there. So, I'm just adding this in at
2:28:00the bottom. Then I'll actually get this
2:28:01to generate us the the Lovable prompt as
2:28:03well. So, it's got the full picture of
2:28:04what we're trying to build, and it
2:28:05knows, "Okay, the N8N is set up this
2:28:07way. I need to set up the Lovable this
2:28:09way." So, it's important once it's
2:28:10contextualized on what we're building,
2:28:11you're basically bandwagoning on that on
2:28:13the back of that context and get it to
2:28:15also plan out the Lovable app in sync
2:28:17with it. Cuz if you did it separately,
2:28:18it'd probably miss a bunch of the
2:28:19details we're going to do here. Okay, so
2:28:21it's done the MVP Lovable integration,
2:28:23single webhook, single response. Okay,
2:28:25so we've got our next response back.
2:28:26Looks like it's simplified this a bit.
2:28:28I'm not sure why it's passing in the
2:28:29lead information here. Um we should
2:28:31probably get that removed. We don't need
2:28:32it to be specific to a lead in a given
2:28:34chat. We don't need a lead uh
2:28:38session. Okay, it's got the CRM
2:28:40alignment all done. Just adding a bit
2:28:41more context here so it knows exactly
2:28:43what we want. It's trying to associate a
2:28:44lead with a session, but I said it
2:28:46should just be more freestyle with each
2:28:47new session. It's completely fresh and
2:28:48they can do what they want with it.
2:28:50They'll start a new chat. They'll go,
2:28:51"Hey, can you help me prep for XYZ
2:28:52call?" Then they'll look for that name
2:28:53in the CRM. Once confirmed, it can fire
2:28:55off the tools to help them do what they
2:28:57want. EG company prospect company and
2:28:59prospect research simultaneously. So,
2:29:01just making it a bit more flexible and
2:29:03general purpose. It's got clear on all
2:29:05of that. It's picked an Appy Pie
2:29:06Scraper. That's great. So, we've got the
2:29:08specific scraper that we're using here,
2:29:10which is this logical scraper, LinkedIn
2:29:12profile scraper, SerpApi is there,
2:29:14Firecrawl is there, Gmail is there,
2:29:16memory is there as well. Yep, so it
2:29:17looks like it's nailed those changes.
2:29:19Agent behavior is correct. It's going to
2:29:20search. If it finds a match, it will
2:29:21just start. If it finds multiple, it
2:29:23will get it to pick one. Once confirmed,
2:29:24it will allow the the rep to do whatever
2:29:26they want with it with the tools. So,
2:29:27that's the connection. It's trying to
2:29:29reference the sales rep. And again, we
2:29:31don't need that right now. You maybe
2:29:32would when you're scaling this up, but
2:29:33this is an MVP. Yep, that looks good.
2:29:35Airtable alignment. It's got all of the
2:29:37correct field names here. Also, it's
2:29:39pointing something out here. Maybe we
2:29:40want to add in a new field. Do we we
2:29:43maybe want to add a few I'm saying do we
2:29:47maybe want to add a few more fields to
2:29:49the CRM that the that the sales rep can
2:29:50update from the copilot. So, at the
2:29:52moment, it's all only got things like
2:29:54that goes up to the end of that voice
2:29:56agent that we just built. So, perhaps we
2:29:58want to add like another couple columns
2:29:59that the sales rep can actually update.
2:30:01Maybe it's like sales rep notes or like
2:30:03a call status or you know, things like
2:30:05that. So, I'll let it brainstorm with me
2:30:06there. This is really good for you guys
2:30:08to see this sort of iterative process of
2:30:10like refining the scope of exactly what
2:30:11you want before you move forward. It's
2:30:13got some guardrails on there, which is
2:30:14great. And the rest is looking really
2:30:15good. Okay, so we've got two pretty good
2:30:17recommendations here for things to add
2:30:18to the Airtable. I'm just going to copy
2:30:20this to the Airtable. Open this up. Can
2:30:22we add a
2:30:26Put that in there.
2:30:34And then also check how we did. Boom.
2:30:37See, just like that. You got to be using
2:30:38the AI features in these platforms,
2:30:40guys, cuz setting these fields up can be
2:30:41an absolute pain. Got the right name, so
2:30:43it's going to be pulling that correctly.
2:30:45Boom. Next step. Might make that a long
2:30:47text, to be honest. And there we go.
2:30:49Let's screenshot that. I'm going to drop
2:30:51this in here. Just screenshot of this
2:30:52again. See the AI automation. All right,
2:30:56so now I'm asking it to see this AI
2:30:57automation brief that I attached a
2:30:59screenshot of. I'm trying to fill that
2:31:00out. I need a comprehensive answer for
2:31:01each of those, including as much of the
2:31:03technical specifics as possible, so that
2:31:04In Eighteen AI can set it up first try.
2:31:06We're going to try to take all of this
2:31:07research and context and bundle it into
2:31:10this and see if we're able to get out on
2:31:11the other side enough context that it
2:31:13can one-shot it.
2:31:16Okay, now there is one thing that I've
2:31:17noted is that it's it's doing too much
2:31:20on the response from In Eighteen to
2:31:21Lovable. We don't need all of this. Um
2:31:24so, we can just tweak this a bit and say
2:31:26So, yeah, I'm just saying all we're
2:31:27going to need back is the chat message
2:31:29back to Lovable to put into the into the
2:31:30front end. And then also might be a cool
2:31:33thing for us to add in is the tool
2:31:34calls. So, it can actually pass back to
2:31:37Lovable, "Hey, I called this tool, this
2:31:38tool, this tool, this tool." And check
2:31:40or cross, here's the status of what
2:31:41happened to us. You have a little bit of
2:31:42a appearing through the curtain as the
2:31:44user. And you know if something's not
2:31:45working. And then I'm going to say,
2:31:47"Ooh, no, stop." Okay, again, it's being
2:31:49a little bit too tricky with this
2:31:51response. It's going to send back this
2:31:52metadata with matches and picked URLs. I
2:31:54literally just want it to give a like a
2:31:56success or fail so that we can put that
2:31:58as a little kind of attachment to the
2:32:00message. So, I'm going to ask it one
2:32:01more time. Okay, now hopefully this is
2:32:03the last one. Trigger. Yep, looks good.
2:32:05Okay, so it's all aware of this. Looks
2:32:07good to me. So, let's just start getting
2:32:08this put into the In Eighteen brief. And
2:32:10at this point, we're getting pretty
2:32:11close to having a an actual In Eighteen
2:32:13brief already, but we're just seeing if
2:32:15this is going to improve it at all. And
2:32:17there we go.
2:32:35And here we go. Now, while we're waiting
2:32:37for this, we can say, "Great. Now, I
2:32:39need a comprehensive
2:32:42So, I'm just saying that we need a
2:32:43comprehensive software MVP software
2:32:45brief to give Lovable a one-shot prompt
2:32:47that it can build the app to connect to
2:32:49this In Eighteen system we've built. So,
2:32:51it has full context. I'm asking it to
2:32:52help me refine the scope of the app. Um
2:32:54then I'll get you to write the actual
2:32:55specs. So, this is always good to push
2:32:57back and say, "Hey, what questions do
2:32:59you need answered in order to be able to
2:33:00create this properly or be super clear
2:33:02on the scope?" So, I've given it some
2:33:03pointers on this should be a barebones
2:33:05MVP. I just want a side panel with a
2:33:06list of the past chats, a button to be
2:33:08able to start a new one, and then a chat
2:33:10interface like ChatGPT to chat back and
2:33:11forth. No login, just chatting with In
2:33:13Eighteen. Any questions? All right,
2:33:14while we do that, we can check here. I'm
2:33:16a bit concerned that this may not have
2:33:17gotten the length that I was looking
2:33:19for. Yeah. In this case, we've lost a
2:33:21lot of the specificity of the research
2:33:24that we did. So, I may actually just get
2:33:26the CTO here to write out the spec for
2:33:28us in a similar kind of format. Unless
2:33:30this is actually a whole lot bigger than
2:33:32I expected. No. Just going to add a
2:33:33little bit here in the additional notes
2:33:35that the spec the spec must be
2:33:36comprehensive in its specificity around
2:33:39uh the endpoints we're using, which are
2:33:40just like the the API URLs and the
2:33:44bodies and requests. So, this works
2:33:45first try. Let's try that again. We ask
2:33:47The issue we're running into here is
2:33:48that the In Eighteen brief is actually
2:33:50limited and it has to be within a
2:33:52certain number of characters. So, that's
2:33:53why this is struggling a little bit to
2:33:55get all of that in. Got a few questions
2:33:56here about the MVP. The In Eighteen
2:33:58webhook will be public.
2:34:00Let's just do a single response. We
2:34:02don't want to do streaming. The tool
2:34:04status under each assistant message.
2:34:06Yes, so if there's any tool calls that
2:34:08were done on that in that response, then
2:34:10just have the uh the tool name and then
2:34:13a tick or a cross, please. Yeah, and no
2:34:15details. Chat persistence. No, they
2:34:17don't persist across browser refresh for
2:34:20now. Just in in memory is fine. Chat
2:34:22naming.
2:34:23Um let's just have it called chat one,
2:34:25chat two for now when they create a new
2:34:27one or just have it called new chat when
2:34:29they create a new one. And then they
2:34:31should be able to click to edit the chat
2:34:32name at the top of the uh chat part of
2:34:35the interface. So, on the top left, it
2:34:37should be the name of the chat again.
2:34:39And they can click on that to edit it.
2:34:40Um and the message should be rendered as
2:34:42uh markdown. Okay. Okay, so he's he's
2:34:45struggling here a little bit to get
2:34:46everything in, but let's just throw it
2:34:47in and see how we go. It may have to be
2:34:49a case of splitting it into multiple
2:34:51different prompts. So, we're here on In
2:34:52Eighteen creating a new workflow.
2:34:59Okay, we've been able to squeeze that
2:35:00in. Let's see if we can get the rest.
2:35:15And now we'll see.
2:35:18Uh yes, the links should open in a new
2:35:20tab. Yeah, and just basic markdown for
2:35:23now. Just bold, italics, bullets, links,
2:35:25and I guess headings as well. I will get
2:35:27you the endpoint in a second. Not sure
2:35:29what CORS is. Can you please explain
2:35:30that to me?
2:35:39Okay, so we're just refining the scope
2:35:41here, getting clear on things. It says
2:35:42this is CORS, CORS, browser security
2:35:44rule that we may need to get over. Um I
2:35:47don't know why a public webhook wouldn't
2:35:48work, but looks like we may need to do
2:35:50this little uh set of changes to In
2:35:51Eighteen's HTTP response. So, I'm just
2:35:54going to ask it to seems to be clear on
2:35:55what it needs. Give me a prompt to In
2:35:56Eighteen to make these changes to the
2:35:57webhook.
2:36:02All right, and we are looking pretty
2:36:03good here, I would say. We have our
2:36:05conversation memory. We have the right
2:36:07model. Probably not actually, as we
2:36:08know.
2:36:09Um
2:36:10I like to sequence these in order of
2:36:12what we're going to use them. So, I
2:36:14might just take I'll take this. Just
2:36:16going to hide this for now. Gmail send
2:36:18is probably the last one. The Airtable
2:36:20update tool, Airtable search tool is
2:36:23probably the first one. SerpApi is going
2:36:25to search for their LinkedIn profile.
2:36:27Then we're going to Appy Pie scrape
2:36:28their LinkedIn profile. And then we're
2:36:30going to probably web search and then
2:36:32page scrape, Airtable update, and then
2:36:34Gmail send. So, I like to order them
2:36:36there in that sort of logical order.
2:36:39We've got a workflow configuration step
2:36:40here. Session ID, user message. Yep,
2:36:43that's good. How's the prompt gone? CRM
2:36:45lookup rules. Looks pretty good to me.
2:36:48So, now we just need to set up these
2:36:50tools. Make sure they're all set up
2:36:51correctly.
2:36:52We have the session ID being passed in
2:36:54correctly here. I'm going to increase
2:36:55the chat memory up to maybe 30 messages.
2:36:58I'm going to make sure we have the right
2:36:59model here. Of course, we don't. 2.5
2:37:01flash is good. Airtable search tool.
2:37:03Let's change this. Get the base from
2:37:06list. It's my sole CRM from list. Leads.
2:37:09Okay, so that needs to be the filter by
2:37:11formula should be done by AI here. There
2:37:14we go. Got the tool descriptions in
2:37:16here. Nice. That's great. SerpApi.
2:37:18Create a new credential. Let's ask In
2:37:20Eighteen for help on this. All right,
2:37:21looks like we have to sign up.
2:37:22Hopefully, they got some free credits
2:37:23for us. Free plan. Check your Gmail to
2:37:26verify your account. Need to verify
2:37:28phone number as well. Seems a bit
2:37:29extreme. Now, we've verified both of
2:37:31those. Let's subscribe. Boom. There we
2:37:33go. We're in. There's your boy. Grab our
2:37:35API key. Come back over to In Eighteen.
2:37:37Drop our API key in here. Save that.
2:37:39Looks like it's worked correctly for us
2:37:41there. So, that's all done. Appy Pie
2:37:43next. We need to go and grab the Appy
2:37:45Pie LinkedIn Scraper that we were going
2:37:46to use. So, if we head back over to our
2:37:49handy-dandy automation planner. Scroll
2:37:51back up. Um
2:37:58Think what we could do now is maybe do a
2:38:00sneaky here and just copy some of this
2:38:02stuff and put it in bit by bit into the
2:38:05In Eighteen AI.
2:38:08Just go through chunk by chunk. Looks
2:38:09like it might have forgotten the Appy
2:38:11Pie one. Okay, looks like it has already
2:38:13done all of this. We had to put our Appy
2:38:14Pie token in there. It's got the right
2:38:16URLs in. Great. Now, let's do these
2:38:18Firecrawl ones. Done. Got that added.
2:38:20Great. So, the next Firecrawl one.
2:38:25Great. Ooh, it might have messed this
2:38:27up. Looks like it got it mixed up with
2:38:29the other Airtable node. So, we want to
2:38:30make sure it's not editing the one we
2:38:32just did. Um
2:38:33search records. So, ooh, my bad. That
2:38:36was a search one. Now, the Gmail. I
2:38:38think we're pretty much good to go then.
2:38:40So, you want to be leaning heavily on
2:38:41the In Eighteen AI for this. and you can
2:38:43see all the work that we did in the like
2:38:44the preparation makes it a lot easier
2:38:46for us to get the specifics right. So,
2:38:48we don't have to go in and manually
2:38:49update all these variables on nodes. We
2:38:51do have that one tweak as well for this.
2:38:54And honestly, I think this core stuff
2:38:55might be a non-issue. So, let's just see
2:38:57how we go with connecting a public
2:38:59webhook. Right, so we have everything
2:39:01configured and ready to go. Let's just
2:39:02do a double-check. Airtable search like
2:39:04that. Record search my solar leads. It's
2:39:07going to [music] determine the Airtable
2:39:09filter by formula which is what's going
2:39:10to search for the lead and the AI is
2:39:12going to do that for us and write that
2:39:15filter by formula. So, that's all good.
2:39:16There you go. It knows enough about the
2:39:17Airtable base to be able to correctly
2:39:19put in the right fields to get that
2:39:21right. Airtable update update the record
2:39:23ID is going to come from the AI and then
2:39:26for the fields that it needs to update
2:39:28will mainly be wanting to update the
2:39:31deal stage. It looks like you can't do
2:39:32the AI field filling for a select
2:39:34column. So, I probably would have set
2:39:35that Airtable column up as a just a text
2:39:38for now, but it's probably going to take
2:39:40a bit too much time to go back and
2:39:41change that. We'll just pretend that
2:39:42doesn't exist for now. If you want to go
2:39:43back and change it to a text field, you
2:39:44can very easily change that and there'll
2:39:46be one of these bug key buttons and
2:39:47you'll be able to click that and then
2:39:48say this is the deal stage. Here are the
2:39:50options you could set. So, I'm just
2:39:51going to delete all of this stuff cuz we
2:39:53don't want it to update any of this
2:39:55other stuff. We just want to update the
2:39:57next step field. So, it's going to match
2:39:58the ID from the row that we found
2:40:00earlier and then it's going to
2:40:02fill out the next step based off what
2:40:03the sales rep said. We're going to trim
2:40:05a little bit out of here.
2:40:14So, we've trimmed that down.
2:40:16Apify LinkedIn scraper. Looks like we've
2:40:18got the correct URL in there now.
2:40:20The Apify token, we can get that set up
2:40:22now.
2:40:25We can log into Apify, go to your
2:40:26console, then we can go and make sure
2:40:28you've got your billing set up if you
2:40:29still don't, come in here and set up
2:40:31your subscription and make sure you've
2:40:33got a an account to use. We're going to
2:40:35go to the
2:40:36settings, API integrations.
2:40:49Copy that.
2:40:50Paste that in there. Going to change
2:40:51this over to AI, give it the format it
2:40:54needs to write it in. So, that all looks
2:40:56good.
2:40:58We can set up the Firecrawl now.
2:41:03firecrawl.dev. You can sign up here.
2:41:05It's free to get an account and they
2:41:06have a
2:41:07decent free plan as well. So, you're
2:41:09going to want to go to API keys, create
2:41:11a new one.
2:41:17Copy that. Going to go to generic
2:41:19credential type here. Okay, so then
2:41:20we're going to set it to a header auth.
2:41:22We're going to go select credential,
2:41:23create a new one. Going to put that
2:41:24value in there. We're going to call this
2:41:26authorization.
2:41:28I'm going to save that.
2:41:29We'll change this to Firecrawl auth. Um
2:41:32and then, uh just to be sure in case
2:41:33that doesn't work, we've got that there.
2:41:35I'm going to copy all of this again.
2:41:37Just going to change it to AI. Paste in
2:41:39the expect format there.
2:41:42Move on to the page scrape.
2:41:46So, we've got our Firecrawl auth in here
2:41:47which is handy. Um
2:41:53Pop that in there again. Again, we're
2:41:55going to change this, cut that out of
2:41:57there, change it to AI. Then we're good
2:41:58there. And the Gmail send tool. Going to
2:42:01have it as two, change it to AI. I know,
2:42:04actually I think if we look in our
2:42:05Airtable, we weren't actually always
2:42:08enforcing the collection of email. So,
2:42:10we are going to have to pretend like we
2:42:12were in this case. Um so, if we just go
2:42:15and add in a insert to the right, call
2:42:17it an email, give them a test email that
2:42:19I can send to. Subject can be generated
2:42:22by AI. Message will be generated by AI.
2:42:24And then we have the Serp API thing
2:42:27which should have already been set up.
2:42:28Search engine
2:42:30query. So, we're going to change that
2:42:31query there. API key where you can get
2:42:33from where we had it.
2:42:41And then, we are looking pretty much
2:42:44ready to go. So, what we can do is just
2:42:45give this a test for now. Um
2:42:48any of these to set up session ID, user
2:42:50message.
2:42:52Now, the question is do you want to try
2:42:54to test it here within N8N as a chat
2:42:57trigger or do we want to Yeah, I think
2:42:59that would be smart for now. Um this is
2:43:02format in the response.
2:43:20So, I'm just going to ask it to make an
2:43:21N8N chat trigger and response so that we
2:43:24can test this first before we take it
2:43:25over to Lovable cuz you want to get it
2:43:27working here first before you kick it
2:43:28off there or it's going to be a pain in
2:43:29the butt. Oh, well, I guess we're going
2:43:31to have to do this ourselves and that's
2:43:32clearly not knowing what the hell we're
2:43:33trying to do here.
2:43:55>> [snorts]
2:44:06>> Okay, so I'm just getting this tested.
2:44:07Looks like it's working correctly. We're
2:44:09getting responses from it. So, make sure
2:44:11if it's not working for you guys here,
2:44:12you save and refresh the N8N workflow.
2:44:14Perhaps to get it unstuck sometimes, but
2:44:16we have our chat message going and we're
2:44:17getting responses. So, it's going here,
2:44:19doing the tools calls and then sending
2:44:20response back. Uh you may need to have
2:44:22the response mode on when last node
2:44:24finishes. Um so, it sends responses back
2:44:27uh automatically there. So, we're
2:44:28getting responses in here. Now, we just
2:44:30want to test through this functionality.
2:44:31So, if we go, make sure this is setting
2:44:33the right variables. Is a session ID
2:44:35here? User message [music] is the chat
2:44:38input. There we go. That's working
2:44:40correctly. Just save that. Going to go
2:44:42into execute the workflow again. We'll
2:44:44make sure this is set up to have our
2:44:47Looks like that's automatically
2:44:47connected to it. So, it's connected
2:44:49[music] to what we're assigning up here.
2:44:50So, now we can go. Who do we want to
2:44:52look up? We've got this guy. I have a
2:44:54call with
2:45:00Boom. Okay, so we're getting the
2:45:02information back. Bang. Great, we're off
2:45:04to a good start. Getting all the
2:45:05information from
2:45:07uh the transcript, getting all of his
2:45:08details. You can say uh actually let's
2:45:11move this down again. Next step would be
2:45:12the Serp API. I'll be over the moon if
2:45:15we're able to run through this in one
2:45:17shot. Uh great. Now, find his LinkedIn
2:45:21profile. It's not even a real profile.
2:45:23Um
2:45:25His name is actually Leo Oakley and he's
2:45:29from New Zealand. So, please use that in
2:45:33the query. Ooh. Boom. Credential not
2:45:36found. Okay, so we might just need to
2:45:38change this over to a generic credential
2:45:40type. We're putting it in the query
2:45:42parameters. We can actually just change
2:45:43that to none cuz we're going to be
2:45:44passing it in the query anyway. So,
2:45:45that's actually going to save us a bit
2:45:46of time. So, let us just go again here.
2:45:49Save that. Maybe we just go into the
2:45:50Airtable and change this to
2:45:54my details. Got those updated. Now, we
2:45:56can run a new session. Execute it.
2:46:11Boom. There we go. We've got all of my
2:46:12information back. Now, I should ping
2:46:13both of these tools. So, that worked. We
2:46:15got all of the information back.
2:46:17Forbidden. Perhaps check credentials.
2:46:19Okay, so it looks like we're using a
2:46:20paid actor. Okay, so after a lot of
2:46:21playing around with this particular
2:46:23Apify scraper, I had to switch over to
2:46:25one that I was actually able to get
2:46:26working consistently and that
2:46:28unfortunately did involve upgrading to a
2:46:30paid plan. So, I've got a few slight
2:46:31tweaks to make to this particular node.
2:46:33Also in uh in here, I've had to upgrade
2:46:36to the $29 a month plan. So, that's
2:46:38something if you want to get this
2:46:39building working and having the full
2:46:41scraping functionality of this Apify
2:46:42scraper, then you're going to have to
2:46:43upgrade onto just the $29 a month plan
2:46:46uh for access to this and all the other
2:46:48awesome actors that you get on in here
2:46:50as well. So, uh here's the exact setup
2:46:52that we had on that. This will be of
2:46:53course included in the template for you
2:46:54guys. Uh but the main thing here is that
2:46:56we've got the description which lays out
2:46:58how the AI should use it which is just a
2:47:00little bit of JSON like this with the
2:47:01profile in it. Uh and then we have post
2:47:04request with this particular Apify actor
2:47:06in it. We have the authentication being
2:47:07done through here with the paid plan on
2:47:09the API key, you remember. Uh and we're
2:47:11sending the body using JSON and allowing
2:47:13the model to define it there and no
2:47:15description on it. So, that was able to
2:47:16get it working for me and we can see
2:47:17here if I grab onto uh our mate's
2:47:20profile here and I say,
2:47:22um actually we could probably try this
2:47:23end to end now. And we can go, "Hey, I
2:47:25have a call with Leo coming up."
2:47:30There you go. Pulled all of my
2:47:31information. Great. Find his LinkedIn
2:47:35and give me
2:47:36me a summary. Hopefully, it has found
2:47:38the right URL. Boom. There you go.
2:47:40Awesome. It's got all my information.
2:47:42So, the Serp API was able to find it. Um
2:47:44LinkedIn search was able to find a bunch
2:47:46of them. Found uh my LinkedIn URL in
2:47:48here and it was able to pass that
2:47:50correctly into the scrape LinkedIn.
2:47:52Passed that in and it gave us all of
2:47:53this information back and that was
2:47:55passed into the the uh LLM to give us a
2:47:58response here. So, we have that set up
2:48:00working correctly now. Now, we just need
2:48:01to test the uh company search. Great.
2:48:04Can you find his company website uh
2:48:07workflow? Okay, it doesn't need to
2:48:08search it. Can you use Firecrawl to find
2:48:12it though?
2:48:15Okay, there we go. We've got an issue
2:48:16with this. Invalid syntax. Actually, we
2:48:18don't need to be using this Firecrawl
2:48:19auth, I've realized. We can just change
2:48:21this to none cuz we're passing it in
2:48:22here. Now, what are we expecting to give
2:48:24to the Firecrawl? Okay, we're just going
2:48:26to pop this into here. Now, to get this
2:48:28working, I found that we do have to go
2:48:29nuclear on this and just give it an
2:48:30incredible amount of information for it
2:48:32to be able to call this correctly. So,
2:48:34you'll be able to get this tool
2:48:34description from the template. It'll be
2:48:36included in the school community, so you
2:48:38can follow along. But, we've had to go
2:48:39pretty crazy here to get it to do
2:48:41exactly what we want. Uh this is just
2:48:42some of the limitations of these AI
2:48:44agents at the moment. So, we've got that
2:48:45added in there and also putting into the
2:48:48fire crawl page scrape. Going to do
2:48:49something similar. Okay, guys. So, a bit
2:48:50of playing around required. I would
2:48:52recommend you guys just come and steal
2:48:53the exact nodes I've got here for some
2:48:55of these. This specific setup is going
2:48:57to be a bit of a pain in the butt for
2:48:58you to get right, um as you've seen
2:49:00there. So, this is all set up with a
2:49:02pretty hefty uh description here. But,
2:49:04with this setup and the bearer key here,
2:49:06it is working. So, I'm able to now go uh
2:49:09run this back. I can [music] hopefully
2:49:11run right through this. Zoom out a bit
2:49:13here. All right, it may as well just
2:49:14check this Gmail stuff is set up. So,
2:49:16we're using the admin email uh message
2:49:18to Yep. And then we have the Airtable
2:49:20update tool, which is set up on I'm
2:49:23going to pick from a list here. It's my
2:49:24solar leads. ID's going to match it and
2:49:27the next step is going to match it
2:49:28there. And [music]
2:49:29yeah, so that should be ready to go.
2:49:32Save that. Good run through.
2:49:40Now, it's going to scrape it.
2:49:43Great. Now, search tools.
2:49:51Boom. Now, it's found the website.
2:50:02Now, it's going to try to scrape some
2:50:03pages from the website. Okay, there you
2:50:05go. It's scraped a bunch of information
2:50:06from my agency website. And now, I can
2:50:08say like, "Based on all the info we
2:50:11collected and the [music] info in the
2:50:14CRM, please write me a short pre-call
2:50:19briefing to read [music] now to help me
2:50:22prep." So, a bit of a pre-call briefing
2:50:24we can get it to write us. Now that it
2:50:26has all this context included. So,
2:50:27there's my background, angle of attack,
2:50:29acknowledge enthusiasm for green uh
2:50:31future, leverage of AI efficiency
2:50:33mindset. Discuss smart home and AI
2:50:35integration. Good luck with the call.
2:50:36[music]
2:50:37Great. Can you email him and say, "Um
2:50:41a team member will be in touch to book
2:50:46an his installation and thank him for
2:50:50his time."
2:50:55Great. Now, send that via Gmail.
2:50:59Oh, great. Sent the email. Update the
2:51:02CRM with a note saying, "Team booked in
2:51:06for install. Payment received."
2:51:10Yes, update. Boom. Okay, we can check
2:51:13Airtable. Booked in for install. Payment
2:51:15received. Great. Okay, so we have all of
2:51:17our functionality working. Now, we just
2:51:19need to connect this up to our
2:51:21handy-dandy lovable front end. So, if we
2:51:23go back to our buddy here in this chat,
2:51:25so we're going to chop this off,
2:51:27reconnect the webhook trigger. Also,
2:51:30this stuff here.
2:51:42Provide the webhook URL.
2:51:53Now, need to head over to Lovable. Now,
2:51:54it will copy all that.
2:52:03Okay, so we have our first version of
2:52:05the app here. Let's go over and just
2:52:07turn this on to [music]
2:52:08uh be active for now. Then we'll see if
2:52:11we can get this working. Oh, that's a
2:52:13good start. Actually, we can just switch
2:52:14that off and go execute.
2:52:20Okay, so we are running into this issue
2:52:22that our AI CTO warned us about. So,
2:52:25it's going through and testing the app
2:52:26for us now.
2:52:33Okay, so a little change here is we need
2:52:34to change this to a respond to webhook
2:52:36node. So, it's going to be waiting for
2:52:38uh this cuz we want to be sending the
2:52:39response back through this. So, let's
2:52:41just give that that another go. We'll
2:52:42save it. Execute the workflow. There we
2:52:44go. Oh, boom. Boom. Well, we got it.
2:52:47Awesome. Thought there's going to be a
2:52:48lot more teething issues than that. So,
2:52:50as you saw, it ripped through here,
2:52:52formatted the response, and then sent it
2:52:53back. Uh we have this little node here,
2:52:55which is taking in and basically
2:52:57prepping up a a response to send that
2:52:59has a session ID, the reply from the
2:53:01agent, and then the tool calls. So,
2:53:02hopefully we can start to get this
2:53:03working with uh actual responses. So, if
2:53:06I turn this on, it should be able to
2:53:07ping through these
2:53:09um with these. We go to a Let's just
2:53:11stop this thing cuz it's working. Go to
2:53:14new chat.
2:53:17Um okay. Okay, so it's not remembering
2:53:19the session here. I've just given it the
2:53:21production URL. So, you can go test
2:53:23production. We want to get the
2:53:25production one. This is active now.
2:53:27Okay, looks like it's working.
2:53:31I have a call with Wayne Harvey. Let's
2:53:34see if the tool call works. Okay,
2:53:36appears that the sessions is not working
2:53:38correctly. Let's just tell it here.
2:53:43So, the session ID needs to be getting
2:53:45saved.
2:53:47Okay, need to match this up. Let's
2:53:49[music] just delete this. Session ID
2:53:50needs to be there. User message needs to
2:53:52be there. And we can save that. And
2:53:55then, I think we should be good to go.
2:53:58Oh, boom. Okay, so we're not getting the
2:54:00little UI elements back from um the tool
2:54:04calls. Now, we could mess around for a
2:54:06bunch longer to make sure that that is
2:54:07working. Um
2:54:08if we look at some of the threads
2:54:10executions, when we go to what just ran,
2:54:13we should be able to see what it was
2:54:14sending back. Respond to webhook. Uh the
2:54:16tool calls is not being set up
2:54:18correctly. So, there's a little bit of
2:54:20tweaking around you need to do here uh
2:54:21because I believe these are just being
2:54:23put together uh in a pretty ramshackle
2:54:25way. We have tool calls and then it's
2:54:27going to try to build the tool calls
2:54:29from the execution metadata. So, it's
2:54:30going to look in the agent output.
2:54:32Probably not the most effective way of
2:54:34doing it, obviously. So, in this case,
2:54:36I'm not going to drag this out much
2:54:37longer, but we have this working here.
2:54:38We can walk through the whole flow. Um
2:54:40how can I help you further with Liam? Uh
2:54:42find and scrape his LinkedIn.
2:54:46And there we go. So, all the
2:54:48functionality worked just as we had it
2:54:49set up within the uh n8n flow. So, I'm
2:54:51not going to bother going through all of
2:54:53this here. What you need to do when
2:54:54you're ready to to to share this is
2:54:55either share or publish. Um you can
2:54:57publish as an app for people to use. You
2:54:59can add a a lot more functionality in
2:55:01here where you'd be able to add a layer
2:55:02on top for a sales rep signing in or
2:55:04just giving them like a sales rep ID and
2:55:06so that they only see their sales rep
2:55:08dashboard so that they can have a
2:55:09conversation with their uh assistant
2:55:12here. So, that's a a sales rep co-pilot.
2:55:14As you can see, this is definitely more
2:55:15of a a complex build compared to the
2:55:16other ones. There are a lot of tool
2:55:18calls and you really got to see the the
2:55:19complexity of getting some of these tool
2:55:20calls to work, particularly when you're
2:55:22trying to get the AI to fill out the
2:55:24value here. So, that is one of the pains
2:55:26as you saw with needing to put a lot of
2:55:27information here for them to really nail
2:55:30the schema of what it's passing in its
2:55:31JSON. Um but, you guys will be able to
2:55:33snag all the hard work that I've uh done
2:55:35here to get these working. It'll be in
2:55:36the template that's included. You can
2:55:37just grab it and import this and you'll
2:55:39be able to get the exact same modules uh
2:55:41nodes here and plug it in. So, that's a
2:55:43really great example of using the
2:55:44webhook trigger, being able to connect
2:55:45to an external application or like
2:55:47interface, and then be able to use an
2:55:48agent as the the AI brain in the back
2:55:50end, do all of this cool stuff, and then
2:55:52be able to send the information back to
2:55:53the app [music] to do the rest. So, that
2:55:55is a sales rep co-pilot, guys. I hope
2:55:57you can see now how it all fits
2:55:58together. Uh there's that few little
2:56:00like plug-in and and joining bits that
2:56:01I'd probably add in like capturing the
2:56:03whole transcript from the chatbot so you
2:56:05have more context. The idea is just to
2:56:06give your sales reps more context, be
2:56:08able to better prep for their calls, and
2:56:10then be able to do more things from in
2:56:11here. So, after the call, they quickly
2:56:12can just say, "Hey, update the CRM with
2:56:14this." Since people are just lazy
2:56:16generally, making things easier for
2:56:17people to do is going to mean that they
2:56:18do them more often. So, that is the
2:56:21sales rep co-pilot MVP
2:56:22>> [music]
2:56:22>> app uh with the n8n back end. I'll give
2:56:24you guys the code for this website as
2:56:26well. I'll be able to share this code
2:56:27with you uh over there. So, if you want
2:56:29to replicate this one exactly, you'll be
2:56:30able to copy uh this code and paste into
2:56:32Lovable to get the same sort of thing.
2:56:33But, guys, congratulations. That is the
2:56:35end of the tutorial. Uh that is a lot of
2:56:37work done, a lot of things learned. But,
2:56:39you have now got a very broad span of
2:56:40skills that you've picked up within n8n,
2:56:43um
2:56:43>> [music]
2:56:43>> putting them on websites, being able to
2:56:45put things on chatbots, being able to uh
2:56:47connect voice agents and handle uh
2:56:49pushing and pulling things from a CRM
2:56:51like Airtable. You've learned so much
2:56:53that now it's important to get into the
2:56:54most important part of all, which is
2:56:55learning how to monetize these uh these
2:56:57skills, be able to sell these kinds of
2:56:59things to businesses. And that's what
2:57:00we're going to be covering next in the
2:57:02monetize section.
2:57:05All right. So, you've just built four AI
2:57:06agents. You understand how they work.
2:57:08You've got hands-on experience with
2:57:10multiple platforms, voice AI, custom
2:57:12tools, even building a simple front end
2:57:14to connect them to. Now, let's talk
2:57:15about what you actually do with these
2:57:17skills to get paid. Because here's a
2:57:18common misconception I need to destroy
2:57:20right away. You don't need to build the
2:57:21next ChatGPT to make some money with AI.
2:57:23You don't need to raise millions of
2:57:25dollars to create some revolutionary
2:57:26startup. The real opportunity is much
2:57:28simpler than that. It's helping
2:57:29businesses understand and use AI. And
2:57:32this isn't just me saying this. Here's
2:57:33Kevin O'Leary. If I was 25 years old
2:57:36today, what's a good sector to get
2:57:37involved in? What business would I get
2:57:38involved in? I think everything is
2:57:40looking at AI now in a different way.
2:57:43And I think AI growth is going to be
2:57:44exponential. So, anything to do with AI.
2:57:46Now, what could that be? In the simplest
2:57:48form, it's helping people use the
2:57:50technology. There's going to be a
2:57:52massive amount of people wanting to use
2:57:54it that don't know how to, and they're
2:57:55willing to pay to solve that pain point.
2:57:57Even Mark Cuban is saying the same
2:57:59thing, that the biggest opportunity
2:58:00right now is helping small to
2:58:01medium-sized businesses who don't
2:58:03understand AI yet, but desperately need
2:58:05it. And the data backs this up
2:58:07completely. There are 1.7 million
2:58:09businesses in the US alone making
2:58:10between 500,000 and [music] 10 million
2:58:12dollars per year. These are small and
2:58:14sometimes you could consider them
2:58:16medium-sized businesses. They make up
2:58:1762% of the jobs in the American economy.
2:58:20And these businesses know they need AI
2:58:22to stay competitive. They see the
2:58:23headlines. They hear about what their
2:58:24competitors are doing with it. But, they
2:58:26don't have time to learn it themselves.
2:58:28And they definitely don't have $200,000
2:58:30to hire McKinsey or Deloitte to come in
2:58:32and figure it out for them. So, there's
2:58:33this massive chunk of the economy that's
2:58:35basically stuck and they need help with
2:58:37AI and there's almost nobody there to
2:58:38serve them. So, here's the stat that
2:58:40should get your attention right away.
2:58:41So, right now for every one person
2:58:43offering these kinds of AI services,
2:58:44there are over 1,100 businesses in the
2:58:47US that [music] need their help. 1 to
2:58:481,100. So, the market for this stuff is
2:58:51completely untapped. Now, here's the
2:58:52other side to this equation. Reports
2:58:54from MIT point out that 95% of AI
2:58:56projects fail. Not because the
2:58:58technology doesn't work, but because
2:58:59businesses don't have people who can
2:59:01implement it for them properly.
2:59:02Companies are rushing into AI, they're
2:59:04buying tools, starting projects
2:59:06internally, and ultimately watching them
2:59:08fall apart and never deliver the ROI
2:59:09that they expected. [music] What they
2:59:11actually need isn't more AI software and
2:59:12tools, it's people who can make the AI
2:59:15actually work and stick in their
2:59:16company. People who understand this
2:59:18stuff and can get them real results. So,
2:59:20that is the opportunity and that's what
2:59:21you are now equipped to do after those
2:59:23tutorials. [music]
2:59:24So, how do you actually turn these
2:59:25skills into income? Well, there are two
2:59:26main paths and the right one depends on
2:59:28who you are and what you actually enjoy
2:59:30doing. Path one is the builder and given
2:59:32what we just spent hours doing together,
2:59:34this is probably the path that you're
2:59:35leaning towards. The AI builder path is
Monetize Your AI Agents
2:59:37for people who get a buzz out of doing
2:59:38the technical work. You like getting
2:59:40hands-on with the tools, you enjoy
2:59:41learning the new tools and figuring out
2:59:43how things work, and you get more
2:59:44satisfaction from actually building
2:59:46something than you would from spending
2:59:47all day on sales calls or creating
2:59:49content like this. If that sounds like
2:59:51you, [music] here's how the builder path
2:59:52works. Your goal is to get over a
2:59:53reliable income stream that eventually
2:59:55lets you quit your job and go all in on
2:59:57this. And honestly, that doesn't require
2:59:59anything that crazy. Two or three
3:00:01clients per month building basic agents
3:00:02and automations is enough to replace
3:00:04most people's salaries. So, how do you
3:00:05get those clients? Well, first and
3:00:07foremost, communities like mine. So,
3:00:08when you join my free school community,
3:00:10you're probably already [music] in,
3:00:11you're surrounded by over 280,000 people
3:00:13who are also interested in AI. Many of
3:00:15them are consultants or even business
3:00:17owners who need things built but don't
3:00:18know how to or don't want to do it
3:00:20themselves. So, by showing up and
3:00:21building helpful and building a
3:00:22reputation as someone who's reliable and
3:00:24technically solid, you'll get more
3:00:26client opportunities than you know what
3:00:27to do with. You can also go on platforms
3:00:29like Upwork and start building a
3:00:30reputation [music] there, which is a bit
3:00:31of a grind at first, but it does work
3:00:33very well. The key for builders at this
3:00:34stage is getting experience, taking the
3:00:36[music] skills you've got here and
3:00:37applying them to real-world problems.
3:00:39Every project you complete makes you
3:00:40better and more confident and as you get
3:00:41better, you can start to charge more.
3:00:43I've created a complete free course for
3:00:45this builder path inside my school
3:00:46community that uses the methods that
3:00:47have worked for over 4,000 AI businesses
3:00:49that have been launched with my
3:00:50accelerator program. Plus the tens of
3:00:52thousands more who just watch the free
3:00:53content that I make and took action on
3:00:54it as well. Link to the school, as you
3:00:56know, is in the first line of the
3:00:57description, but when you join, you will
3:00:58see in the course material in the
3:00:59classroom, there's the builder path and
3:01:01the course that lays out the process
3:01:02step-by-step. There's challenges to
3:01:04complete, resources to use, support
3:01:06along the way from the community. Now,
3:01:07path two is what we call the consultant
3:01:09and this might be for you if you went
3:01:10through today's builds and were like,
3:01:12"Okay, this is cool, but I didn't really
3:01:14get a huge buzz out of the technical
3:01:15work." And it may not have felt the most
3:01:16natural thing. Maybe you're more of a
3:01:18people person. You'd rather be talking
3:01:19to business owners, understanding their
3:01:20problems, and helping them to see what
3:01:22is actually [music] possible with AI.
3:01:23You're better suited to creating
3:01:24content, educating businesses, and
3:01:26getting on calls than you are actually
3:01:28building and debugging workflows. As a
3:01:29consultant, you still learn the basics
3:01:31of the technical side like you have in
3:01:32this video, so you understand how
3:01:34everything works under the hood, but
3:01:35your actual work is a lot different.
3:01:36You're doing AI audits for businesses,
3:01:38showing them where they can use AI to
3:01:39save time or make money. You're running
3:01:41strategy sessions, you're training their
3:01:42teams on how to use AI tools. These
3:01:44kinds of workshops and audits is
3:01:45actually the first step in the journey
3:01:47for the vast majority of businesses who
3:01:49are now getting into AI. And they need
3:01:50someone to help them understand the
3:01:52landscape before they're ready to buy
3:01:53development work. And that's where you
3:01:55come in. And the beautiful part is when
3:01:56you identify opportunities in your
3:01:58[music] audits that need actual building
3:01:59and development, you can pass those off
3:02:01to people who've been on the builder
3:02:02path and you can take a cut [music]
3:02:04for bringing the deal to them. The
3:02:05builder does the technical work and
3:02:07everyone wins. As with the builder path,
3:02:08there is a complete free course for the
3:02:10consultant path in my school community,
3:02:11too, which covers warm outreach, how to
3:02:13structure and sell AI audits, how to
3:02:15progress from free to paid audits,
3:02:16basically everything you need to get
3:02:18started. And both of these paths
3:02:19actually end up at the same place. Both
3:02:21have a challenge for you to get your
3:02:22first paid client. You just need to pick
3:02:24the one that fits who you are. Now, I
3:02:25know some of you might be thinking that
3:02:26this stuff sounds good in theory, but
3:02:28does it actually work? So, let me give
3:02:29you two quick examples from the
3:02:30community. Mirza is a 22-year-old former
3:02:32marketing agency owner, no technical
3:02:34background whatsoever, and he went down
3:02:35the AI builder path and learned how to
3:02:37build AI voice agents and started
3:02:39building his reputation in my
3:02:40accelerator program. He's now made over
3:02:41$65,000 just from referrals within the
3:02:43community building voice AI systems for
3:02:45consultants and business owners who
3:02:47needed [music] technical help. Rishi, on
3:02:48the other hand, came from a consulting
3:02:50background with zero tech experience and
3:02:52he went down the consultant path to
3:02:53start. He started going to in-person
3:02:54trade shows and industry events just
3:02:56talking to business owners about AI and
3:02:58those conversations eventually turned
3:02:59into paid discovery sessions, which
3:03:01turned into much larger projects that he
3:03:02passed off to the builders that he
3:03:03connected with in my accelerator
3:03:05program. He made over $45,000 in under 3
3:03:07months [music] without having to build
3:03:08anything himself. So, these are two
3:03:10people with very different backgrounds
3:03:11on very different paths, but they both
3:03:13work. The common thread is that they
3:03:14actually picked a path and they took
3:03:16action
3:03:16>> [music]
3:03:17>> and they used my free and paid community
3:03:18to accelerate it. So, when it comes to
3:03:19monetizing your skills, everything you
3:03:21need to keep going from here [music] is
3:03:22available in my free community. When you
3:03:24join, you're going to get all the
3:03:24templates, prompts, and workflow files
3:03:26from the builds we did today and you're
3:03:27going to get access to the complete free
3:03:29courses for both the builder and the
3:03:30consultant paths. The first thing you'll
3:03:32do when you join is pick your path and
3:03:33then you'll start your 30-day challenge
3:03:34to get your first paid client. In there,
3:03:36I give you the exact methods and
3:03:37resources you need to make it happen.
3:03:38The school link is the first one in the
3:03:39description, so join, introduce
3:03:41yourself, pick your path, and get
3:03:43started. And look, I'm not going to tell
3:03:44you that this opportunity lasts forever,
3:03:46that 56% wage premium for AI skills that
3:03:49doubled in 1 year that we're talking
3:03:50about at the start of the video. That's
3:03:51the early mover advantage. That's the 1
3:03:53to 1,100 ratio of AI service providers
3:03:56to businesses that actually need help.
3:03:58These things aren't going to stay that
3:03:59way. The people who build these skills
3:04:00now and while the gap is still massive
3:04:02are the ones who will get to establish
3:04:03themselves and the ones who wait will be
3:04:05competing against everyone else who
3:04:06started today. You've done the hardest
3:04:08part. You've showed up and learned the
3:04:09foundations and now it's all about
3:04:11keeping that momentum going. So, let's
3:04:13recap what you accomplished today. You
3:04:14understand what AI agents are and how
3:04:15they actually work under the hood. You
3:04:17know the three ingredients, a prompting,
3:04:18knowledge, and tools. You understand
3:04:20APIs and how AI agents use them to take
3:04:22action. You've built four functional
3:04:23agents across different platforms and
3:04:25different use cases. And now you have a
3:04:26clear path to turning these skills into
3:04:28a real income source.
3:04:29>> [music]
3:04:29>> That's more than most people will ever
3:04:31learn about AI agents. The free
3:04:32community, like I said, has everything
3:04:33you need for your next steps. It's
3:04:34[music] first thing in the description.
3:04:35I will see you inside. If this video did
3:04:37help you just a little bit, which I
3:04:38really hope it did, please drop a like
3:04:40down below. It helps more people find
3:04:41this video. Subscribe to the channel if
3:04:43you want to stay in the loop on videos
3:04:44like this teaching you AI skills and
3:04:45showing you how to build a business
3:04:47around it. But guys, that is all for the
3:04:48video. Thank you so much for watching.
3:04:50If you've got the itch and want to watch
3:04:51another tutorial breaking down how to
3:04:52build your first AI receptionist voice
3:04:54agent, which is one of the top AI voice
3:04:55use cases,
3:04:56>> [music]
3:04:56>> you can check out that video here. But
3:04:58guys, that is all for the video. Thank
3:04:59you so much for watching. All the best
3:05:00with your AI career and journey and I'll
3:05:02see you in the next one.