Free YouTube Transcribe

Video transcript

How to Build & Sell AI Agents in 2026: Ultimate Beginner’s Guide

Liam Ottley · 43,660 words · 199 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

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.

Recently added transcripts

Browse the whole transcript library

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com, free, unlimited, no sign-up.