Transcripts
1. Introduction: Thank you and congratulations
on taking this class. AI automation and Agentic AI. If you've ever
wanted to automate repetitive tasks,
streamline your work, or learn how to use AI agents
to handle the complex, time consuming parts of
your business for you, you're in the right place. This course will show
you how to build intelligent AI workflows and autonomous agents that can
manage real world processes, helping you save
time, reduce errors, and focus on the work
that matters most. In this course, we're
going to take you step by step through the
process of designing, building and deploying AI automation workflows
that can think, plan, and act on your behalf. By the end, you'll be able to create AI systems
that save time, increase efficiency, and make you money in your
career or business. Fast, let's start with
a real world example. Imagine you're managing
the day to day operations of a new product or service launch for any company or organization you've
ever worked in. Let's take an ecommerce
brand as an example. There are so many moving
parts, sending emails, creating marketing campaigns, designing images,
managing projects, tracking finances, responding
to customer inquiries, analyzing performance,
and planning next steps. It's overwhelming, right.
Now imagine having AI agents that take over
each of these tasks for you, intelligently automating
emails, campaigns, image generation, project
plans, customer support, financial forecasts
and sales analysis, all while coordinating with
each other seamlessly. One agent handles design
and content creation, another manages project
planning and operations. A marketing agent
launches campaigns. A customer experience agent responds to inquiries instantly, and a financial agent
predicts revenue trends. All of these agents
work together to create a fully integrated system
that runs autonomously, and that's exactly what
you're about to learn. We'll start with the
fundamentals of AI automation, including how to create your first workflow
automation in NAN and set up your environment. Also cover what AI agents
are and how they've transformed everything
from administrative work to decision making
and management. From there, you'll dive
into hands on demos, building your first
automated workflow and then combining workflows into
powerful systems that can take a simple
idea and turn it into an orchestrated end to end solution for almost any
product or service. You'll learn how to
create workflows for nearly anything you want. A form to email
automation that handles repetitive internal emails
to a product design agent that automatically
generates designs based on your brand guidelines, to a project planning
agent that creates project plans and sends them directly into tools like
Jira or Microsoft Project, all from just a few sentences. Also learn how to build a social media
campaign agent that automatically generates
social media posts and campaigns and publishes them across platforms like
LinkedIn and Instagram, either from a simple prompt
or on an automated schedule. And you'll see how to create a customer support or customer
experience agent that answers customer
questions confidently and accurately using your internal knowledge, and
that's just the beginning. Along the way, you'll
explore key architectures, patterns and principles such as Model Context Protocol,
MCP, retrieval, augmented generation, RAG,
and prompt engineering, learning how to design AI
agents that can reason, collaborate, and solve
complex problems together. Throughout the course,
you'll work on projects that mirror real
business challenges. By the end, you'll be
confidently building automation pipelines
and Agentic AI systems that can manage tasks, make decisions, and drive
real business impact, saving you hours of
manual work while increasing accuracy
and efficiency. Agentic AI automation isn't
just about connecting tools. It's about creating intelligent
systems that can think, act, and continuously
optimize themselves. So, stick with me, experiment along the way. And by the end of this course, you'll know exactly how to use AI automation and
Agentic AI to save time, increase leverage and make more money while
automating your work. So let's get started.
2. How to Create your N8N account: The n8n website, and we're
about to get started and set up n8n so we can get started creating
some workflows. So first of all,
we're going to go, we can either click up here with Get Started or we can click
here, Get Started for free. I'm going to click
Get Started for free. Then next, it asks you to
fill in some information. And click Start
free 14 day trial. And so now it asks
us a few questions about our company
just to get started. I'm going to say
product and design team because we're
building a product, even though there's some
engineering involved and lots of these
areas involved. We're going to say ecommerce
company because we're selling various products
that come under ecommerce. Even though this example
is for someone who's fairly non technical,
we'll go with saying, of all of these technologies, the ones that we're
most comfortable with is writing JavaScript functions. I'm personally pretty technical, but I'm going to
build all my examples around someone who's
not that technical. So we'll go with this. Next, it asks you if you want to invite team members to your workspace. This is something we could do in reality for the
rest of the team. But to get started,
I'm just going to skip that. And now we're ready to go. We'll get this intro video, but as I'm going to be
doing the intro for you, we can just start
automating. And we're in.
3. Overview of Canvas and Menus: We're signed in, what
we see in front of us is these areas here
gives us a little welcome. It says, create your
first workflow. We can either start from
scratch or try an AI workflow. Let's click start from scratch. There you go. We're
now into the canvas. Let's quickly go over what is involved in the canvas and
what it has in front of us. First thing you can see here
is to add your first step. Now, what we have on the canvas is the ability to
create our workflow. Our workflow will go from
left to right along here. The workflow is the
set of steps that will take us from our
beginning point, our trigger to our goal. This allows us to
add our first step. But before we get into
that, I'm quickly going to go over what's involved
in the canvas, what we see here,
how we would use it. Along the top, we have it says, My Workflow, which is the
name of the workflow. We can give it a name in here, such as such as passion
sports workflow. And then carrying
on along the top, we can publish. It's
automatically saved. Here, what we've got is the
history. If we click on that. As we make changes
to our workflow, we can see the version history that allows us to roll
back or go forward. Here we are again.
Then in this dropdown, we can duplicate the
workflow, download, share, change owner, rename,
input from a URR, input from a file,
then we can access our settings for the
workflow here as well. Those are things we can
go over at a later date. Over here, we've got the ability
to open the nodes panel. That's the same as we go here and we create our first step, it opens the node panel. If we go here, we also open the node panel. It
does the same thing. Now, the set of
components, pieces, apps that we string
together to create whatever we want
to create in our workflow are called nodes. When we click here, that's why it gives us a list of nodes, but it gives us some headings to help us to find those nodes. The first thing we do is
trigger our workflow. That's why it's saying, What
triggers this workflow? A trigger is a step that
starts your workflow. Now, you can either go
by these menu items. For example, if you want
to trigger your workflow, you'll start off
whenever somebody sends you a chat message, you want to do something, then you would click
on chat message. If you want it to be whenever someone types some
information into a form, then you would choose on
form submission, et cetera. If you want to click a button, trigger it yourself, you would
choose Trigger manually. These are the list of all
the different triggers. Now, once you choose a trigger, you can do other things,
perform other events. They can be found after
you've chosen your trigger. Let's say we trigger manually. Then we click this plus button. We would choose what
we want to do next. It then groups them
into what happens next. It groups them into nodes that are related
by certain themes, AI node, action in apps. That means do
something in an app or service like Google Sheets,
telegram, or notion, a data transformation, a flow, which means to branch
merge or loop the flow. If you've got something that you've already
built a workflow, you might want to loop it
a certain amount of times or you might want
to at a certain point go off or do other things. You would choose this flow here. It gives you a
number of groupings. But what I like to do once
I know what I want to do, you can search for it
here, search nodes. Let's say I want to send an email via Outlook,
I would type in. Outlook. Then within Outlook, I'll be able to choose a
number of different actions. If I know I wanted
to send an email by Gmail, I will type in Gmail. So you can find
whatever you want. Whichever node you
want to connect to, you can find simply
by search as well. We'll go a little bit
deeper into the exact ones we'll be using within
this training. That's what the plus does. It opens nodes, the nodes panel where you
can choose a node. The search allows you to
search. There you go. You can still find
your nodes this way as well and search for
other things, too. This is notes. Sometimes you want some information
about your workflow. You would click here, drag your note to
wherever you want, and then you can add
some notes about it and more about that
possibly at a later date. And this actually controls
the side menu. Click that. It opens up a little bit there, the side menu, and that closes the side menu based on
what you want to do. If you click here, this is AI. Wherever you see this
symbol, it represents AI. And this is what you can
use to ask questions. For example, if I have a problem in my workflow and
I don't know how to fix it, I'll ask here if I just want
to know how to get started, I could ask it how to build a workflow that sends an email. There you go. It's how
to think. It's put a few nodes on the
canvas, and here it says, how to set up in the
workflow configuration node, replace the placeholders with your email address,
click Execute Workflow. Let me know if you'd
like to adjust anything. It's given us the first inroads into creating a workflow
that we'll send an email. Of course, it doesn't
know specifically what email we want to send we would need to
fill in the blanks. But very quickly, it's not only told us how to set
up and how to do it, but it's actually
done it for us, it's kind of a done for you. If you are ever in doubt about anything or you want to get
started really quickly, you can click the AI button.
And that's pretty much it. I'll close out the menu here. On the left hand side,
again, we can expand. We've got overview, which
is, if I save this quickly, an overview of all of the different workflows
we've created, personal workflows that are
inside of our personal space. We can create other projects. This is our personal
project space, but we could create
other projects as well and create other workflows. Therefore, it's divided
them into personal, and then we'll be able to more. It also allows you
to within here, create a new workflow here. If I was to hit that,
it would create yet another workflow
within our personal space. If we go back inside the workflow now, on
the left hand side, we've also got an admin
panel where we can configure various things which we can come to at a later date. We've got the templates, which are essentially
due for you, ways to get started really
quickly building workflows. For example, we've got
Track Google Trends, search data locally
with bright data, MCP, and AI analysis. We've got generating
search engine optimization optimized product
descriptions for Shopper fi and ready made dumb
for you templates in here. We've also got insights, which is various stats, which will make a lot more sense once you start doing
your workflow, day to day stats
about your workflows. You can access help here. Even though a lot
of it is accessible by through the AI option
that I showed you, you can access documentation
directly here. And if there are specific things you
know you want to find, you know they're in this menu,
you can go straight here. Then the rest are settings for each of the different
areas, personal users, project roles,
environments, et cetera, things that we can come
to at a later date. Always good to get started
really simply to begin with. But at least you know
your environment. If we go back up
and then we go into the passion sports workflow, the main things you
want to know is it's usually auto saved, and what you want
to do is you can execute a workflow in entirety
by clicking this button. But what we want to
do is we want to if we double click on
here, execute a step. Each one of these nodes
counts as a step. And if I want to run
simply this step, I can double click go in
and click Execute step. And the beauty of that is
the way the workflow works is each node takes information
from the previous node. What we want to do
is run this step, make sure it works, and we
will see the output this step. You can see here this
is an output panel, and we will see what output
comes out of this step, and therefore we know what input will come into this step. If you double click
here, we can see there's an input side and
an output side. And what will happen is once we run this node, we
will see the output. We can check what's coming
in, and that tells us what we can do before we
go into the next step, and all this will
become much clearer. But if we want to run
the whole workflow, then we can click
Execute Workflow. Down here, we've got the ability
to zoom in and zoom out. If you click this,
it will zoom to fit. It makes sure if you've
got a huge workflow, everything will fit
in your canvas. And here we can do some tidy up. If there are things
that we don't need or things that
aren't connected, then we want to tidy them up. This will help us to do that. We've also got logs down here, which tells us if we've had errors and warnings
along the way, it will list them down here, and it helps us to keep
track of any issues, warnings or things
like that here. That's your canvas.
And what we need to remember we do the aim
of the game is to build a workflow to go from some trigger to end
product or endpoint. And then that way we can automate anything
that we want to do. This is before we even
involve AI agents, we can automate our
workflows within our organization and help us to become more productive
and far more efficient. Now the next step is to start creating our first workflow, and we'll be doing that
in the upcoming lessons.
4. How to automate Emails from a Simple Form: Okay, so in this lesson, we're going to build a simple but extremely
powerful automation that is going to kick off our entire workflow
just with one action. We're going to create
a workflow that takes a new product idea submission
and automatically sends a clear structured email
to all the managers so everybody knows exactly what to do next without any meetings, slack pings, or
manual follow ups. This is the kind of automation
that saves hours every week and creates instant
alignment across the team. So we're going to be
using the following. So the workflow is we're
going from a new product idea to an email to all of the
managers. Why we use it? We use it to instantly notify the right people and trigger downstream work
without any meetings. And if there are meetings,
then they're necessary ones. They're not ones that are just to communicate information. So common uses for this
kind of a workflow are for communicating
product ideas, campaign launches,
internal requests, approvals, handoffs, or anything that applies
to a number of people in your team or
organization that can be sent out and get people to start work at one time from
one communication. So the workflow acts
as a starting trigger for everything that
follows, design, planning, marketing,
operations, finance, and anything else that needs
to be done in a company. So what you can see here is the form that
we're going to build. This is called a Passion
sports new product idea form, and it's a form to submit a new product idea to the
Passion sports management team. So what we've got here basically is anyone who submits this,
they've already had meetings. They've worked out that
they want to create a new product idea or they want to create a
proof of concept very, very quickly using rapid
development of the product. And so what they want to do is send out to all of
the key people, all of the key managers
involved the idea name, a description of what this
new idea is, the category. So this company only makes
track suits or t shirts. We want it to go to a
specific target audience of either business or consumer, the priority, whether it's
low medium or high so that they know what they need to get on with and how quickly. A keynotes about it,
and then attachments, usually some examples of
the kind of product that's going to be made or any schematics or things that
are going to help the team. And this will now get sent automatically to
all of the managers or all of the teams or people concerned and keep
everybody in the loop. So let's get on and build
a workflow that's going to take what's in this form
and send it in an email. So here we are in the
overview section. So the first thing
we're going to do is create a workflow. So hit Create Workflow
there on the top. And so the first
step is going to be what actually
triggers this workflow. And what we want is
click first step, and then we want form submission because this generates
the web forms in NN and then we can
pass the responses to the workflow or
to the email step. So first of all, click
on form submission. And so we're not going to
have any authentication. In this case, we're
going to call it the passion sports new
product idea form. And then we're going to give it a little description just to say what exactly this form does. So we've said, we're
going to allow any member of the team to submit a new product idea that can be rapidly turned into a proof
of concept or real product. And so now we add
the form elements. We're going to add each
of the elements that we need to convey the
information that the managers need to kick
off the process of creating a proof of concept or rapidly
create a real product. So first of all, we're
going to give it a title. We're going to give
it a title of text, and we want it to be required. Then we want a description
of what the product is. It's going to be
a bit bigger, so let's make it a text area. And that's required. We then want a category for the product. And instead of text, this
one's going to be a drop down. So it's going to be a list of different values we only have products in
certain categories. The default value,
let's make it T shirt, and the options you can have are either T shirt or tracksuit. And in fact, let's make the default track suit because that's what we're most
likely going to be using, so let's make life easier for ourselves. That's a
required field two. Next, you want to add a target, and that's also going
to be a drop down list. And a target audience,
we're going to give it a default
value of consumer. And the options
will be a consumer. You can be a consumer
or business, and that is a required field. So you will either
decide whether this product is for
consumers or for businesses. Next, we want to give
the product priority, a priority, and that will
again be a drop down list. We're only going to pick
from certain values of high, medium or low. That is also required. So it's going to default to medium. Then we'll have another
field for some key notes. This is some text
in case whoever's submitting this product idea wants to add some notes
about the product, things that we should remember. I've made it a text
area, it might take a little bit more text than
just a simple textbook, and there won't be any default
values or placeholders. So it's just going to be filled in by whoever submits, and
it's a required field. And then the final thing we need is we're going to need
some attachments, and these will be
images that will explain what the idea
for the product is. And for that, we're
going to choose file. Going to allow multiple files in case there are many images of a T shirt or track suit that whoever's submitting
wants to show, and we're going to make
that a required field, too. So thinking about keynotes is the only thing we
don't want required. So I'm going to uncheck
that because there may not be anything more to say
about it. And that's that. So once you've done
that, there are other things we could set.
So there are settings here. But there's nothing
here that we need to set for the purpose
of this workflow, so I'll leave that and we can
cover this at a later date. The other thing to
notice is at the top, there's a test URL
and a production URL. So these are the links
for where we'll go to actually test our form. While we're in test
mode and we're just making sure that
the workflow works, we'll use the test URL. And when we go live and everybody in the company
wants to use it, we'll use this production URL, and that allows us to test in isolation
before we go live. So now the only thing to do
is to and when we do that, it will show us
the form where we can actually start
running our test. So let's go. There you go. So that seems to have initiated with our errors. And
this is our form. Passion sports,
new product idea, allow any member of the team to submit a new product
idea that can be rapidly turned into proof
of concept or real product. So I'm going to
run this test now. So first of all, let's
give it a title. Now, we're going to create a special track suit here.
So I'm going to call it. So we're going to call
it the AI track suit, 2026, the description. So it's a track suit
developed using generative AI and the recommendations we collected from our
loyal customers. Category is tracksuit,
already picked for us. Target audience is consumer, not business already picked. Priority, let's say that's high, we want to get that done
ASAP and the keynotes. So we're only
giving two criteria here that the track suit should be based on audience
research and on brand. Apart from that, nothing else. And then we'll give an
example of the track suit. Happen to have one here, and there it is. That's attached. So let's submit this
new product idea. And there you go, so we can
see that we got the response. The form is submitted,
your response has been recorded. So
if we now go back. So if we now go back to Night N, now that we've
submitted the form, we can see that there is some
output on the output side. So if you remember,
there's input and output. The input actually came from the form when we executed
it and I submitted, and the output is here. So if we look, we can see that there are various
different tabs. We're currently on
the binary tab, and this shows that
we have attachments, and that's the manikin
file. I uploaded. And then you also
got these schema, which essentially in the
same way that in a database, you would have usually
different columns or different fields or
different bits of information. You can see all the different
bits of information that have been submitted, title
description category, target audience,
priority keynotes, and you can see their details
by the side here in gray. And then attachments is a list of all the
attachments that we put in, and you can see there's one
Passion Track Suit Mannequin. There, it tells us the size, when it was submitted.
So good information. See in schema form
in table form, the exact same
information in JSON form. And if you're a developer, you're familiar with JSON form. So this is structured
in JSON form, and that is a lightweight way to send information
across the Internet, which we can cover
at a later date. And then, as I said
before, the binary form, which basically
means we've attached a file data consisting of data, and that is this passion
track sutmniin JPEG. So we've attached an image file, and it's just showing that
this was attached as data. The first part of our
workflow is working. The next part is
to actually send this information via email to all of the managers.
So let's do that. So if we click outside
of this window and we go back go back to the Canvas. What we now want to do is what
we've done by running that is we've proven that we can capture all the
information from a form. And this line is a connector that will take us
to the next node. So what we now have to
decide is what we want to do with that information
and that data, so we'll clip plus. And we can go through here and
find the app that we want. So, for example, we click on
Action app that will show us a whole bunch of apps that can take action on the data
that comes out of here. But what I like to do because
I know exactly what I need, I always like to search for it. So even from this stage, I'm just going to
search for outlook. So imagine you had an outlook account and you wanted
to send it that way, you can just search for outlook, Choose Microsoft Outlook. If you've got a Gmail account and you want to
send it that way, simply type in Gmail. So I'll stick with
Outlook. There it is. And what you want to do is click on first of all,
click on Outlook, and it will show you all the different actions you
can do with Outlook. So let's have a
look through these. You can create a calendar,
create a contact. But the one we want
is to send a message. So now we look through message actions
and click Send a message, and that has now added the
message node to the Canvas. So if we go back to the Canvas, you'll see now there's
a message node there, and it just opened
the window for us. So if we want to go
back to that window, we just double click. And we can see now on
the left is input, you can see this has
the that we showed. So it shows what
data's going in, and this is what I
showed you earlier. This form, and also it
has a binary there. And on the right is output,
and there's nothing there yet because we haven't
executed this step yet. So now the first thing to do is it says credential
to connect with. In other words, this
is logging in to Outlook to the account
that you're going to use. I've already got an account, but what you'll do
is you'll go in, create a credential,
and I chose AWOth. So if you choose that, then
that will allow you to log in to you can go to
connect my account. It will then allow
you to sign in, and you can close
that, come back, and just choose
the right account. So now you can see I've
got two accounts here, but I'm just going to keep
with what I tried and tested. So the resource we want
to send is message. So that's call we'll
leave it with that. The operation is send,
and this is picked automatically because we
chose a send message action. So now here in the two field, we'll pick who we
want to send it to. To begin with, let's
just try one email, and then we can add
more emails afterwards. So that's our first email address that we're
going to send it to. The subject, let's call that so we're going to head up the
subject with new product idea, and then what we should
do is we should use the title of the new
product idea in here. Now, this is where I will
show you how we can bring data from the previous node
actually into this node. And so this is how we
transfer data between nodes. The beautiful thing about
NAN is it's all dragon drop. If I want to include in the subject line
something from this data, I can just pick it
and drop it in here. I think the most appropriate
thing is to drag in the title of the product idea that we want to email
to all the managers. So we'll just grab this,
bring it, there you go. It brings it in as a
parameter of JSON. And so now the email is going
to say new product idea, and it's going to have the
title of the product idea. So it'll come out saying
New product idea, the AI track suit, 2026. So that's that. And
now for the message, the message here's one I
made earlier. So here we go. So this is a idea for the product message that I came up with earlier and
I've just pasted it in. So it says, Hello team. New product idea
has been submitted. Please review the
details below and begin your respective workflows. So I'm going to update
this slightly to say, begin creating the proof of
concept for the product. And so the idea details are the title is we'll fill all of these in if I zoom out slightly by dragging in the
correct piece of data here. But before I do that, I'll just complete going
through the email. So it says submitted
by your name instead of bringing that in as
a piece of information. I'm going to hard code
that. So let's say all ideas go through
the managing director. And so please take appropriate
next steps in your area, product manager refine
design concepts. Project manager, create
project plan and assign tasks,
operations manager, review sourcing
material requirements, marketing manager,
plan campaign assets, customer experience manager,
note potential FAQs, finance manager, estimate
costs and for cost impact, sales manager, prepare sales
tracking and reporting. Thank you. Okay. So
that's our email. So all that's missing is all of the information
about the idea. And as usual, we
can drag that in. So let's drag in each one of
these bits of information, and we're going to
replace what's in the square brackets with each bit of information
from the left. Pretty straightforward.
I usually find it quicker to
delete them all and then drag them all in after
I've deleted them. There you go. So now we have dragged in all of the
information that we need. Now, it says attachments here, but attachments are
treated differently. Because the attachment is
not going to be in Jason, it's going to be a binary. We treat that differently.
So I'm going to remove this, and that will be
auto saved in there. And what we're going to
do is we're going to add a field for attachments. So add a field, attachments. And the way we add it is
we click Add attachment, and we need a data field name. So the data field name
is going to be the same as the name here, because that's the name given to this binary that contains
our attachments. So all we need to do
is literally put in here attachments,
and that's that. And that's it. That's
our complete message. So if we go and we
click Execute Step, looks like I have a little
problem in my two field. Let's have a look. Looks like
this semicolon didn't like. Let's try again. Says, Node executed successfully,
and that is a good sign. So if that's worked, I should have an email
in my inbox that looks something like
this that took all of the information from my
form and sent that to me in an email with an
attachment of the idea, the product idea for the
passion sports tracksuit. So let's go over to my outlook
account and have a look. Here we are in my
Outlook account. It's been sent to product, passion, consulting,
so let's have a look. And there we go.
Here's our email. We've got the attachment here, says, Hello team, a new product
idea has been submitted. Please review the
details below and begin creating the proof of
concept for the product. Idea details, title
the AI Tracksuit 2026, description a tracksuit developed
using generative AI and the recommendations we collected from our loyal customers. The category is tracksuit,
target audience, consumer priority high,
keynotes and requirements. So the track suit should be
based on audience research. Brand, submitted by Paul
Ashun managing director, please take the appropriate
next steps in your area, and it's got all of my
different managers there. Thank you from myself. One thing seems I seem to have added the name of the product again, so let's go
back and change that. But apart from that, I'm really happy that we've got
our email through. So there you go. That's
the issue right there. If we get rid of that, we're good to go. So
there you have it. That's our first workflow. So why does this
workflow matter? Well, it may look like
a very simple workflow, but it demonstrates
something critical. One trigger can get
multiple people in your company aligned around one message that's
really important. And that means you can do
that with zero meeting, zero manual follow ups, and clear ownership of who needs to do
what by their role. And this is a
foundational automation, one that we're going to
layer AI agents on top of later in this training.
So now it's your turn. Pick a repetitive challenge in your career or
business or project, and one that needs an email
sent out to multiple people. And create a workflow
inspired by what you've seen. So examples for inspiration
are, if you're a founder, you can go from new idea to notifying leadership,
as I've shown. If you're a project
manager, you can go from a new request to assigning tasks via email or sending people a number
of tasks via email. If you're a marketing manager, you can go from a campaign
brief to a team email, notifying them about
that campaign. If you're operations manager, you can go from a supplier issue to alerting stakeholders, HR people or ops, you can go from a new hire to an onboarding email,
and a freelancer, you can go from client intake to project kickoff with an email that kicks
off the project. So remember to build
a simple workflow, something that starts with a
form or a trigger that sends a structured actionable message and eliminates all of
the back and forth. And once you can automate
communication like this, you'll start seeing automation
opportunities everywhere. And we've got much
more to show you, but this is a really
simple example of the power of an automation. So see you in the next lesson.
5. How to use APIs for automation: So in this lesson,
we're going to automate product research for our
new track suit idea. Instead of manually
needing to search for the top selling track suits in the USA so we can do
some research on them, we're going to use an API to
fetch some relevant data. So an overview of the workflow. For this workflow,
we're going from product research to an
email. Why we use it. We use it to automate the gathering of
product market data and deliver structured
information and research about our product. And common other uses for this are not only
product research, but also you can use it
for competitor analysis, tracking sales across the Internet and monitoring
trends across the Internet. So the scenario is we're automating tracksuit
product research. What we're going to
do is let the API do the work and automate
the reporting process. API stands for application
programming interface, and it's a way for one piece of software to communicate
with another. So unlike the nodes in NN, APIs can expose properties that are sometimes
not in those nodes. So let's have a look and
let's create a workflow. Here we can see there are
two different workflows. I've actually
placed them side by side just so that
we can see them. The first one, once
we click Execute, it's going to do a search using this node. This is a Tav node. And so we've inserted that and then it will take
out, but from that, it's going to run a
little bit of code just to format the results into HTML, and then it's going to send an email message to
the product team or to the product manager or
product owner so that they've got some research done for
them based on this search. So let's have a look at the kind of email
that we would get. If I go to my email, you can see an
example of the kind of email we would get says, Hey, product team, here are
your latest results for top ten most popular track
suits in the USA says top ten, but actually is returning the best seven track suits for men, according to Esquire magazine, and it's got some images of different types of track suits that have come back
in the search. And while this isn't
an extensive email, this is just a first start
really at how we can get back some kind of information
that relates to our product that we can call research that we can then delve
deeper if we want to. So this is the kind
of email we get back, and that's an example of what we're going
to create today. So looking back at the canvas, there are two ways to do it. This does it via the node, the search node,
which is provided by Tavl and this does
it via the API. And as you can see already,
there's one major difference, which is that this
uses what's called an HTTP request to go off
and get the information, and that's going to
be using the API. So let's get into it. I'm
going to do it in both ways, and then I'm going to
explain why we would do it in each way and
how it's done. So the first thing we
want to do is we're going to click Create Workflow. And in here, the first
step is we're going to do this using Tavi's node. So if we go and we click here, we can actually search for Tav. And in here, we're going to
find the action that we need. So the first action we need is the search action,
so we'll click on that. And this is what's going to
allow us to search on Tav. Now, before you are
able to run this, you're going to need some
kind of credentials. And the way you do that
is on Tavi's website. So if we go over, here I am at tav.com, and what you want to do is, first of all, you can find
out all the information about APIs and things like
that on this website. If you click on Docs and you go to API reference, here it is. But what you really want to do is you want to
once you're here, you want to be able to log on as someone and sign up as
someone who can this API. So to make sure you've got the correct type of
account, I recommend, even though you could create
an account on the homepage, just go to get an API key, and then that will allow
you to sign up here. And that just makes sure
that you can sign up. I actually signed up with
Google, and that's that really. Once you've done that, you want to go to apt tave.com, and you'll end up on
the homepage here. And then right here
on the homepage, you'll see here
it says API keys. If you don't have one, just
click the plus button. And then give it a name. And it's correct
that its development one, and click Create. I've already done
that, so I won't do that now, but
once you've done it, you will get an API key
here that you can copy, and you can head
back then to NAN. And then when you come in here, you can create your
new credential, and it will ask you to
put your API key in here. You can just paste that straight in like that and click Save. And then once you've done
that, you can just close the window. I'm not saving mine. I've already done it. So then you'll be back at this screen, and you want to make sure
that the resource is search, which it will be because
we chose it earlier, the operation is query, and there's nothing else
you need to do there. So at this point, what
it allows us to do is run a particular
type of search. So let's test this out and
make sure we can run a search. Now, one of the benefits
of using Tavili is it's optimized for AI agents. It's optimized for
the exact kind of purpose, what
we're using it for. And it uses AI in
the background to do more powerful searches than you could get from
the Google API. So I'm about to put in a query, and it's going to give me
very much a specific result. It's not going to give me a list of pages or anything
to choose from. It may give me a page, but it'll give me more
specific results. So let's grab my query
and paste that in. So I'm going to start
with quite a vague query just to
demonstrate the point. So this is a very open question. What are the top most popular
track suits in the USA, and let's execute that step. So you can see we've
received some output. You can see it as Schema, which I think is a little bit clearer. You can see it as a table,
or you can see it as JSON. But in either case, what
we've got back is we've got back just some results here, and the results are consisting of some links to some
various websites. So you can see you've got adidas.com,
bestsellers tracksuit. We've got gq.com,
the best tracksuits, and we've got farfetch.com. So we've got a whole bunch of different links to different
places in this format, which is a format that we
could then put in an email. So from here, what we want to see is
actually some images. And the way we do
that is there are options down here
that we can pick, include images is one of
those, and we set that true. So if we now execute the step, we can see here we have a
number of different images. And so now what we can
do is we can see images. If I open this in
a different tab, images for our research that show us what some of the
best track suits are. If we now go back we may ask, how does this relate to APIs? So in the background, Tav is actually using an application
programming interface. In fact, all of the nodes in NAN are using application
programming interfaces to talk to code. And what NAN does is it
wraps them in a node. But that requires Tav to
actually do what they need to do to allow NAN to
create their nodes. In fact, there are
some companies that don't have nodes
available in NAN. Now, in this case, we do
have a node available, but I'm doing this to show
you how you can get around it if you don't let's say
there wasn't a node for Tav, how would we still fetch this information and
send it to an email? Well, if we close this and go back to Tavi's website,
all will become clear. So if we go back
to the homepage, what we want to do is we want
to click on documentation. Now, documentation here gives us a link to the API reference, and the API reference
will show us actually what NN is doing
to wrap the API. So the application
programming interface is actually sending
requests back and forth, usually in JSON format. What you can see here is
these are the different APIs. One of them is search, extract, crawl map, and they all
have different purposes. But we are using search, in this case, just to
demonstrate the idea. And if you look down here,
you can see here are the various properties
within the search. So we've got authorizations
that allows us to authorize, and that's where our API key goes to show that we actually have the authority to we actually have the authority
to request information. So when we logged in, we created our API key for that reason. We've got the body, which
has in this example, the actual query string. And here they've put
in who is Leo Messi. And it has various
other things like auto parameters,
topic, search depth. And if you remember, we even said, include images, and we did that in the node. So let's look side by side with NAN so we can compare the
API to what we did in NAN. So on our left, we have
our API documentation. So this is how
behind the scenes, NAN is talking to Tavi
to get the information. And on our right, we have NAN
and we have our node open, our Tav node open. And if you look
closely, we're sending a query and down the bottom
are various options. And search depth is one of them. And if we were to
look here, we can see here search depth is
also an option here. Another example, as
I stated before, we looked for include images
was one of the options here, and include images is also Of the options here. So what we can very quickly
see is using the API, we can do the same things that
are available in the node. Now, why would we use an
API if we do have a node? Well, one of the things that you'll see is that if we open up options and we look through this list of options
that we have, and then we flip
back to this side. You'll see that one
of the things we can search by here is topic, and topic is the
category of the search. News is useful for retrieving
real time updates, particularly about
politics, sports, and major current events covered by mainstream media sources. General is for, broader, more general purpose searches that may include a
wide range of sources. So as you can see, sometimes there are
options that are available here that aren't
available in here. And so if you want
either greater control, which has nothing to
do with the options, but just greater control
over what you're doing, or you want to grab specific options
that are available within the API that are
not exposed in the node, that's why you'd use an API. Now, today we may or
may not be doing that, but at least we know that if
we ever wanted to do more, we could use the API
call to do that. Now let's do exactly what
we're doing with the node. But instead of using
a node to search, let's use an API
call to do that. So now we're back in the canvas. What we're going to do is
we'll leave this in place. But instead of using
a search node, now we're going to use
HTTP request node, and this is the node that we use to make a
request from an API, and then we get back a
response for our search. So first of all, as
usual, click the plus. HTTP request, very easy way to do our setup is
to use this curl. And by importing the curl, like a command line URL, what we're going to
do is we're going to actually import all of the correct settings that we're going to use in
our HTTP requests. So if we head back to
the API documentation, so what we want to do is if you look on the right hand side, you can see there
are various options, Python, JavaScript,
and there's our car. So if we click on
that, click Copy, what this will do is it
will essentially run a command within NN that
will set up our node for us. And it will mean that
we don't need to fill in and do all of the setup to set up the node correctly so that it can make
the request for the search. So if we head back to NAN, then what we want to
do is click Import and paste in exactly what
we got and click Inport. So now we can see that's
completely set up. So what this does is it set
the method for us to post. It's calling the correct
API, which is search. It's saying we don't need
authentication here, at least. It said, send headers, and it's saying what to send in those headers to the code. And it's saying
which fields to use. So the first field it's using and the only
field it's using actually is authorization
authorization field. And the bearer will
have our API key in it, which is what authorizes it
and means we can use it. So now if we head back over, we want to go to
get our API key. So we've headed back to our homepage and
we can click Copy, head back to NAN. And where it says token, we just replace that with the API key. And now this will be authorized, and it will know that
we have an account, and we're authorized to get
the information we want. Down here, it says, send body. This is in JSON format, and this is what it's going
to send over to the endpoint, to the API endpoint, and all of these parameters
tell it how to run our query. So first of all, let's
change the query to exactly the same thing
we had in our node, and we don't want
that there, so detach that as this is going
to run separately. So we'll open that
up and what copy? Go back to our HTTP request. And at the moment, we'll
just hard code it in. It's best practice to have a
parameter and pass that in, but we're just going to
hardcode that in for now. So there's our question. That's
pretty much all we need. There are no other options we need to include
at this point. Let's just execute that step. There you go. So now we've got our results
just like before, and again, no images. So what we want to do is,
if we look through here, we can see that there
are various options, and these are the equivalent of what we set up in our node. If you remember, we flicked the switch that said,
include images. The equivalent of
doing that in code is obviously setting this
from false to true. So let's do that
and execute again. And now we see up here
we've got images returned. And if we just
take a sneak peek, right click, go
open a new window, you can see there's
a bunch of images. So related to our results, we've got now some images for research purposes for some of the most popular track suits, according to what Tav has
found on the Internet.
6. How to automate Research with APIs: Just take a sneak peek, right click, go
open a new window. You can see there's
a bunch of images. So related to our results, we've got now some images for research purposes for some of the most popular track suits, according to what Tav has
found on the Internet. So at this point, we've got back the information
in exactly the same way that we did using the node,
using our search node. But as I pointed out, there are some options in the API that aren't available in the node.
And one of them is topic. Currently topic is
set to general. Let's go back and see what options we've
got for our topic. So here we are back at their API documentation under Tav search. And we can see if we recap Topic had available options
General, news and finance. And if we want something
that's pretty current, we'd probably want news. Let's have a look through and see if there's anything else that's interesting that
would help us on our search. Are some other
things like dates, but for the purposes
of this exercise, let's just make one change. Let's change the topic
from general to news. Now, I don't know if any trackis will be mentioned in the news, but if there are,
this will definitely pick it up. So let's
go and have a look. So now back in NAN, we're just going to
make one simple change, change the topic to news, and let's run that and see what results, if any, we get back. So there you go. We've got
back some more results. This time, the difference
is the topic is news. So let's see if we got
back anything newsworthy. So we can see we've got
the same image back. What we can see is in results. We've got a link to
Augusta Chronicle. And here the title
of the article is who is Georgia's best friend? These are the states most
popular for dog breeds. Now, it doesn't look like this is going to
be helpful to us, so we can just change this back. It doesn't I didn't
really expect to see anything about
tracix in the news, but it does demonstrate
that we can obviously change these parameters
based on what we want. So if we were doing
research that was related to the news or we were a news organization or we were researching the
news as an organization, simply by changing this topic, it could be really
valuable to us to make sure all the results that
come back are around news. So let's change that
back to general. Let's run again. And now we can see that this has gone
back to GQ magazine, which is fully in line
with what we want to do as ecommerce company. We can see that this is GQ, we've got rush.com,
we've got nike.com. So the images are coming from places where we're
interested in. And if you look through,
it's got fashion beans.com, fashion site related, 12
best track suits for men. One of the beauties of
using Tav is that it makes sure that the information
you get back is a lot more likely to be related to
what you're searching for. As you know on Google,
we would just get back anything that
relates to this sentence, anything that has
particular keywords but by changing
various parameters, we can get a lot closer to what we're looking
for in our research. So now I'm satisfied that
we've got back some research. We can always tweak
what's in here. We can change the
depth of the search. We can change a hell of a
lot, but it's a good start. We can even change the country and localize it to the USA. But for now, we've
got a good start. So what we'll do now is we'll concentrate on the
next part of this, which is sending the
information via email. So in order to send
information by email, what we're going to do is we're going to take the
output of this. We're going to
change it to HTML, and we're going to put
that HTML into the email. So, if you're not
a coder, one of the beauties of ChatGPT is, you can actually go to
ChatGPT and ask it to generate the code for you,
which is exactly what I did. But what we're going
to need to do first is put in the right node that
can accept that code. So the node that accepts
that is surprise, surprise, called a code node. So
let's click on that. Type in code. We'll put
code in JavaScript. And what that allows us
to do is it allows us to paste in here some code that will be evaluated to
whatever we want. We're going to get it
to evaluate it to HTML. And so now what I like to do is, I like to go into
ChatGPT to do that. So I decided to use
ChatGPT in the end to demonstrate how you can get
it to create code for you. Now, here's the
prompt that I use. But it was along the lines of, how do I write the results and images from the Tavl
node into an email? And what it came
up with was this. So I literally just
copied the code. So if we now go back. So
this is our code node, and now we can paste in what we got from TachPT directly in. And so if you look here now, what we're doing
is we're looping through the results
and the images. The results are what have
the information in text, and the images is what has
images related to our query, which is up here,
which is what are the top most popular
track suits in the USA. So it's essentially just got a constant of
results and images. It's setting up our HTML for us. And it's looping
through the results, and it's building a list of
HTML list items in there. It's adding that to the HTML. And then it's adding in obviously an image
header and then looping through
all of the images, and it's creating some HTML
for the images as well. So if we execute that step, we can see that Assal
done in the schemer, you can essentially see
that HTML is in there, and that will build our webpage. Is the HTML. You can
see it as a table. It's still HTML. There's
not much to see, really. And in JCN form,
it's still HTML. The main thing is
that it's created the HTML that we need
for the next stage. So let's now go
back to our Canvas. So now we've got
an HTTP request. We've turned that into code, and the next thing is to put that into an email
that we can send. So every time we
execute this workflow, this automation will fetch
the information from Tav, turn it into HTML code, and then put that
in an email for us. So as we've done before, Bit plus Outlook we want
to send a message again. Click send message. Here it is. And so we're going to steal, I'm going to keep with
my original account. All this is correct, it's a message. You're
going to send it. Send it to the same
address. In here, I'm going to call this
New Product research. And the title is going to
be the query that we ran. Now, as you can
see now, there are more objects on the left here. So we want what we got from our HDTPRquest and let's take the query and use
that as the title. So now it's going to say
new product research. And then you can see
down here it's given us out the result of
what this code will run, and it will say, What are the top most popular
tracksuits in the USA? So that's going to
be our subject. So as soon as the team get this, they'll know that this is going to contain
product research for this question.
Get rid of space. And so now the message
is going to be the output of this code node. So let's just drag that in. So now we can give a little
greeting to the team. So I've said high product team. I've given it two
line breaks and said the results of the query, which is the same as this query, and you can see it
all here as well. The results of what are the most popular traces
in the USA are below. It's given it two line breaks, and this is HTML for
all of the results, and that's going to
have in it links to any articles and also
links to the images, and that was all created
in our code node. So now let's execute that
step and see what happens. So it says success, which means that the email has been sent, and it just says the same
thing in all of these. So if we now go
over to my email, we'll see what email
has been sent. Before we do, I'm going
to save, very important. Again, in my sent items because
it was sent by my team. So it's come out
looking like this, and I know exactly
why that's happened. The reason is because we've
sent it as plain text, but we've in HTML. So let's go back
and sort that out. So back in NHN, what
we wanted to do was, if we click on our HTML message, and what we want to do
is pick message type and make sure that that's
HTML and execute again. Yes, so success there. Let's go back to our email. You can see a new emails
arrived, and there we go. So here we go. The subject
says, new product research. What are the most popular
track seats in the USA? High product team. The
results of what are the top most popular track
seats in the USA are below. Search results, 12 best
tracksuits for men, Ultimate Style Guide in 2025. Best overall track
suits for men, and then it's got some
information here. It's got a link, and it's got various images
covering that. Now, again, this is
very, very high level. We haven't gone into any detail.
We haven't got specific. We haven't said if the track
suits for men or women. We haven't said the
year or the location. But at this stage,
you can already see how just from a simple query, we've got very
clean results here. No clutter, not the kind of
thing you get from Google, where you get pages and pages, some of which aren't
even related. And so this is an
excellent use of an API, and we can be more specific to the topic that we're
searching for as well. We can also be specific
to the country, the year, the time frame, and all those things based
on what I've shown you. So hopefully you can see how powerful this can be
and you've learned exactly how you can
use an API call to achieve your goal.
So now it's your turn. What I want you to do is pick a repetitive research
task in your career, your business, or your project, and create a workflow
inspired by this lesson. Examples for inspiration are
if you're a product manager, you can go from competitor
product research to an email to the
team, as we have done. If you're a marketing manager, you can go from social
media trend analysis to a weekly digest. A sales manager can go from top selling SKUs to
an internal report. Operations manager can go from supplier price updates
to an email alert, and an analyst can go
from financial data or a pool of KPI information
to a formatted report. So what I want you
to do is build a workflow that uses
some sort of trigger, pulls data via an API, formats it with a code
node or into HTML, whichever format
you want, and then sends a structured
email to stakeholders. And once this is automated, this workflow can allow you and your team to focus
on decision making. So there you go. Hope you've enjoyed that. See you
in the next lesson.
7. How to automate Text into Google Sheets: In this lesson,
we're going to take the product research
automation that we built in a previous
demo and level it up. So instead of sending product research
results to an email, we're going to store them in Google Sheets so they're really easy for the
team to review, compare, and reuse
across the team. So the workflow is
from product research to Google Sheets.
Why are we using it? We're using it to store and
structure product research so that teams can analyze, compare, and act
on it over time. Are common uses for this type
of workflow for each role? Well, product managers can use it for comparing
competitors, marketing teams can use it
for planning campaigns, operations teams can use it
for reviewing suppliers, sales teams for tracking trends, and founders or CEOs or
chairp for validating ideas. So the scenario is we want to go from researching an email
to a shared system. In the previous lesson, we researched the
top track suits in the USA using an API and then sent results via email,
and that's useful. But emails are temporary. So what we really want is a central source of the
truth that grows over time. And that can be filtered and reviewed and is accessible
to multiple managers. So instead of
emailing the results, we're going to store
them in Google Sheets. Now, we already have
a spreadsheet setup called Passion Sports
Product Research. So let's take a look. So this is our sheet
in Google Sheets. It's called Passion
Sports Product Research. And as we can see, we've
got the table here already. It's inside of the track
suit articles. Tab or sheet. And then next to that,
we've got another one, which is the
tracksuimages sheet. So you can see both
of them down here. And each one has got a table. So you can see
that in the table, we've got the search query. What are the top most popular
track suits in the USA. We've got an article
title, for example, seven best track suits for men, Article description, our
favorite track suits for men. And if we scoot
along a little bit, we can see we've got a
link to the article here. So if I click on that and
open that up, there you go. This one happens
to be in Esquire, and there's some stuff in here about track suits or
about this track suit. We've got a research
date, as well, so we can tell when this
bit of research was done. We will quickly know if
it's irrelevant or not. The next tab or sheet, tracksuit images,
we've got, again, the search query that ran it, and then we've got the image
link linked to an image that came back from this
query and the research date. So it's the same thing
if we open that up. In fact, if we open a few
of these up in a new tab, let's have a look
at this last one. So that was the
previous article. Here we've got an image of one of the track
suits that we found. It's another image
for a ladies one, completely different
style, obviously, different colors, everything. Here we've got completely
different one. That one's pretty colorful, huh? So these are the images and the research that came
back when we used Tav. And so what we want to do
is we want to generate these documents
automatically now instead of sending all the
research through email, and this can just
grow over time. So let's go to our
workflow and you'll see exactly how we
have done that. And we go to product
research API to Email. Click on that. You can see we never
quite completed this one, but here you can see we basically created
an HTTP request, created a code node to run some code to get the results from this and change
it into HTML, and then send that in an email. So if we now go back, and I'm going to show you what
we're about to create. So here, this is what
we need to do now. So now we're going to take
that same HTTP request. We're going to spit
the results into various items and put that
in one of our sheets, which is the articles. So we're going to append
that as a row in that sheet. But at the same time,
we're going to split out the images and send them to a
completely different sheet. And this is what
we need to create. So let's go back and start this, and I'll show you exactly
how we got to this. So if we go back is let's start with the
product research to email. What we can do is
immediately duplicate that. And let's call it product
research API to Google Sheets. So it's good to duplicate that because now we've got
a good starting point. So we can get rid
of this, which was just there for demo purposes
in a previous lesson. And if we now have
a look at this, we still want the
same HTTP request. We don't want to go
to email anymore. We actually want to
get rid of that. And what we do want
is we want to go now to a Google Sheets. So to do that, we'll click Plus, if I type in sheet, we can see that there's
a Google Sheet Snod. Click on that and we
get a range of options. Now, we don't need a trigger. What we need is an action,
and we're going to choose append or
update owing sheet. Now you're going to need
to choose your credential. I've already set myself
up with a Google account. But if you haven't got
one already set up, you'll go to create
new credential, keep it two and then
sign in with Google. And once you do, you'll use the Google account
of your choice where you want to
store your sheet. Once you've done that Clicksave, I'm going to close this.
I've already done it. So I've chosen my
Google Sheets account. We're choosing a sheet
within the document. And down here it says
append or update row and we want to append a row. It gives us more flexibility later if we actually
want to update it, and we can come back to this same node and just
change the setting. So now we're going to choose
the document from a list. If you click here, it
goes through all of the different
sheets that I have, and we're going
to choose passion sports product
research in this case. So you will want to have created your sheet with all
the right columns. So if I go back, you can see
I've already created this. So you'll want to set
this up. What I'm going to do is get rid of
the rows I already have. There we go nice and clean. So you might want to take note of these rows I've already got. It should start nice
and clean so we can see when we write
new content in. So now back at NAN, we're choosing a
document from a list, and within the
document are tabs, and they're known as sheets. So we're going to
choose from a list. You do have the option to
choose by URL, an idea or name. I like to just choose from list because they're already
named pretty well. So we can choose from a list, and the first one we're going to do is track suit articles. Now, this is where
we're going to map the columns of the data. Into these particular columns. We're going to map the data
into the particular columns. But before we do that, let's go back and look at our canvas. So at the moment,
it's triggering off of this because we're not
passing the information in. Now, because we've got multiple rows of
information going in, we actually need to split up the information
that goes in here. So you won't take this trigger. And we also can't use the code node that we used
in our previous lesson for turning it into HTML because we're not
sending it in as HTML. They're separate rows, so
we'll get rid of this, but we're still going to
take the same HTTP request. So if we run this quickly, we'll see the data that's
going to come out of it. So this is the data
at the moment. One thing I know is
that at the moment, we're set to MX results one, and that's why we've only
got one result here. So I'm going to
make it Max results ten and execute it
again. There you go. So now we've got four
images that came back. We've got many more results. So these are the articles
that are going to go across. So what we want to do
is we want to take each one of these images
and each one of these results and put them in this table in
the respective tab. So now, how do we do that? So we will need code. However, this is a good
example of showing you how we can actually use the built
in AI features within NHN. Let's suppose you're not a developer and you still
want to be able to do this. You know how to do
the HTTP request because it wasn't too intensity. You know how to create a node because that's not
too intensive, either. Pretty straightforward for
a non technical person. But you're not sure
how to split up these results to get
them into this sheet. So this is where we can use AI and just tell it exactly
what we want to do. So the quickest way to do
that is to just go over here to the right where
it says NH N AI. Click on that and literally
ask the question. So this is the question
I asked earlier, which was if there
are multiple results, how do I write each result
in a row to the spreadsheet? So let's run that. Now,
this is going to think, and it's going to go through a thought process to
work out how to do that. And because it knows we've
already got these two nodes, it can use the information it's already got to work out what should go in the middle to connect them and get
us the result I want. This is a lot of what
can be done in ChatGPT, but now with the power
of AI within NN, it actually does
the work for us. There we go. The AI is finished
so let's see what it did. So I asked it, if there are multiple results, how do I write each result
to in the spreadsheet? And it says, I can
see your workflow receives multiple results
from the Tav API, and the results are currently, only the first result would
be written to the sheet. You need to add a
loop over items node to process each
result individually. And so you can see the steps
the steps it went through, getting the no details,
searching nodes, getting no details,
removing a connection. I added code a code node,
connected the nodes. I got a node parameter, updated node parameters, and
then validated the workflow. And what it says changed
is it added a code node that extracts the results
array from the APIs response. So it's just basically
a collection of all of the results
it has extracted, and each result is now output as a separate item with a search
query and the current date. Google Sheets node
will now append one row per result instead
of just the first result, which was the exact
problem I wanted to solve. And it says the workflow now
processes all results from the Tav API and writes each one to a separate
row in your spreadsheet. The code node transforms the single API
response containing multiple results into
multiple items that flow through to the Google
Sheets sheets node. Let me know if you'd
like to adjust anything, which is great, and we can
actually execute and refine. So before I do that, let's go back and have a
look at what it's done. What we've got now is we've
still got the HTTP request, and we've still got the apenRow. But if we click inside,
if we look here, we've got actually a new node called extract results array. Let's double click
on that. And here's the code. So we
can see the input. In the input, we've
got the query, and the important
things are we've got images and results. And images is a bunch
of different images, the four images I
showed you earlier. And results is a bunch
of different results. You can see everything
up to ten results, we'll get back because
I set a limit at ten. And there are we happen
to have got nine. And what we want
to do in this case is want to pick each result out and we want to append it
as a row to our Google Doc. So what this code does, I
won't go into too much detail, but essentially it
grabs the input, and it finds the
results, which is this, and it loops around
those results, pulling out various bits of
information that we need, which is the title, content
URL, and research date. And it essentially
will store that in a way within this JSON
object that allows us to pull it out row
by row and append it into our Google Sheet. So if we execute this,
we'll see the output. Here. So on the right hand side, now we can see the output is essentially a number of rows, and each row is a
result from the left, it's pulling out just the
results at the moment because that's what I
asked it to do over here. And so now we've got a
different row of information, and you can see it split
up with the right columns. That are going to go into our spreadsheet, which is excellent. So now the way to
test that out is if we go into our
appended row sheet, you can see that it's already got all of the
right information. It's pulled the
right information. So we've got a search query pulled out from the left here. So that's going to
be what are the top most popular track suits. And we've got an article title, which is pulled from
here, and this is just one result, an
example of one result. So it says 11 best track suits. The article
description, which is the long description in
this content element here, the URL, which is the URL to the article and
the research date, which is pulled
out and put here. So now we've got all
of the information in a form that can go directly
into our spreadsheet. So let's execute that
step and make sure it actually does go into the
right sheet that you go. So according to the output, it's appended that
row into our sheet. Now, the only way to see is to go to our sheet and have a look, and there you go as if by magic. There are the rows
there, nine rows put into our sheet simply
by our automation.
8. How to automate Images into Google Sheets: Let's go back and have a look at our automation. So there you go. We're going from
the HTTP request, extracting the results and
appending it as a row into our research document in a sheet called
tracksuit Articles. The next thing we want
to do is pull out the tracksuit images and make sure they go into
the relevant rows in this tab in this sheet. So let's go back and do
that. Essentially what we want is the exact same thing. We want it to come
from the HTTP request, and we want it to get appended
in the exact same way, but this time, we want it appended into a different sheet. So the bit that we can
easily do ourselves is to take this, duplicate it. And in here you'll see the
sheet tracksu articles. We want it to go into
the sheet tracks images. And we don't want
the same columns, so we're going to
remove all columns. And this time we can
say map automatically. And so what we want to do is we want something
exactly like this, but for our image array
instead of the results array. And that's because
basically what we want to do is we want to get the information from here, instead of into this
array into this sheet, we want to get the results of the images in a different array and put them into this sheet. So, again, we can do
that without writing any code by writing
something very similar. So I've updated it, put in a
new question to AI saying, If there are multiple images, how do I write each
image to a row in the same document in a different sheet called
the tracksuit Images sheet? Let's run that and
see what happens. There you go, the
AI is finished. Let's see what it said this
time. So there's my question. Underneath, it
went through steps as usual, adding the code, et cetera, updating
no parameters, and validating. What's changed? It says, added extra
images array code node that processes the images
array from the API, connected it to the
tracksuit images sheet. Each image URL is now written as a separate row with search
query and research date. The workflow now splits
into two parallel paths, one for articles,
one for images. The workflow now handles both results and images
from the Tavl API, writing each of their
respective sheets in the same Google
Sheets document. Let me know if you'd
like to adjust anything. And it's ready to be executed. So, as usual, before we execute, let's have a look
at what it did. So as you can see here now, we've got another
parallel level. We've still got
the results array appending to row in this sheet, but now we've got the images array appending to in
a different sheet. So let's double
click to open that. So this is doing pretty
much the same thing. It's grabbing the data. It's grabbing the images
out of that data, which is this, and it's cycling through and grabbing each
one of these images. And every time it grabs one, what it's doing is it's adding just the information we
need to various variables. So the search query, the image URL, and
the research date, which is exactly what's in our sheet, in our Google Sheets. So it's just picking
out what we need here. And if I execute this step, we can see it's added
the rows here, so one, two, three, four, five
rows for the one, two, three, four, five images. And it's got what the query is, which is the same
query every time and the results that came
back from that query, which is the different images. So this is exactly what we
want. So let's close that. That was all done for us via
AI. No coding necessary. Those five items now
have gone through have come through to this node. And so this is the part
that we didn't do before. It's changed this to map
each column manually. So that's the first thing, and it's added each of the columns that we need in the Google
sheet, the search query, which it's picked from here and put that in the image link, which
it's picked from here, image URL, and put that in and the research date which it's picked from here and
put it into there. And now when we run this step, it will take this
information for every single row and put that in our Google Doc.
And there you go. Here's the information
that will be in our Google Doc, and
let's go and check. And there you go as
if by magic, again, we have the research day on the right hand side to help researchers to know
how relevant it is. But more importantly, for
this particular query, we have five images
that we can click on track suits. So
that's excellent. So now, we've got both tabs.
We've got information. Our researchers can
use this information to do any follow up or our
product owner can just go through and check
which ones seem to match our brand or that
we're interested in using for further
development. And it was all done
automatically without any code, and it's in a format
that is sharable and continuously can be
updated from automation. So now it's your turn. What I want you to do is pick a
challenge in your career, your business or one
of your projects, something that's repetitive that you want to solve and create a workflow inspired by what you've seen in
this lesson as usual. So examples for
your inspiration. If you're a product manager, then you could use
a workflow to store competitor research or
feature comparisons in Google Sheets,
the way I've shown. Marketing manager, you could
collect campaign ideas, add examples or brand
inspiration and store those. An operations manager
could track suppliers, materials or logistics research. A sales manager could log competitor pricing
offers and positioning. A founder or a manager
could validate product ideas and track
market signals over time. Start really simple and
use one trigger at a time, so it may be just API call, or maybe you trigger
it yourself, one API and one
destination, as I've done. And once you've
done that, you're officially thinking like
an automation builder, someone who can automate
anything in their company, and that's exactly
where you want to be. So hope you enjoyed that lesson,
see you in the next one.
9. How to automate Design Prompts with the Product Design Concept Agent: This lesson, we're moving from product research into
design execution. We already have research images for top track suits in the USA. Now we want to turn these
research images into branded design concepts that strictly follow our
brand guidelines. To do that, we'll use a
product design concept agent. That's right. Now it's
the world of AI agents. This is an AI agent whose
sole job is to generate precise images from a prompt based on the style
rules that it gets. And this agent doesn't
generate images all by itself. I reasons just enough to generate the correct
instruction that will later be used to edit the image and create
our design concept. Let's talk about the workflow. The workflow is the product
design concept agent. Why do we use it? We're using it to
convert research images into branded design concepts, and we want to do
that consistently. And common uses for the particular roles
that you may be in. Product managers can use
it to validate ideas, marketing teams to
generate visuals, founders may use it to explore different directions
to go with products, and operations may use it for
preparing for sourcing of products to make
sure that they look correct for whatever
they may be sourcing. Here we are at our passion sports product
research spreadsheet. And if we zoom in
a little bit here, you can see that
we've got the query. So this is what we ran
to do the research. What are the top most popular
track suits in the USA? We've got a link to an image, which is what we got
back from the research. I've put in a few of my own
that came from other places. But we've added these
columns to say, Is it passion
sports branded yet? Because some of these images, for example, this one, are the CEO's concept, and it's already got
the branding applied. So let's have a
look at this one. This is already looking pretty sleek and it's already got
black and gold colors, and this is what the CEO wanted or the person who came
up with the idea wanted. So it's already done
with the brand. I think the only thing
it's missing is the logo. But in terms of being on
brand, it's doing that, and not everything
has to have a logo, depending on the case. So if we go back and look
at some of the others, this is a piece of research that we conducted from a query, let's see what that
came back with. So that came back with
these track suits. And what this told us
as a company is that these track suits are what's currently one of
the best sellers. However, we want
to see a concept of this sort of thing
using our brand. So that's where
we're going with it. If we go back and look at these, we've got many different images. This tells us how we're
using the spreadsheet. The only other thing
is the research date. That's the date that we
actually found the information. And you can see some
of these images say, no, they're not branded. Most of them are not branded because we just
found them online. We found them via
research, via an API, and we want to generate
concepts from them, but they don't have
any brand yet. It's hard to imagine
what they'll look like in our brand
until we've done that. And some of them say
branded yes because we've already applied the brand or they're already part
of our company, but we still include them
as product research. And now let's go over to
our brand guidelines. For the purpose
of this exercise, I've kept the brand
guidelines very simple. And as you can see here, we've got this
spreadsheet called passion Sports Product
brand guidelines. Simply says the men's style
and the ladies style, two columns kept it very simple. We can split these out, but for the purpose of this,
we've kept it simple. The men's style says, for
example, black and gold, replace any logos with
the passion sports logo, make it slim fit,
and do nothing else. That's what we want to apply to the images
that we've seen. The ladies style is
exactly the same, but it just shows black and pink instead of black and gold. We want to get to is we want to get to the point that we go from an image like this
to an image like this, as you can see, black and
gold now says passion sports. And we generated this from this. Let's go off over to our workflow and see
how we can do that. As you can see, this
is very helpful now for the CEO or anyone in the company to be able to imagine our version of
this kind of tracksuit, and that's what
we're looking to do. Let's go back to our workflow
and see how we can do that. This is the workflow.
What we're going to do is for now, it's
manually triggered. We could get schedule this
to make it happen every day or make it happen when there's something new in
the research document. But what it will do is it will read the research document. If the image needs
to be branded, then it will go off to our
agent, which will do the work. Now, in our agent,
our agent consists of a brain which is the
chat model, ChatGPT. And that's what it's
going to use to reason, to think and to work out
what it should do next to make sure that it can
use just natural language, the instructions we give it in the agent to generate a prompt. Memory, usually would
have some memory. Depending on what we're doing, sometimes we need to attach some memory can remember for every run, and it
can also learn. It's the concept of
machine learning, but in this case, it's
pretty straightforward. We've not attached any memory. Tool. A tool is usually what it uses to determine what it
should or shouldn't do. For example, in this case,
it's using brand guidelines. It's reading those to work
out what it should do next. And inside is a prompt and
we'll go through that further. And then once it's done that, it will make an HTTP
request to get the image, the correct image
from the spreadsheet. There's a little bit of
code you may not need, but I need it
because I've stored some of my files on Dropbox and the mime type changes on
Dropbox for various reasons. More importantly, we'll
go from this HTTP request via the code to this
edit image node. And what that will
do is again use ChatGPT specifically to edit our design concepts and create a branded design concept that matches the
brand guidelines. And in the end, we'll upload to our design concept
folder in Dropbox. We could have used Google
Drive or anything. I just find Dropbox a
lot easier to set up, but you can use that, too. Let's go through the steps of
exactly how we set this up. So the first thing
we do as usual, we go to create Workflow. I'm going to name it
product design concept. And this is our Agent.
Working left to right, the first thing
we're going to do is grab our Google Sheet. And what we want
to do is we want to get a row from the sheet. And we're already connected
to our Google Sheets account. We're going to find
the sheet within the documents. That's correct. In our list of documents, we're going to find
Passion sports research. And the tab we want
in track suit images. We're not going to articles. We're going to pull
from the images, and that's all we
need to do there. Let's make sure that runs. That runs fine.
Information's come out. Let's move that a little bit to the side so we can
see what we're doing. Once we've got that, we can
then trigger our agent, which is going to make
decisions about what to do. So if we click here,
and we want AI Agent. But AI agent here a few things. We source for a prompt
a user message, and we also have down here
the ability to add options. Now, a user message is usually necessary when the
input is going to change, so the message that
we put in here is going to change over
time, depending on the case. For example, sometimes
we may tell it to search for track
suits in the image. Sometimes you might
ask it to search for T shirts in the image
or things like that. And we can change
that dynamically using not actually going to change anything, so
we don't need this. So we're going to set
it to define below, and we're going to change this because it always requires something. I won't
say it to fix. I'll set it to
expression, and then we'll just put it as empty. But what we do need is we need a prompt that
is consistent, a message to the LLM to chat
GPT that is consistent. And what we'll do is we'll add what's called a system message. A system message is used
whenever we just want consistently the same prompt to be used over and over again. So in this AI agent
is where we're going to put together really
for exactly what to do. And for now, I'll leave it,
and I'll come back to that. I'm going to add what it needs to do its job first and
then we'll come back and we'll write the prompt
and system message. I'm going to click Save. Now, as I said before,
you've got the brain, which is the chat Model,
the memory in the tool. So I'm going to add
in the chat model, and we're going to use
ChatGPT, so that's open AI. Click on Chat Model.
We're going to use four, and we're going to use 4.1 mini. The reason is because I've tested that and I know it works. If it ain't broke,
don't try and fix it. That's exactly what
we've got here. And we're going to
leave everything else the same and exit that. Now, this is the brains
of the operation, the LLM or essentially, it's what's behind ChatGPT. You could imagine this
as being the interface that you'd usually type
into going into ChatGPT, but this is the GPT model
part behind the scenes. Memory, we don't need because we're not going
to be remembering anything in between runs. Now, in terms of tool, what we're going to do is we're
actually going to get our brand guidelines
and use that as a tool to decide how to proceed, how to create our
design concept. Again, we want to Google Sheet. Now, because it's a
tool, it asks us, do we want to set automatically or do we want to set manually the
description of what it does. I like to pick set manually, and then it gives us
a nice description of exactly what we
want to do specific, which is to get rows in the sheet in Google Sheets, and that's exactly what we want. The resource is a sheet
within the document, again, and we're getting
rows again from a list. This time we're going to
pick the brand guidelines. That's what we want.
And within there, there are various sheets. We're going to pick
tracksuit guidelines. And that's all we need. Now we've got an agent
which is going to use a GPT model to be the
brains of the operation. And as a tool, it's going to get the brand
guidelines from here. These two, we've
checked that they work, and this works when
it's run by the agent. Let's make sure we
can get our row back. We can right click and
click X Acute step. And we can see that
that successfully gets the row if we go inside. We can see that information's combat men's style,
ladies style. Excellent. Now we can
go back to our agent. The key thing in
the system message is to work out what
we want it to do. And essentially, this is
the power of the agent. This is a natural
language prompt that we can paste in that is going to tell it
exactly what we want it to do with the brain
and with the tools. I'll get the prompt
that I created earlier and then go through exactly what
we're going to do. Now we have our system message. We can actually open
this up. Zoom in. And what we've got
here is a message that tells the agent exactly what kind of agent it is and what it
should be doing. You are generating
a single prom used to edit a product
design concept image. The input is the brand
guidelines data, which is provided via the
connected Google Sheet tool. Instructions, select
the correct text from the brand guidelines using
the men style column. Output exactly one
sentence in plain text. And this is the plain text. Locate the track
suits in the image, change the colors of the track
suits to exact style text. Now, whenever you get something
in these angled brackets, the agent is very good at knowing that
it's a placeholder. It's going to put
the exact style text that it found from brand
guidelines in here. We'll actually say, Locate
the track suits in the image, change the colors
of the track suits, to black and gold, replace any logos with
a passion sports logo, make it slim fit,
do nothing else. I actually could have taken
the do nothing else out of here and put it in the agent,
but it just remained in. Now this will say locate the
track sits in the image, change the colors of the
track suit to black and gold, change the logo and all the
things that it found in the brand guidelines.
Then step through. Do not add explanations, formatting Jason or
additional text. And we add that because these are things that
commonly happen with agents you tell it if you
don't tell it otherwise. For example, if you're
going into ChatGPT, you'll probably find that if you send a message asking
it to do something, sometimes it includes
other stuff, agents are using GPT
in the background, but they have the
same side effect. This is really a guardrail
to guide against that. If the required Style
text is missing, output an empty string. This is really exception
handling just to make sure that there may be a case where the style
text is missing. And there's a lot
more we could put, but has been tested. This format has been
tested and what? Just going to keep it
simple. What this is going to do is it's going to take this input with an image link. This will run for every row
of the previous spreadsheet, and then it's going to run these instructions to
generate a prompt, and that prompt will
be the instructions to change aspects of that
image like the color, the logo, et cetera. Cool. That's that. Now, what we can do is we can execute this step and check
what prompt comes out. In fact, why don't
we come out of this so we can see the
flow up until the agent? Then we'll just right
click and execute the step. There you go. You see it's running, it's
talking to the GPT model. It's running to get the
rows that it needs. Now it knows what to do, and
it's talking to the agent. And it continues until it gets all the
information it needs. I will go back and forth
with the chat model to work out what's
the best thing to do, get the rows it needs,
and there you go. Seems to have worked. Let's
see what it's come up with. If I now look at the JSON, you can see that we've
got one, two, three, four, five, six, seven,
eight pieces of output. Locate the track
suits in the image, change the colors of the track
suits to black and gold, replace any logos with
the passion sports logo, make it slim fit,
and do nothing else. And they all say pretty much the same the reason is
because in this case, at this stage of the agent, all it's doing is
generating a single prompt, but it's using the
brand guidelines. And as the brand
guidelines are the same, and I've said in here that it's using
the men style column, then it's really creating
the same output. It's saying to locate the
track suits in the image and then change the colors of the
track suits as said here, as well as the logo, which
is in the brand guidelines. And as we've said, it hasn't
added anything to that. This is working really well
and it's generated the prompt
10. How to automate Images and Concepts with the Product Design Concept Agent: Now we know that's working. The next step really is to grab the images so we can go
in and edit them for that. We're gonna do an HTTP request, and in that HTTP request, we're going to actually
go back and grab the URL from what was
passed in from the sheet, and that's going to
be the image link. That's what we're going to grab. We don't need any
authentication, but what we do need is we
need to set it that it actually generates an
image file from this link. And the way we do that is
by adding an option here. And the option is we need a response the format is a file and the
output field is data. What it's doing is it's going
to take this image link, which is going to be the
URL that it's going to get. It's going to apply
the method get, and then it's going
to create a file, and that files going
to have the name data. Let's go on to the next step. In fact, let's
execute this step, make sure that works.
And there you go. What that's done is it's
now got that image link and generated these bits of
data, there's one of them. The next thing we need
to do, which doesn't necessarily need to be done in all cases,
but in this case, it does, is because I've got
some files from Dropbox, sometimes they lose
their mime type, which is basically
the file extensions. You've got PNG files. It's
the file type, really. If you've got PNG files, JPEG files, different
sorts of images, when you upload a Dropbox, it loses that extension
because of the way Dropbox generates the link
and generates the file. What I'm going to do is
use code to set that. We're going to
choose there you go, add the code element. We're going to pick
JavaScript, nice and easy. And in here, all
we need to do is replace this with the code
that I created earlier. This essentially we'll
pull an item out. This dollar input just
grabs the next item, and it's going to pull an item out one at a time from here. And for each item, it's
going to pull out it's going to set the binary
data type to images PNG, and it's going to set the
file name to image dot png. That way, essentially,
it's a way of saying that the file is a PNG. Let's execute that.
There you go. So for each binary, we can here. And it's not viewable
at this time, but it's a normal thing that sometimes these images aren't
viewable in this form. So at the moment, it's saying
run once for all items. And that means that at one time, it's going to do that for all
of the items in the list, set that to run
once for each item, gives us a little
bit more control over every time it runs. And I'm going to execute that
step now. And there you go. So now you can see it's done
it for all of the items, and it's still not viewable. But it has run for each of the items. And that's
nothing to worry about. We'll see that that will
work. You can actually download it and just check. It has downloaded the
correct item, and it has. So now that we've done this, we can be sure that it's correctly set the file
and the mime type to PNG. That's fine. So the next thing to do is to actually
edit the image. So surprise, surprise,
we're going to grab an edit image node, and that's created by OpenAI. So if you click on
Open AI and then look for Edit image,
there you go. Now, at this point, you'll
need an open AI account. The way to do that is, as usual, to go here into the credentials. You'll probably for
most of the nodes, it will default to this
NAN free open AI credits. And that may work for
ChatGPT in some cases, it may or may not work, but usually, that
works for ChatGPT. But for things like editing, because it uses their
API and they actually want you to pay a
small amount for that, it may force you to
create an account. If it does say that, then
you'll need probably about $5, something like that, very small. And as usual, just
create new credential. You'll need to grab
your API key and just put it in here and
click Save and Close. If you're not sure how to do it, the way it works
is you go off too. You can go to ChatGPT
and you can say, how do I run the Edit image node from NN
using an open AI account. Have a think about it, and it should give you all of the steps you need in order to do that. Additionally, if you
ever want to set up an open AI account
to use their API, just tell Track GPT, and it will give you
the steps to do. I've said, How do I set
up an open AI account? I need to use the API
for an Edit image node. And then it will guide
you through the steps. You basically need to
create an account, go to this link, sign up, and it takes just a little while to like five to 15 minutes. But once it's ID you, and yes, it doesn't need to
ID you, it will set you up. But basically, you
need to add billing. I put in $5 at this time. Hopefully, the price
will stay the same. Create an API key, which is just a long number. You'll copy that, and you'll add that to NAN,
you'll come back. And you'll add that to NAN
in here and click Save. And then you'll be able to
use the Edit image node. Just bear in mind, it does take sometimes five to 15 minutes
because they need you. Not sure why they need you, but open AI have decided
they want to ID you, make sure you are
who you say you are before you use the API. Just follow the
instructions. ChatGPT is your best bet if
you're in doubt. So you've set up your open
AI account and chosen that, then the resource is image. You need to edit image,
leave that at GPT Image one. And this is the prompt.
This is going to tell Edit image exactly
what it needs to do. And this is generated
by the agent. What you want to do,
go back to schema, you'll see that the
output has come through, and what you're going to do is you're going to
pull that output. You can pull that output
direct from the AI agent. Put that in there and you can see that the prompt is there, locate the track
suits in the image, change the colors of the track
suits to black and gold, and replace any logos with passion sports
logo, et cetera. It's generating a image
based on using data. That's the binary
that came through. Data is the name of that binary. We're going to leave
that the same. I left all of this the same. I'll generate one image
per image that comes in. I've left this one
oh 24 by one oh 24. You can definitely play around with these once you've
got it working. And I left the quality as auto, and I left the
output format as PNG because that's what it is.
Execute this step now. This bit may take a while. It's actually going
to the cloud. It's going to send each
one of these images, and then it's going to generate a new image based
on this prompt. Okay, the edit image
node has ended, and it said, Invalid image
file or mode for image one. Please check your image file if you believe this is error. Something has gone awry with the image editing.
Let's see what it is. Open AI simply just reported invalid image file
or mode for image one. Please check your image file. If you believe this is an error. Contact us at help.open.com, include the request ID. I'm not sure what it could be. I'm going to investigate
and go from there. The first thing to do whenever this happens to look back at the images that
are coming across and see what the issue could be. Okay, I've solved the problem,
and we are now good to go. What had happened is that
in our Google Sheet file, I'd put the wrong URL
in and therefore, we got a problem because
the URL wasn't correct and wasn't able to grab the
image, one of the images. I tested it with one, and that's gone all
the way through, and we can see that's
coming through. Now, the exciting thing
here is, as you can see, that's completely in
black and gold now. If we zoom in a little
bit, that's really nice. We can see a visualization
of our design concept now. What we want to do
now is we want to upload that to Dropbox, and we're going to
continue with our workflow now and add the Dropbox element. For that, of course, we click our plus
sign, find Dropbox. And what we want to do is
you want to upload a file. I've already got my
Dropbox account set up, set yourself up one
of those or you could just drop the
file somewhere else. But for the purpose of
this demonstration, get a Dropbox account. Source is file as usual, and then we're just going to put in the path to our folder, and I'll grab that from Dropbox. Just put that in here. I've
taken out the percent 20, which represent a space. And then for the file name, I'm actually going to
create the file name out of a few variables. So the way I do that usually
is I go back to the schema, look down the bottom
for this variables and context element, and we've got various things. I usually like to use the now, which is the date
or the time stamp. Because it's unique, changes
every time I do a run, and that way, I can see
where there's a new file. We'll go back to Schema, click variables and Context, and I'm going to name it with
now the current timestamp, get rid of any spaces. And then I put the file extension and
a.in between, of course. The name of the
file is going to be the timestamp dot PNG,
which is excellent. And then click this
binary file switch, and the field should be data. It's just going to grab
the data out of here. It's going to grab the object out of here, which
is called data. That's the input binary field, as it says here, containing
the file to be uploaded. Once that's done, essentially, that will grab the
file that we got from our Edit image node and upload it to Dropbox
in the right place. If we execute that step, that's just uploaded, and
we can see the output here. It says that the file path, if we zoom in a little bit, is going to be this, which
is 2025, 12, 1915 37. If we go back, there
it is right there. If we click on that,
that's the image. That has transferred
right the way along to Dropbox.
That's excellent. That proves our workflow
works as expected. If we zoom back out, this is our entire workflow with the AI UD agent
working end to end. If I save that, I'm
actually going to call it product design
concept creator, which is an agent, and that's
actually going to give it a better name because it's
not the concept itself, it's the creator of the concept. And therefore, you can see
this as a member of your team that actually takes
a research idea, prize some brand guidelines
using a prompter agent. And then converts it
into a real file, edits it, and uploads
it wherever you want. And that's working
end to end now. There you have it.
Now it's your turn. What I want you to do is
think about where you've got a single one or more rules based decisions in
your organization where you don't necessarily want it to just be
rules all the time, where you could have an agent
or if you think of it as a teammate actually do the work for you time and time again, and that would remove
some friction from your process and
have it automated. Examples for a product manager, you could standardize
the visual creation of concepts the way we
have concept images. From marketing
manager, you could use it to have campaign
visual consistency by applying certain
campaign concepts to every single
marketing campaign. If you're a founder,
you could create concepts very quickly for anything, wherever
you're developing. An operations manager could
create visuals for suppliers, briefs automatically
that could be sent to suppliers based
on any product. And a creative team could generate image edits
not just for concepts, but for the real images
every single time, the exact same way using brand guidelines or whichever
guidelines you want. Start small, start
with one rule, start with one agent, and that will give you one
output that you can rely on. And hopefully you
can now see how gentic systems are really
powerful and a powerful, reliable, flexible way to do anything you want
and automate it fast.
11. Branded Product Images generated by the Product Design Concept Agent: So to really understand
the power of the product design
concept agent, we need to see what's happened in terms of
taking our research images and creating our product design
concepts with our brand. So this is our spreadsheet
with the research items. And what I've done
is I've opened up all the research items
which had branded no, and we're going to see how
our product concept creator has branded them. We've essentially gone from this to this. Here's one image. As you can see, this
was the original image. Now you can see these.
They've got the logo. Now, there's something
to do with spelling. When you're using
anything to do with LLMs, they haven't perfected keeping the text the same at the moment, or they may have their reasons for changing it to
do with copyright, and they think we are using
someone else's brand. But this is our brand. It's
not spelled passion the same, but as you can see,
nice quality there. It's change it to
black and gold, just like our brand guidelines, Logo. Looks really good. On the left, you can
see how it was before, after call me biased, but I know which one I prefer.
So that's the first one. Next, we've got this, which
is the top and bottom. Let's see how ours ended up. So there you go side. Again, it's applied to branding. This time, it's got
the spelling correct. It's got a nice logo there
instead of this logo, and it's kept and maintained the background pretty much
a little bit smoother. Again, because we
didn't explicitly set the size of the image, it's cropped it a little bit, but these things are
easily remedied. Next one, one of my favorites. So this was the before and after our
branding, this is the after. So it's changed everything
to black and gold. It has replaced the logo. Well, it's replaced one logo, but unfortunately it's
left the Nightti. I have run it before and
it's managed to replace it. So if we go back,
have a look through. Yeah, we can see here it's
replaced this before with a P and replace the Nike tick with passion and
then this shape, which actually does
look pretty cool. It's even improved the
way the model looks, which is added bonus. Next is this advert best
football track suits in 2025, style Comfort and performance with a guy kicking a football. So we went from this research image to design concept, again,
it's fit slightly, but the important
thing is in here, again, spelling not
correct, but you can see, it's changed it to
black and gold, pretty similar close fitting. It's even changed the colors
of his trainers to match, so we can zoom in a
little bit there. Again, it's even change things
to do this look and feel, but everything's
nicely coordinated. And once we sort out the sizing here, this looks really good, and this looks like the
kind of thing you could advertise and
attract people with. So a nice design concept
there for our track suit. Next, we've got the ladies. So this was using men's
colors on the ladies' images. So when I say men's colors, it's the colors
that were specified specifically for men, and
we'll see how that looks. So before research image, after this is our
design concept. I think this looks really good. She looks really good in
the black and gold there. Again, it's even changed
the shoes to match. It's changed every single
element to be black and gold. So except for some reason, this top, I'm not
sure why, maybe because it was
slightly off screen, but you can see that this
image now has a logo, and it's in black and gold. You can see that this one
now it's replaced the logo. Everything's in black, but it's kept gold just for the logo. And these are details
that we could change in our brand style guidelines
or in our prompt. You can see that also, one thing to note is the fit. So if you look here,
we did say sleek, and so this is much
sleeker of a fit, and it slightly changed her look as well to go with
it, which is interesting. And then the last
one is this one over here on the left,
slightly off screen. We need to change the
size of the image, but it's completely
replaced the logo, made it black and gold, and that just looks
really smart. I think I might even buy one. And for this image, that's it. So I must say I'm really
happy with what it's done. I think it's done a great job with really minimal
effort of taking some research images
and then transforming them into some product
design concepts with our own brand, our own logo, and
the colors that we've said and how versatile our AI agent can be once we make a few changes to
give it even more detail.
12. The Project Planning Agent - Introduction: Lesson, we're going
to automate creating a high level project
plan that's ready to be used in a world
recognized tool like Jira for planning projects. So what we're going
to do is we're going to use a spreadsheet containing details of the upcoming projects
and project ideas, and then we'll
turn each row into a professional Jira ready
product plan using an AI agent. So this is where AI agents
really shine by making decisions based on
real world knowledge the same way a project
manager would. So let's talk about
our workflow. The workflow is the project planning manager agent workflow. And why we use it, we use it
to turn project ideas into Jira ready plans using the
right delivery approach. Common uses for
different roles are turning ideas into
epics or phases, choosing the right project
management methodology like agile or waterfall, saving time upfront on planning and reducing
planning mistakes. Let's go through the scenario. So the scenario is that what we want to do is
we want to end up with the correct project plan based on the kind of
project ideas that we have. So if we first of all, start
off with this spreadsheet, which is passion
sports project plans, there are two different
types of plans here. So you can see everything's
got a project title, a project type, a project goal, the key features of the project, the delivery constraints, so the things that we
absolutely must do, and then quality
performance targets. So for example, Passion
Sports AI Track suit 2026. That's the name of the project. The type of project
it's for clothing. So it's a clothing project. So we need to create
some clothes. And the idea is for
the product goal, what we want to do is create
a sleek men's track suit for the UK market with
Passion sports branding. The delivery constraints,
it must be sourced from China with the
best possible price, and it must launch ASAP
and must be high quality. So as you can see, it's
quite loose language there. It's the kind of thing
that if you understand what high quality means,
you'll know what to do. But other than that, you really need to kind
of do some research. You'll know what
you're talking about. Quality and performance target. It must have a premium feel, durable stitching and
consistent sizing. Again, the language is quite loose requires some product
knowledge to get this right. And then the next project is called Passion Is
Also Passion Sports, and it's the Premier
League website. Project types a website, and the goal is to build a
top tier UK football website covering the Premier League. The key features is all football fan expected components
such as fixtures, results, league
tables, match reports, images and video highlights should be within this website. And the delivery constraints,
it should be cloud based. It must launch before the
first day of the FA Cup. It must have FACAP media and be scalable for
match day traffic. So that's pretty much the
biggest tournament in the UK. And so there's going to
be a lot of traffic. And again, this needs real
world knowledge to know about what kind of traffic
it would get to know what the FACUP is,
that kind of stuff. You couldn't just use some rules to work out how to do this. Quality and performance targets, the page load must be less
than equal to 2.5 seconds, and it must be the best
in class user experience. Again, project knowledge needed. So we want to go
from this to a list essentially of high
level things to do, a project plan, and all
just from this text, which is all natural
language text. What we want is stuff
that looks like this. So this is kind of a timeline, but it's in the similar
format to a Gan chart, essentially a list of
high level phases, and then dates or a timeline that indicates
how long it would take. So you can see that
there, quite familiar. However, this is for one style of project,
which I'll come to, and then the other
style is literally a list of what we call epics. So these are large
features, large stories. And so these appear in a
completely different format. So the question is,
how do we decide which format and what is
guiding us on which format? So this brings us to different
project management styles. So there are two key, well known project
management styles. The first is agile, and that's known as an
adaptive style. And it makes sense when
the project, for example, for digital projects, when
requirements might change, when you want to learn
and improve as you go. And a relatable
example is building a new ecommerce feature
or a new website, even or an internal tool where you want
feedback consistently, or you want to take on
board the feedback in iterational way and then change and update your product
based on that feedback. And that could be
from the environment, it could be things to
do with the market, or it could be
feedback from users. And then agile plans
typically become epics, as I showed you, and then epics are large
features, large stories. Create a list of those, and they form what's called
a product backlog, and you iterate your
delivery cycles. So every often, usually a
period of one to four weeks, you replan and build again. And so in that situation, you would have
something that looks like this, literally a list. It has estimates here along the side what's called story
points, fibonnaci numbers. And that's the stale for this
kind of project management. Then the other style
of project management is waterfall or predictive. And waterfall works best when the project involves physical, for example, physical
products, not always, but usually stuff like physical products
or manufacturing. And it's when work
must happen in a specific order and the scope, so the amount of
work you're doing, the things specified as work are mostly fixed
from the start. They always take pretty
much the same amount of time unless you get
a major roadblock. The what you're doing is in terms of the features
are fixed from the start, and usually the timescales
are the same every time. So a relatable example is
producing a new clothing line, setting up logistics
or rolling out infrastructure where the
dependencies matter, but usually they take
roughly the same time if you don't get any roadblocks. So waterfall plans often lead to really clear phases,
fixed timelines, unless something
changes, and you end up with something
like a Gant chart, which is those timelines
that I've showed you. So it looks something like this. Here are the phases and
here are the timelines that relate to each one of these phases pretty
straightforward. Depending on the
type of project, a decision needs
to be made as to whether it's going
to be an agile project or a waterfall project, and that means that the
phases or the epics that get generated will
follow a different structure. Some will have story points
and be phrased like this, or it could look like this, and it could have
a different style, such as requirements analysis
and design specification. Then in there, there's
a description. Define detailed product
specifications, including Valour
fabric selection, slim fit, UK, men sizing. So it just gives a description of what it is at this point. Whereas in the agile world, this here forms a summary, and then in the
description, you have what's called
acceptance criteria. The user should be able to view the latest fixtures by date. The user should be able to see real time match results and scores and then some edge cases to deal with if things go wrong. So there are two
different styles of project management based on
the style that you choose. And this is what we want
the AI agent to pick. Now, going back to
the AI Agent itself, this is the project
planning manager agent, and this is where all
the fun takes place. So what we do is,
first of all, here, the first thing is we're
using a manual trigger, which we could change
to be scheduled and run every day or every
week or every so often. But at the moment, it's
manual when we click Execute. What it's going to
do is get rows of our project planning sheet with the details of all projects
that need to be planned. High level in natural language, like I showed you,
and that's going to get sent to our project
planning agent. And the agent is going to use a large language
model as the brain, like ChatGPT, in this case, it is ChatGPT or I should say
GPT without the front end. So it's not ChatGPT, but
it's the same back end. And it's going to work out based on what it's read
from the spreadsheet, what kind of project
it should run. Should it be an agile project because it's more
adaptive or should it be a waterfall
project because it's quite fixed time scales
or fixed phases. Based on that based on that, it's going to create a list of epics or phases depending
on which style. Then this code essentially
splits them out into a list of epics and the methodology, whether it's going to
be waterfall or agile. And the reason is
because we're going to do different things depending
on which one it is. So this if statement
we'll decide, is it going to be
waterfall or agile? If it's waterfall, we'll
go down this path. If it's agile, we'll
go down this path. And essentially, depending
which path we pick, we're going to end
up with epics. We'll use epics, even though the language of epic is
more agile language, but it's a good way to end up with the issues that we need. The phases or the epics that we need in the format
that Jira can use. Now, if it's a
waterfall style phase, then we're going
to set the start date and the end date for it. And if it's an epic,
then we're just going to set the story point estimate, and we're going to leave
it at that, really. All of them will have a
description and a summary, and the AI agent will
decide what to put in a description of a
summary of each phase. So in the end, we'll end up with either
something that looks like this or something that
looks more like this. So that's what the AI agent needs to do, and
that's our workflow. We don't need memory
because there's nothing to memorize in between. And there's no particular
tool in this case, because all we need
is a spreadsheet, and all of the fun
stuff goes on in here. So let's get on and create
13. How to automate Project Plans with the Project Planning Agent: So as usual, we'll start
by creating our workflow. Click the Workflow button. And I'm going to
immediately name it as the project
planning manager Agent. So the first thing we're
going to want to do is to read our spreadsheet, so
I'm going to click here. Go to sheet, and the
action is Get Rose. I've already got
my Google account. It sheets within the documents, and we're going to
get the rose, and we're going to
choose from a list. We'll go to passion
Sports Project Plans. And the sheet that we
want to pick from is called a Project detail
sheet, and that's that. And that's where straightaway. We can see it's picked
out two rows for the passion sports AI Track suit and the Passion Sports
Premier League website, two different
projects. Here we go. It's added a manual
trigger there because it automatically does that
it needs to start somehow. The next thing we're
going to do is we're going to add the AI agent. It's the agent add
that and in here, we're going to pick defined
below because we're not changing what it does based on any input, so defined below. And we're going to leave this as an expression empty
expression. So it's empty. And that allows us to go down and create a
system message. System message will run every time. And we'll
leave that for now. We'll come back and
paste in our prongs. But before we do, let's have
a look at what we've got. So the thing that's missing is the brains of the operation, which is the Open AI GPT.
And that's the chat model. And GPT 4.1 mini is absolutely
fine, so we'll leave that. I'm used to it. I've tested
it, so let's go with that. So now we've got the brains
of the operation set up, our prompt, and we'll
do other things downstream from that afterwards. So there is a prompt that I created earlier, so I'm
going to paste that in. So if we expand
this a little bit, in our systems message, I've used a format that
works really well. It's called the goal, the role, the context, the actions to take, which is everything
under the context, the format, and then any
rules or dos and don'ts. Broken down a little bit more than that, but it
resolves to that. And this is a well
known pattern, prompt pattern for
making sure you get the right output from
the LLM ChatGPT. So I'm going to
whiz through this, but I'm going to give you an
overview of what's in there. So the goal is to
analyze project details, choose the appropriate
delivery methodology as in Agila waterfall, and generate a Jira
ready project plan. The role is you are a
project planning agent that applies professional
project management judgment. The context, project details are retrieved via a
connected Google Sheets. That's what we
attached at the front, and then the sheet
provides a number of rows. Each row contains the
project title, project type, product goal, key
features and scope, delivery constraints,
quality performance targets. And these are the parameters
we're actually going to get from the input here. I already had them in because I pasted this from
another project, so it should be named the same, but we're
going to check that. And if not, then
we'll drag them in. This needs to be an expression. And if I open that up again, you can see that
they're all green, which means that they've
kept the same names. So the decision rules, agile choose agile or adaptive
when the project is digital, requires requirements
may involve iterative delivery and
optimizations valuable. Is waterfall or predictive
when the project involves physical production
or manufacturing. Work is sequential with
strong dependencies. Scope is largely fixed upfront. And then there's some
tiebreakers in case it's hard to decide if uncertainty and
iteration dominate agile, if sourcing, sequencing or logistics dominate,
then waterfall. Then the actions are read the project details provided
by the Google Sheets, determine whether
agile or waterfall is the most appropriate
methodology, generate a list of
high level work items suitable for Jira epics. And then the description rules. So this is where I
go in detail about what to put in the description
of each of the work items. So if it's agile, then
description should contain acceptance criteria
and edge cases with bold Apple case headings, and I go into some detail
about what that should look. Waterfall the description
should contain industry standard description
as a PMP project manager. That's a project
management professional. So I'm just telling it to use industry standards,
estimation rules. For agile, I've told it
to generate epics with a summary written in
the format as a role, I want requirement,
so that reason, and this is industry
standard stuff. And estimate the epic using
Fibonacci story points. So that's a well known
way to estimate in agile. If it's Waterfall, treat each epic as a phase for each phase, provide the duration,
the start date, which must start after now. I've dragged that in from here. So now meaning the current
date or the current time. So if it has a
start date, it must be after today, I
can't be in the past. And I know this because
when I've done this before, it keeps creating issues or tasks that started in the past. So that's why
I've put that there. And it must have an end
date, and the dates must be sequential and realistic
based on dependency. So as you can see, there's
a lot of reasoning in here, things that you couldn't
necessarily put if then else because realistic based on
dependencies needs reason. It needs something to think, and that's why we've
attached our GPT, our LLM, so it can
actually reason. And this is the
power of AI agent. The output format the
output should be structured data only suitable for direct
creation of Jira epics. And also things to include the methodology must
be agile or waterfall. So it's actually going to
create a structure that has all this stuff as output.
So it's going to output. Methodology will have values
either agile or waterfall. It will output some epics, which is an array where each
item includes a summary, and I've said concise
Jira epic title derived from project
scope, description, clear jury style
description, estimate, story points agile,
duration start date, and end date for waterfall, and any key assumptions. And then more rules do not add narrative explanations outside of the
structured output. Do not mix agile and
waterfall estimation styles, use industry standard
assumptions and ranges, ensure summaries and
descriptions are written in professional
Jira language. If required input data. If the required input
data is missing, output and empty result, output must conform exactly to the
structured output scheme. Do not return JSN as text. Do not wrap output in
markdown or code blocks. So this essentially is enough to make sure
that it knows the goal, it knows the role, it
knows the context. It knows what it needs to do. I knows the format it
needs to do it in. And there are some
dos and don'ts, things to do and things
not to do at the bottom. So this is a really
tight message here or a really tight
prompt to our GPT, so it knows exactly
what to generate. So the first thing to do is
to run this step and make sure it actually works and gives us some output and
see what the output is. So let's do that. So we
can see that the nodes run well and there's a whole bunch of
information in here. I can see that there
are two results. As you can see here, two items, and that's because it
took in two items, the two rows from
our spreadsheet. And I can see in the first one, the methodology is waterfall. In the second one, the
methodology is agile. So that already looks good, and we know that because here the first one is a
clothing project, and the second one is a website. So websites would usually be
agile because with software, we usually want to iterate
and keep changing. Whereas for something like
clothing, it's quite fixed. There's usually a contract, and we know that for
such a project, usually, that would be a waterfall
style project where it's all defined upfront
and then built in phases. So that's a good start. You'll notice that
the JSON structure, there's quite a lot
of quotes here. This is something
that usually happens, and we'll need to do
something to address that. But the first part of this
has worked really well. So now let's go on
to after the agent. Incidentally, the thing I
want you to remember is that it's used reasoning to
generate all of this stuff. These are all phases
that it's generated. And it's generated
all of the phases and the epics just based
on this information, really loose language, and
that's the power of an AI.
14. How to automate Waterfall (Predictive) Project Plans directly into Jira: An. So looking back here, the next thing to do is
to work out what to do. Now that we've got
all these epics, we need to get them into Jira, and we need to do
different things and create a
different issue type. Well, maybe not issue type, but we need to create
different issues for waterfall projects and different issues
for agile projects. So because of the
format of this, because there's a
lot of quotes and it's escaped things and
made it a little bit messy, and I sometimes struggle to get the AI agent to
make this cleaner. What I usually do is add some code afterwards
that will clean this up. So let's do that now, and what it will do is it will lift out the fact that we've got a methodology followed
by a bunch of epics. It will make that a
lot clearer here. And so, therefore, we can loop through all the epics
and send them to Jira. We can also see very quickly
what the methodology is, whether it's waterfall or
agile and do different things. So let's do that by pulling it out into slightly
cleaner form, making it easier to reach
in and grab what we want. So to do that, we're going
to need a code node, and we'll do it in JavaScript. And I created the codola, so I'm just going to paste
that in and explain. So what we're doing is
on the left hand side, we've got the item, which
is this output structure. We'll get that and we'll
get that from the input, which is actually
this structure. And once we get the raw output,
we're going to pass it. And if it's a string, then we're going to take out
the raw JSON that we need. We're going to lift past
fields up to the top level, as I was saying, because it makes it easier
to grab what we want. And so the item methodology is going to be the
past methodology. In other words, we're
going to pick that out of this string here
and we're going to pick the epics also out of that. And then we're going to
return the new item, which is a lot cleaner. So this just makes
it a lot easier to grab what we want,
the methodology, so we can tell
whether it's agile or waterfall and then the epics so that we can
loop through them. So let's check what happens
when we execute that. First thing I've noticed is I've forgotten
to do something. Up here, you can see only
one item has been returned, even though there
were two items, one for each row in the input. And the reason for that
is because I've got this here run once for
all items selected. So I should have put
run once for each item. And that way, every row
from the spreadsheet, it will do this for, and that makes it
easy for us to send each row out as output and
process them differently. So if I execute
that, here we go. And so now this is a little bit cleaner now so we
can grab the output, and it just makes
it a little bit easier to reach in
and get what we need, the methodology and the epics. We've also now two items, one here in the
output structure, and then another
one further down. So you can see here that
on the outside cleanly, the methodology is waterfall, and it's followed by
a number of epics. And if I go down to the next one within this
output structure, the methodology is agile, and then we've got
a number of epics, and this is the
information we want to be able to get a easily. So that's worked. The next
thing we're going to do is decide for each of these
items that comes in, we need to decide
if it's agile or waterfall and then do
something different each time. So for that, we're
going to use an I. And this is out if, and inside, what we're going to
do is we're going to pick out the methodology, which is here, nice
and easy to grab. And then we're going to do this. If it's equal to waterfall, we're going to go
down the first track. And for any other
reason, we're going to assume it's agile and then
go down the second track. So let's execute that. And if you look here, you can see there's a true branch
and a false branch. Meaning, if it's true that this item that's come
in is waterfall. It says the methodology
is waterfall, then it ends up in
the true branch. But if it's false, then it
ends up in the false branch. And that's because the first one is methodology waterfall, the first row, and the second
row is methodology agile. So it's branched
successfully, so that's good. So let's come out of this. So
what do we want to do next? So if it's waterfall
methodology, we want to create a different
type of issue in Jira. It will still have
the issue type epic, but we're going to set
some different fields on there so we can show
it as a Gan chart. And if it's agile, we'll
do something else. But let's first do the
waterfall style issue. So what we need to do, and this actually
applies to both cases, is we need to split out
the epics at this point. So we know that this
track is for waterfall. So let's split out the
epics from waterfall, and the epics are the phases
in terms of waterfall that we're going to send
to Jira in form epic. So we're going to pick
this split out node, and that's going to take
out the epics that we need. So in here, we're just literally
going to drag in epics, and that's what we
want to split out. So from this point on, we
just want a list of epics, and there's nothing
else to do there. So let's test that
we get our epics in the output, and there we are. So this is a list of epics
or phases in waterfall, each having a summary, a description, estimate
with a start and end date, and that's exactly
what we want for every single phase
that's generated. So that's that. Then the
next thing we want to do is we want to add all
of these into Jira. So you can see it
came out as one item. Now we split it into
five, and these are the five epics or phases that
we're going to add to Jira, so it will call it
five times now. So what we're going
to do is we're going to click Plus on that and then
we're going to find Jira, and we want Jira software. And within Jira software, what we're going to do is we're
going to create an issue. And so I already have a
Jira software account. If you've got Jira, then you should have an
account to make sure that you set it up the right way
so that you can add epics. And the thing to pick
is a scrum project. And you can pick
scrum project for both the waterfall side and the agile side when
you set up Jira. If you do that as
long as you do, then you'll have access to
the right type of issue. Once you set yourself
up with A Jira account, then you can come here and
pick your account as usual, create a new credential
as usual. It'll be Cloud. You'll need to get your API
token and put that in here. And once you've done that
and your email address here, then you'll be able to continue. So we've got the correct
things in here already. Issue is the resource, and the operation is create. So I'm going to pick from
a list of all my projects. And this is the
waterfall project. So if it's waterfall, we know that we want it
to go to this project, passion sports, AI Tracks. That's where our waterfall
projects are going because all our waterfall projects are track suit projects
at the moment. In time, we could change this. So this is just
clothing projects, for example, or we could have called it
waterfall projects. But just for clarity, I've
called it this for now. And then the type of
issue that it will create is one of epic for now. So now what we want to do is start adding the information, and this is the
reason why we created waterfall separate
from agile issues. So the summary
speaks for itself. That will come from summary. And that'll be things like the title really of this phase, which is design finalization of the passion sports
Men's track suit. And the other things
that we want to add are we could add
literally anything, but we want to add
a description, and that will come from here. And that explains
that this phase involves finalizing
the product design, including selecting Valere
track suits, et cetera. The other thing that's
really important to add is the start date. And now start date doesn't
appear in our list. That's because it's
a custom field at this present time in Jira. So then you add Custom
field from a list, start date. That's what we want. And then we'll drag that in. And that's pretty much
everything we need. We could add more, but for
the sake of being concise, I'm going to leave it at that. One thing to note
is currently we can't get end date,
which is due date. We can't get that
through the node. If you try and look
in Ad custom field, you'll see that due date, which is Jira's version of an end date is not in the list. At this present
time, there's just an issue where it doesn't
pull that through, but we can always
fill that in later. It's good enough, and we could put that somewhere
else so we could put the due date as part of the description and then just pick it out
and add it later. It's a bit cumbersome, but for now, that's one
way of handling it. So that's all the
information we need. So now let's check that we can successfully create
this epic in Jira. There you go. So it looks
like it's created one, two, three, four, five epics in Jira. So if we come out of that now, we should be able to go to Jira and see that
it's created then. One way to check is if we go back and we look at the output, you can see the IDs here, you can see the keys
here, PSAT 265, PSAT 266. So if I go back now to Jira, and we want the AI track suit, if I refresh, there you go. So you can see
everything from 65, 66, seven, 68, and 69
has appeared here. Now, if I delete these old ones, just to avoid confusion. In fact, I'll need to go to AW and delete all the old ones, which leaves us with
just these new ones that have come direct, and
you can tell from the date. So if I now go back
to timeline view, you can see this is
more Gan chart style, and it shows
essentially the times, the start and end times for
each one of these tasks. So that's excellent.
We've got the first one done. Now, let's go back. So what we've got is, if
it's a waterfall project, it creates the issue
and it creates it. Importantly, what it's done is it's created it
with a start date. And the fact that
it has a start date means that in timeline view, because it's got a start date, it starts here and
it keeps going. Even though it hasn't
got a due date, as you can see here, it keeps going I think there's
some kind of a default, but it definitely
keeps going no longer than the next phase. And then it stops there,
and this phase keeps going, and then there's another phase. So because of that, luckily, even though there's no due date, it's quite easy to
see that it's worked. And we've got a Gan almost
a gancha style timeline. So that's great.
15. How to automate Agile (Adaptive) Project Plans directly into Jira: Now what we want to do is we want to create this
backlog for agile. So agile for agile task, it's not going to create
them with a start day, which means if you were to
look at this in the timeline, it can't even show the timeline at the moment. Pit
is interesting. But in the timeline, it
doesn't actually show any of those stories or epics because number one,
they're stories. They put in a
stories, not epics, so they won't show,
and they don't have a start date, so you
won't see them here. So that's how we know that
it's successfully put them in as stories agile style. So what I'm going to
do is I'm going to delete these so that we know when the new ones have come
in. Go, that's totally clean. And so now when we come back to the backlog for the Passion
sports football website, Premier League,
we're going to see a whole new set of items
once this has worked. So now if we go back so what we want to do now is we want to work on this
second track of the I. The first track created items for anything that is
a waterfall project. Now we want to do a
very similar thing, but slightly change the issues. So let's duplicate
this, attach it. Now, if we look inside, this is going to be exactly the same. It's still going to
take them as epics, and then we'll just do different stuff on
the other end of it. So let's execute that step. Make sure that works, yep it's spitting them out into epics, as you can see here with a summary and a description and an estimate in story points, which is the important
part, as we'll see. So now it's split them out
and we've got six items, all of them at
Epic, we can again, create an issue and
we attach that. So let's open up this. And we're going to make some changes here. So the first thing is, we're not going to go
from the same list. So what I'm going to do just
to be clean is I'm going to delete these parts because
we'll put them in later. I'm even going to
delete the summary so that we're starting
completely fresh. So the project that we're starting from this is
all still the same, so it's the same credential. We're going to the same place. It's still creating an issue, so it's resource issue,
operation create. Project is different, though. So our agile projects
are going to go to the Passion sports football
website, Premier League. So we're assuming if it's agile, it must be that
project at the moment. We can change that later. The type is going to be story. We're not going to put
it as an epic because epics tend to appear
on the timeline. Stories appear in the Blog, so we want it in the Blog
for agile style project, so we'll click Story. And the rest is very similar. We're going to grab our summary
and put that in summary. And that is written
in agile style. As a football fan, I want to
view accurate and up to date Premier League
fixtures and results so that I can follow match
schedules and outcomes. Nice. The summaries in there. Now we need to add
the description. And we're going to
get that from here, develop and maintain a dynamic fixtures and results module. So that's the description. And the thing that is different
about agile projects, instead of specifying
the start date and end date upfront, we would put estimates in. Now, usually, that would
be done by the team, but I've just put it in to demonstrate what it
would look like. So if we add field, it's
not a normal field. It's in custom fields. Click Add Custom field, select from the list, and we
want story point estimate. And the value is going
to come from here. So we'll just put
that straight in. And this is at eight pointer. So that's everything we need because it doesn't
have the start date, it won't appear in our timeline,
and we don't want it to. We want it to be a list in
a list called a Blog list. So let's execute that step, and we can see it's
now generated one, two, three, four, five, six stories, starting at key PS PL 65 and ending
with key PS PL 70. So we should see all of
these appear in our backlog, but they won't be
on the timeline, and they should only be in the Passion Sports
football website, Premier League
project as Stories. So now we've done both tracks. Let's go over to Jira and
see our agile project. So this is our backlog. If we refresh, there you go. You can see our backlog has
got all the stories 65-70. You click on any one of them. The great thing is
not only do we have our summary as a
football fan, et cetera, but we've also got a
description that is excellent because it's
got acceptance criteria in edge cases all generated by our AI agent because we told it to do things in
a particular format, and it's done that for
every single story. So this can always be changed
and refined and updated, but it's an excellent
starting point. It's even put in some estimates, and these will be based
on real knowledge. Again, this is the kind of stuff the team would need to
look at to estimate, but it's just a demonstration
of what's possible, really. And if we go back and we
look at our AI agent. It all came from this. It all came from saying, I agile, the description
should contain acceptance criteria
in edge cases with bold uppercase headings. That's all in there. It said, how to generate the epics with a summary written
as a role I one, so that reason estimate
Fibonacci story points. So all that stuff has been
used to generate stories. And if you think about it, all
of that has just come from a spreadsheet and primarily from the fact that there's
a product goal saying, build a top tier UK
football website covering the Premier
League and with a few key features such as football fan expected
components such as fixtures, results, league
tables, et cetera. So that's really awesome that we've gone from this
workflow to this, which is a list of stories, high level stories or epics
that the team can work on. So that is our workflow.
Really awesome. Our project planning
manager agent is really a part of the team, and this AI agent has
done an excellent job of generating two different tracks using reasoning and its brain, the Open AI GPT model to
generate full project plans for a waterfall project or agile project all based on really minimal
information in here, but really realistic plans
based on that, actually. So now it's your time.
What I want you to do think about how many
times you've had to decide, should this be agile
waterfall or think about how many times you've had to create project
plans from scratch, filling in larger spreadsheets where you have to put in
every single task yourself, every single phase, every
single epic yourself. So think about that and I want you to come
up with a project which is going to be fed into NAN as an automation and
make life easier for you. And some examples are, if
your role is project manager, you could use it to auto create the plans and send
them to Jira or from project briefs
or high level ideas just as we product manager, you can use it to
turn your ideas into backlog ready epics. If you're a founder, you
can standardize execution across teams so that when
you come up with an idea, it's executed the same
way for all teams, they can just use this workflow to send tasks to
their tool of choice. If you're operations manager, you can plan production or logistics initiatives for this. And if you're a team
lead, you can remove the ambiguity early
from planning and generate tasks that are generated in a consistent
way across your team. So start with one spreadsheet, one agent, and one
planning decision. And then build out from there. That's how the agentic
workflows and automations replace meetings
and don't replace judgment because you still
can input into them. But as you can see,
it's very powerful for automating the planning
of your projects. Hope you enjoyed that. See
you in the next lesson.
16. How to automate Posts and Images with the Social Media Campaign Agent: This lesson, we're going
to automate one of the most repetitive and time consuming parts
of running a brand, and that's creating
social media content. We're going to do it using an
AI agent. Why do we use it? We use it to generate consistent on brand social media content, and that's going to
share some assets, brand guidelines
and branded images, common uses for different roles, automating social media posts, keeping the brand
voice consistent, so it always has the
same look and feel. Letting teams
create safe content that adheres to
certain guidelines or certain rules
within the company. So this is our workflow, the
Social Media Campaign Agent. In this case, we're doing
it using a chat message, and the main reason we're
doing that is because it's really convenient to chat down here to use our chat to
send messages to our agent. And there are other
ways to do it. We can schedule it, and we can come to that at a later date. But for now, we're going to use chat because it's
really convenient. It's going to do
is it's going to send a message to the agent. The agent, as usual, is
using as a brain GPT model. This time, we're going to have memory because what we
want to do is we want to send a post to social
media every single time. And we want to remember the last images that we sent
because what we don't want to do is reuse the same images over
and over again. I don't want to send a post today in the morning and in the evening, reuse
the same image. So at this point, we're
going to introduce memory. And before we even
send the post, we're going to refer
to brand assets. These are basically
our brand guidelines. And our brand
images to make sure that the guidelines will tell us things about the product
color and the style, and the images will show us the right images to use
in line with the post. And in here, we're going
to use an agent because an AI agent helps us to solve complex
issues with reasoning. So we want the agent to actually think about
various scenarios, what the guidelines are and making sure we're
sending the right posts at the right time, using some reasoning
to make sure that whatever we post is in
line with the guidelines. And so, therefore, it
makes sense to use an agent rather than if
then else set of rules. We're then going to
use this HTTP request as we have in the past to
grab the right images. And we're going to create
a post. In this case, we're going to go to LinkedIn. It's pretty straightforward, and I'll show you
how to do that, but it can be done for
any social media site. It can be done for
any social network. It can be done for
Facebook, Instagram, Tik Tok, and, of course, here, as you can see
LinkedIn and of course, X. So in this case, we're
going to post to LinkedIn. And here's an example of
what we're going to post. This is a representation of our passion sports
page on LinkedIn. And we're telling our
business associates as well as our clients
that this is coming, and those people
are people who may buy in bulk and
put it in stores, but some of them also customers who just happened
to be on LinkedIn. And what we've done is
we've created a post. You can see it's specific
to boxing day launch, experience the perfect
blend of style and performance
with passion sports latest collection
tailored for a slim fit, featuring distinctive
passion sports logo, men's styles in striking
black and gold, ladies in bold black and pink, elevate your sportswear
game and make a statement this boxing day with passion sports design
for champions. This is all generated, and then we've got
that our image there for passion sports tracksuits.
We've got a few there. We've got the original
concept that came from CEO. We've got also some other brand images
showing a sleek design. It's great use of images.
That's the end game. Let's show how we get there. In order to create this, we're going to do it step by step. First of all, if you remember, we referred to our brand
assets with a Google Doc. We're going to show how
we go from a Google Doc to MCP and why we would use it. First step, as usual, let's create
ourselves a workflow. I'm going to call it the
Social Media Campaign Agent. And the first thing we're
going to do is we're going to add our chat node. This is what we're going to
use to trigger the post. There it is, and
there's nothing else to say about that right now. We're, of course, going
to have our AI agent. And what we're
going to do is it's connected already to
Chat trigger node, which is great, and it's already going to
take chat input, which is also what we need. What we're going to
do is, as usual, we're going to add
our system message. And this is going to tell us what should
happen every time, regardless of the
message that comes in. But before we grab our prompt, what we're going to do is
we're going to think about what tools we first, we're going to add the brains
of the operation as usual. And that's the
open Aichat model. 4.1 mini is fine as usual. And at this point,
what we want to do is every time
we get a message, we want to refer to our brand guidelines and our brand images to be
able to create the post. The brand guidelines will help make sure that we've
got the right text, and the brand images
will make sure that we can use the images to
actually send the post. We're going to go
to Google Sheets. And we're going to get our brand guidelines, track
suit guidelines. I like to set manually, but it knows that we're getting
a row within the sheet. There you go. It's got the info, men style, lady style. And the other thing
we want to do is we want to grab the brand images. So we're still going to we're actually going to go to the
product research sheet. And we're going to grab
track suit images, and we're good to
go. There you go. We've got the image links
for various images there. That's grabbing the
right information. And with that, we'll quickly run execute step there and
go back to our agent. At the moment,
nothing's coming in because we haven't
even sent a message. In here, we can send a message. For example, we can
tell it to create a boxing day post.
Click Enter there. And that's to see
some data come in. Now, as usual, you can see
chat inputs coming in, create a boxing daypost for our product very vague,
very loose deliberately. And that's to show you that we can do
something we can start with something very loose
and vague and then end up with a proper social media
post based on this agent. At the moment,
nothing's coming out, and that's because it just says you're a helpful assistant. Now I'm going to
grab our prompt, and we're going to
put that in here and we're going to see
what that comes out with, and it'll make a lot more sense. Okay, so here's our prompt. It says, You are an assistant responsible for brand compliance
social media content. One, check the brand guidelines using the Get brand
guidelines tool. Two, generate LinkedIn social
media texts as requested by the chat and ensure it uses brand guidelines to
describe the images. Three, find all image links in the Get brand Images tool where Passion sports
branded is yes. Four, output only
one image link. Five, output text in this
format, changing nothing. And it's got some
structured JSON here, which is post text, Postext goes here, Image
link, image link goes here. The prompt is very
straightforward. It basically says, Get
some brand guidelines, get some image links, output only one of
the image links, and then output text in this
format, change nothing. And in this format, it's literally got the text that goes in and the image link. So let's just do
this as a test and make sure that runs and
see what the output is. So here we can see the Jason has been Output. We've
got Post text. This boxing day, elevate your sportswear game
with passion sports, sleek and stylish black
and gold slim fit track suits designed
exclusively for men, crafted to perfection with
the passion sports logo. Our apparel combines
performance and elegance. Don't miss out on embracing the spirit of the season
with our premium collection. Hashtag Boxing Day, hashtag
sports, sportswear elegance. And then the image link
is a link directly to Dropbox with the
first image in there. So that's excellent. And bear in mind that that's all come from a really simple
message that says, create a boxing day
post for our product. You said nothing about the color and nothing
about the product. But because if we were
to look down here, we can see that we've
got our brand guidelines and we've got our brand images,
we can generate the post. So if we open this up, and just have a quick look
at our brand guidelines. You can see it's
pulled from the sheet. It's black and gold, replace any logos with
passion sports logo, make it slim fit,
do nothing else. And even though this is a
little bit like a prompt, and I would probably change
this to not say do nothing else and not say replace logos with a
passion sports logo. It was still smart
enough to work out what we want to
do and work out that this text tells it
enough that there's a men's style or ladies style and what the look and feel is. That's a good start. Now we've got our output,
which is post text. What we essentially
want to do is we want to grab our image, turn it into a real image. And then turn that into a post. The first step is we're
going to use HTTP node. And for the URL, we're going
to pull the URR out of here. The way to do that is we
need to get into the JSON and do that we pull
in the output. But within the output,
within the output, we want to actually
pass the JSON and pull out the image link, and that looks
something like this. This basically says,
within the JSON, pass it, and then within it, grab the output element and then from that
grab the image link. If you look over here, we're going to look within
this structure. We're going to grab this
image link element here. You can see under
here an example. You can see that this has pulled out this URL, which is
exactly what we want. And as usual, we're
going to have to set bits and pieces here to make sure that we get our raw data. So we go down to the
options, pick response. The format is going
to be a file data. And what that will do
it's going to convert this URL into a image,
real image data. Let's run that. There
you go. There it is. We can download that. And there it is. This
is the first image that we're downloading now Based on our image links that we got from the research,
the branded products. That's that. Now the
next thing to do. The most important thing is
to post that to social media. If we want to post social media, we just
need a node for that. I'm going to use LinkedIn's
very straightforward example of how to post socials. Click R plus, type in LinkedIn, and we want Post.
And there it is. The first thing you're
going to want to do is create a credential. Now I've already created mine, but if you need to
create a credential, there are a couple of things
you're going to need to do. There's two ways to
do it. The first way is if you create a credential, then you'll literally
stick with standard. Usually these will be off organizational support
and legacy may be off. I've got them switched on
for a reason I'll tell you. Then you'll go and you'll
connect your account. It will open up here, and then you will sign in. And essentially,
once you're signed in, it will bring you back here. Now, you may find
that that doesn't work due to the way ink to what LinkedIn expects for
you to be able to post. And you can actually open up these docs here,
click Open Docs. And it will start
telling you what the prerequisites are
to be able to post. It says, You can use
these credentials to authenticate LinkedIn. This is the node we're
using. And the prerequisites are you need to create
a LinkedIn account. You need to create a
LinkedIn company page. And now, those are both
things that I have. I close this and go back. I have an account, obviously. That's why I'm logged
in, and this is my company page for
Passions sports. I've already got both
of those things. However, what you may need
to do is you may need to create organizational support and click
organizational support, click Legacy, as well. And then there are various ways of connecting to LinkedIn. If we go back to the docs, shows that there were two methods, supported
authentication method. Community management with
OWL two. Use this message. Use this method if you're a new LinkedIn user or
creating a new LinkedIn app. And then there's AOT two. Use the message, use the method for older LinkedIn apps
and user accounts. It's a little bit vague
as to which to use. I'm going to show you
how to do each one. I've just shown you
how to literally connect using OWL two. But I needed to show you how to do both just in case one of them
doesn't work for you. And it's hard for me to know that without knowing your setup. I'm going to show
you how to do both. Once that's done and you've
tested your connection, you can just literally click
Save here and close it. And then make sure you've picked the correct connection here. I'm going to get rid of
this one. I don't need it. But pick the correct one here. I've been using LinkedIn account three, and I'll stick with that. So now the important
thing here is, depending on which
setup you use, if you use a normal OOth, you may be able to
post as a person. And if you use the
community OOth, you would post as
an organization. I'm using the community
one. I'm going to post as an organization. Then what you need is the
organization you are in. This is a unique ID, a unique ID that you're going
to paste in here. And the best way to get that is if you go back to
your LinkedIn page, you'll see up here that
there's a unique ID, and you can just grab
that, copy that, and paste that in here. And this will tell LinkedIn the exact page that
you're posting on. Next thing we want to do is grab the text that we're
actually going to post. We'll grab that
text. We can grab that from the JSON
or from the schema. And as before, we need
to pass the text out. We're going to grab the exact part of the structure we need, which is this post text, this part of the structure. That's what we need. And the
JSON to do that is this, we can see already is
grabbing the right text out. And now media category. What we want is we
want to post an image, pick image, and the input
binary field is data, and that's because it
will automatically find the data that's in here that
is in the binary section. It will automatically find that as long as we give it the
right name for the element, and you can see the name
of the elements data. Once we've done that, it should be able to pick up
it will be able to pick up the text we need and the data
to create our post. In fact, when we execute this, it will automatically
post to LinkedIn. Let's make sure that happens. The way to do that is
to go to the page. You can see the first image
here is this image of all the track suits that
I've posted before, and it should change to our mannequin image because that's the first one
that's picked up. Let's test that. You can see
here that it's given us. I said URN LI share
and then a number. That's a unique
identifier for this post, and it doesn't
give us much else. We can't see the
post because that's all gone to LinkedIn. It just shows the same
thing in different forms. If we now go back to LinkedIn
and we refresh the page, there you have it.
There's our new post. It's got the text,
this boxing day, elevate your sportswear game, and it's got our mannequins. We know it's worked.
That's great. That's our first post game sent automatically to LinkedIn. And the important thing is that it all came
from a chat message. And if you look at
the chat message, the chat message will simply create a boxing day
pass for our product. You can see we've not said
anything about the brand, anything about images,
and you can see that we've got a proper
post generated from
17. When to Use Model Context Protocol (MCP) and Memory: There you have it. There's our new post.
It's got the text. This boxing day, elevate your sportswear game, and
it's got our Mannequin. We know it's worked.
That's great. That's our first post game sent automatically to LinkedIn. And the important thing is that it all came
from a chat message. And if you look at
the chat message, the chat message will simply create a boxing day
pus for our product. You can see we've not said
anything about the brand, anything about images, and
you can see that we've got a proper post
generated from that. That's all well and
good, happy with that. Now, things change slightly when you want to
send another post. We could literally just
copy this and paste it in, and it would generate
another post for us. Let's do that, and then we'll see a few things
that we need to change. That's going to go all the way through the process
generating a new post, and that's generated
another post. If we now go to LinkedIn, refresh, you can see it's
generated a new post, but with the exact same image. We know it's a new one
because it says This boxing day elevate
and here it says, Celebrate Boxing Day with
style and confidence in passion sports,
exclusive track suits. Why has it done that? Why has it grabbed the same first image? Well, first of all,
that image is the first one in our brand images. If we go into brand image, and then we open up
the spreadsheet. We can see on the track
suit images sheet that none of these are
passion sports branded. And our AI agent said, Look for the passion
sports branded one. And you can see that the
first one in here is this mannequin passion
tracksuit mannequin. And what's happening is
it's picking out the first one in here
that is branded. And that is the mannequin one. But what we want it to do is now we want it to rotate
through all of these. Now, I could have
made it do that, but I deliberately didn't
want to do it that way. I can show you the next thing. Let's go back to the workflow. And if we have a look
at our agent and open this up a little bit, let's have a look at the rules. You're an assistant
responsible for brand coplant social
media content. Check the brand guidelines using Get brand guidelines tool, generate links in social
media text as requested by the chat and ensure it uses brand guidelines to
describe the image. Find all image links in the brand image tool where
passion sports branded is yes, output only one image link. Output text in this
format change nothing. It's done what we've
told it to do. However, what we've not
told it to do is to get the next image from a
long list of images. Now there's two things
to remember here. One is that every time
we send this message, it's actually going to go in and perform the same
rules and grab the image. But what it doesn't do is
it doesn't have any memory. It doesn't remember
what the last one was number one, and I knew that. I didn't update the prompt to
be any more sophisticated. What we could have said is get the next image in the list. But what I know already is
because there's no memory, it won't remember what
the next image is. That's why I didn't do
that at this stage. Other thing to note,
for this to be more advanced, is that currently, we're using these
spreadsheets in multiple places at this
point because we're writing it we're writing to this spreadsheet in the research in our research workflow, where we do some research
about the images, and then we paste into that
spreadsheet any images that we found that we think
would be good for our brand, and then we change that image. It matches our brand. We
do all that in there. And then we refer to brand guidelines in
other places as well. What we want to do
is we want to make this shed and that's
where MCP comes in. So we've actually got a
couple of things to do. We need some memory
so that we can remember the last post that
we did and then update it. There are other ways to
do it, but at this point, I like to remember the
last thing that we did so that we can
always refer back to it. And if there's anything
that changes in our social media
guidelines and we want to or we want to
remember a post that worked well or anything like
that, it will be in memory. And the other thing
that we want to do is we want this to be easily sharable between different
services, different workflows. We don't want to keep going to this spreadsheet
because at some point, we may not want it
in a spreadsheet. We may want it in a database
or some other form. This is where two
concepts, memory, which we'll come to later
and shared resources, shared data come in, and shared data is usually handled using the Model
Context Protocol. Let's talk about
that really quickly. What is Model Context Protocol? Model Context Protocol or MCP is a way to give AI
agents shared data, consistent rules, and
centralized guidelines and controlled access
to information as well. Instead of embedding
the brand rules directly into every
single agent, every single
workflow, and prompt, MCP lets us keep things
like our brand guidelines, image libraries, any rules, compliance rules,
things like that. Keep them all in
one place and let multiple agents
access them safely. Why we use MCP and when we would use MCP
and when we wouldn't. We'd use MCP when multiple agents or workflows are using the same
rules or data. When we want something like
compliance or branding that needs to be enforced
in the same way everywhere, you want one source
of truth, really, one place you can go that
you know that you'll always have that place is the
place you check for rules, and you share that
and you don't want to duplicate the logic across
all of your workflows. And wouldn't we use MCP? We wouldn't use it when
this task is a one off or purely
experimental or where there's no shared
rules or constraints or when speed matters
more than governance, governance being really
making sure that the rules are applied
correctly everywhere. Things are governed
the right way. Here, we're going to use MCP because social media
is quite high risk. It's quite public. We want
some brand consistency, and this is going to be shared. The rules are going to be
shared amongst many components. So great it's a great
way to share it. Even across the web,
different components, different workflows can
call the same source, the same brand guidelines. And that does happen
in companies all over. And we want to enforce the same, use the same brand voice, control which images
and aren't allowed. And then also, it keeps the rules consistent
across the team. So now, based on that, let's
show how we set up MCP.
18. How to use Memory to Post Fresh Content: So at this point, we have an
AI agent that will spit out a social media post from a simple chat message that
anyone in the team can use, and it will still
be in line with our brand images, our
brand guidelines. So the first issue
we have is that if we just concentrate on this
AI agent for a second. So let's say someone
again, says, send boxing day Image, send Boxing Day message. So at the moment, the agent spits out quite
rightly an image link. And if you remember
this part of the image, which is Passion
tracksuit Mannequin, issue we have at
the moment is we want a new image each time. Now, you may think it's pretty easy to do that
because for example, I could change this to say now output only
one image link, ensuring we have not
put this output, the next image link
on the next row, ensuring we have not
output this previously. So that should work, right, because we've got all the rows, and we're just saying output the next image link
on the next row, ensuring we have not
output this previously. So let's test that
execute the step, double click, and it's
still passion track suit, Mannequin. Why
doesn't that work? Well, when you're
sending these messages, the chat here has a session ID, and it's actually creating a new message every single time. Based on this session, but it can't really remember
what was sent before. So it doesn't know when it goes and it picks up
all of these rows. I should say here, all
these rows, you can see. You can see here 12
items were sent and for the rows that were returned for the brand images,
which is great. But the first time it
sees this message, and it finds all of
the image links, every time we run this agent, it's going to get a list of
all of those image links. And I'm going to say output the next image link
on the next row, ensuring we have not
output this previously, but there is no
previously because it doesn't remember the last
time that we've run this. And this is the reason
why we need memory. So what we're going
to do now is we're going to add some simple memory, and then we're going to see
a change in this behavior. So if we close this, we want to go down here
to where it says memory. And to begin with, we'll
just use simple memory. And context window
length is what tells it the number of past interactions the model receives as context. So for example, if
we put it to five, it will remember the
past five images because every time we tell
it to generate a new post, it will move to the next image. And if we put 1,000 in here, it will remember the
last 1,000 images. I like to keep this shorter than the number of
images that I've got. So, for example, if I know I've got five images, I'll
keep it to five. If I know I've got four
images, I'll keep it to four. And that way, it will always remember the maximum number
of images that we've got. The other important thing is
the JSON session ID here. This JCN session ID is picked up and is in line with the chat. So we know that this session
relates to this chat. So if I close this and
then we now go back to our AI agent and we
execute the step, let's zoom in a little bit. And we can see that now, if we look at this address, it's not the mannequin anymore. It remembered the last one, and it's now moved
to the next row. Let's execute again. So if
you have a look in here, let's remember
some part of this. So this was a dropbox, TK. If you have a look at
this bit, TK S 86. Let's execute again.
And there you can see Dropbox S SCL FI ZOPY. So we know that this is
changing every time. So now what we can do based on memory what we'll see is that
every time that we publish, we'll get a new LinkedIn
post with a new image. So let's test that right now. I'm going to save. And in here, we can literally send
the same message. So we're saying send
boxing day message. It doesn't even say
that it's a post. So that's how loose
this text is. But because of the rules
we put in the AI agent, we know it's going
to create a post. So let's run that. And we can see it's going
through the motions, it's going to memory. It's getting the
brand images and the brand guidelines.
It's sent our post. So if we now go to LinkedIn
and refresh, there you go. Brand new post, brand new image. And that's because we're using
memory to remember what we sent last time and what
we're posting now. Now, there are many
other ways to do this. One of the best practices
is to actually make a note ourselves in the spreadsheet
of what we posted. However, what I wanted to demonstrate here is,
once you have memory, you can start then to
remember what you've done in the past and make changes based on what you
did in the past. And this is one great
example of that. So let's go back
to our workflow. So that's great.
That's excellent. We're now in a
situation where we're publishing a new image
every single time. What we want to do
now is we want to make sure that this
and this are shared. So the brand images and the
brand guidelines are shared. And the reason is because we're actually using this now in multiple places within
our set of workflows, and what we want to do
is be able to refer to the same brand images and the same brand guidelines
from anywhere. We also want to be able
to enforce certain rules. So for some AI agents, at times, we may want to say, you can only pick the
brand guidelines, and you can only pick
the brand rules, but we want it to go
to the same place for both because
they're both related. They're both brand assets. So what this will do,
what we're about to do by creating by using the MCP, the Model Context Protocol, and essentially putting
all of these in one place, it allows us to change whether we use a spreadsheet
or a database. It allows us to have one
centralized place that we go for all our brand assets and essentially share them
between all our agents. The way we're going
to do that is we're going to create a server, and we're going to
create a client. So let's go off and do that now, and you're going to see exactly
the benefit of using MCP.
19. How to use Model Context Protocol (MCP) to Share Data and Guidelines: What we want to do is publish to social media and we want to share this information about our brand images and
the brand guidelines that we're meant to be
using for the post. This is all working really well. But we want to share
this information so that any of our workflows, any of our AI agents can
find this number one. There's one source of truth, and also we want the ability to if we want to change
these to anything we want databases or
anything without affecting any of the calling
workflows that call it. So the way to do that is using the Model Context Protocol
and Model Context Protocol, client and a server to
communicate with each other, where this will
contain a MCP client, and the client will
call the server, and that gives us
greater control over what can and
can't be called, where it sits and
how sharable it is. So let's demonstrate that now. The first thing we're
going to do is we're going to go off and create
the MCP server. So I'm going to create
a new workflow, and I'm going to call it
brand asset MCP server. And what we want to create
a server is, first of all, click as usual, come up to
the right and type in MCP. And what we want is the
MCP server trigger. And this is what allows us to essentially get our information
from one shared place. This is the server.
There are two URLs here, the test URL and
the production URL. The test URL actually only runs once every time
you call it as a precaution. The production URL is what stays on and
runs all of the time. I usually just use the production
one because otherwise, I have to keep restarting
the test server. And this has a path, and the path is what we're
going to use to call it. So if we change this, you'll see that
this will update. So let's change that now. So we've called it brand assets, and if we do execute step, you'll see that it says here, listening for test event, go to MCP server and create an event. If I stop listening and go back and you'll see that there's a test
in a production URL, if I click, if I make sure that I'm on
the production URL, then this, as I said
before, will stay on. So now we've got a server. The question is, what
is it going to serve? What it's going to serve is
the information that we want other workflows
to be able to use anywhere in the world, in fact. We'll come down to tools and we'll choose
our Google Sheets. And as usual, I like
to set manually, say that it's going to
get rows from the sheet, and we're going to choose
our brand guidelines and tracksuit guidelines. Execute that and we
can see it's getting back the right
information, rename it. And let's create another one so that from the
exact same place, we can get brand images
as well. So we'll click. Set manually going now go to our product research sheet
and get the tracksuimages, and make sure that
comes through. There you go, there's a
list of audit images in the sheet and rename it. So now this server,
when requested, will serve back to
whoever asked it, the brand images and the
brand guidelines that's going to request this is
going to be our agent. But the great thing
is that any of our agents can now request
this from the same place. And if we make any
changes to this, it's changed centrally all in one place and
used everywhere. We can also, as you'll see, enforce certain rules
about what can and can't be used by the client
on the other side. So the only thing we need
to do to get this working, there's actually two
things we need to do. Click on production,
make sure you're using the production one,
click Execute Step. And the most important
thing is make sure this is set to active. It will then tell you that
the workflow is activated. You can now connect to
your NCP clients to the URL using SSC or
streamable HTTP transports. So I click Got it, and now this is active
and it can be used. So because I've
actually created one of these already and it's got
slightly different name, I'm going to switch this off
and we're actually going to use the one that I created earlier here, exactly the same. It's got Get brand images,
Get brand guidelines. I've called it a brand NCP
server because essentially, even though it gets
the images as well, the main thing we want
to do is guide whoever's calling it to use the
correct brand images, the correct brand
guidelines, and anything else related
to the brand. And this is running already, so I'll just leave it running, and you can see
it's active here. So now what we're going to
do is we're going to go back to our calling workflow, which is, in this case, our Social Media Campaign Agent, and we're going to get it
to use this server instead of using these Google Sheets, and that gives us more
flexibility, as I've said. So if we go back now, we want to go to find a
Social Media Campaign Agent. And in here, you can see it
still using Google Sheets. So what we want to do is now
call our MCP server instead, so we'll get rid of this one, and we'll get
rid of that one. And we're doing that in favor
of calling One tool now. So if we type in MCP, we can see it says
MCP client tool. This is the client that
will call our server. So as you can see here, it says, connect tools from
an MCP server, and that's exactly
what we want to do. So if we click on that, what we want to do is we
want to paste into here a link to the MCP server that we're going to be using, the
one that we just created. So if we go back, go
to production URL, copy it, and then we come
back and paste that in here, we're using the correct server. We're going to leave
that as streamable. No authentication. And this is important thing
of which tools to use. Now, in our case, we're
going to use both tools. We're going to use the images. We're going to want
information about brand images and information
about brand guidelines. However, other AI agents may only want access to
one of those things. And so this allows us to only give it access to
the things we need. So if we click here, we
could go to Selected, and then we can choose whether we want only to have access to brand guidelines
or get rid of that and only give it access
to brand images. So it gives us greater security over what it is that we can use. The other thing that
we can do, as well, is we can say all except. So we could say
all of the tools. Except for brand
images are available. And that works well if
we've got many tools, you could have about
seven or eight tools all related to the brand, and we want to use all of
them except for one or two. And instead of listing them all, we can just exclude the
ones we don't want. Now, it so happens that, in this case, we
want to use both, so I'm going to leave this
at all, and that's it. There's nothing else to
do. No other settings. So we're just going to
make sure this works. So click Execute
step and provide this says provide the data
that would normally come from the AI agent because we're
just executing this step, we're going to provide
what data we need to pull. So let's say we just want
to get brand guidelines. We'll click on that.
And we get an error. So usually what would happen is something
would come through from our chat agent through a session to our MCP
client and call it. So because that's not happening, I believe it doesn't quite
know what to do in this case. I'm going to try executing step, and then I'm going to
try with brand images. And again, the same
things happen. It says, error in sub
node, simple memory. So we can open up the simple memory node that we
created earlier. And as you can see,
as I was explaining, the session ID, there's nothing coming in and that's because
we haven't sent a message. So in other words, we
need to do this properly the way we would
usually send a message. So if we close this and we
open up our chat down here, we're going to say, send
boxing day message, and we can do that simply
by clicking the arrow. I will go back to the
previous message, click Play and watch
it do its magic. So you can see it's
going to the MCP client. It's going to use that
to pull our brand guidelines and create a post. So that's what successfully,
we can go to LinkedIn, do a refresh, and it's gone back round because we're
only doing four images, so it's gone back round
to the mannequin. That's cool. But we
can see all works. So if we go back to and we've got a new
message here as well. So if we go back, we can
see this is all working. I'm going to rename
this. I'm going to rename this to
get brand assets. And actually, for completeness, I'm going to rename what's in the prompt to call the R tool. So now it's going to say, check the brand guidelines using
the brand assets tool. And it will do everything
else the same generate linked in social media texts, using the brand guidelines, find all image links in the
Get brand assets tool now. It will still check that
passion sports branded is yes, output the image link
on the next row, ensuring we have not
output this previously, and the output text is still
nothing changes there. So let's run that and just
check that that works. So let's grab our
message again, do that. Make sure that the
agent works seamlessly. And I'm going to
save regardless. We'll go back to LinkedIn,
refresh. And there you go. We've got new message, new image, so that's
working great. So now we've got this working
completely end to end. We can type in a chat. I get it will use our prompt
to check the brand assets, which is our brand guidelines and our brand images, make
sure they're correct. It will refer to simple memory so it knows the
last image that we posted, and it will make sure it doesn't post the same image
more than once. And it will go through generate
an image and then create a post from the text that we generated and the image.
So that's awesome. We've got a fully fledged
social media campaign agent. So let's rename that. And as I say, there's still
more that we could do. I mean, we could schedule this, which would involve
a few changes here. At the moment, let's say our company doesn't want
to schedule it. They want to send messages
at will when they want to. And especially given that
this is a product concept, they want a little bit
more control over it. And this chat works well
for people internally. We could change this to
something different, email, we could change it to come from WhatsAp or any other
client, really. But this is a handy way to
generate a post very easily, and we can expand
it to any platform. So now it's your turn. What I want you to
do is think about a piece of content your team creates repeatedly and how an AI agent could help
handle it safely. So let's go through a few different roles that
might actually use this. So a marketing manager
could use it to generate LinkedIn or social posts for
weekly product launches, for example, similar to what
you just saw us create. Founder could
announce new products or milestones consistently. Ecommerce team could use
it to create posts that highlight specific product
features periodically. An agency could use
it to produce on brand posts for different client campaigns
that are coming up. And operations or
communications teams could use it to share
internal updates or public announcements
regularly. What I want you to do is pick one role that applies
to you or your team and find some kind
of reoccurring post that needs to go out
with clear rules. And that way, once
you've done that, you'll be sure that
you've learned how to turn your content
creation into a reliable, repeatable system instead
of a last minute task, something that you can
have churned out for you without having to think about
it time and time again, especially when you add
the scheduling element that we'll go through
at a later date. And that's that. Hope you've enjoyed it. See you
in the next lesson.
20. Introduction to Retrieval Augmented Generation (RAG) and Pinecone Database: Okay, so in this lesson, we're going to automate one of the most important and
most demanding parts of a business, customer support, what's now
called customer experience. As we prepare for an
upcoming product launch of the Passion Sports AI tracksuit, our customers will
naturally have questions, especially if we post
on social media. They have questions about the
product, about the sizing, the materials, the delivery, about the launch timing
or availability. Those questions might
come in via social media, a website chat, email, messaging apps or
literally anywhere. Instead of answering
these questions manually, we're going to build
a customer experience chat agent that can
respond accurately, consistently and instantly, using the same knowledge that our team would
use internally. So let's go over the workflow. The workflow is called the Customer
Experience Chat Agent, and it gives the customer
replies and responses, depending on how they
reached out to us. Why would we use it? We use it to answer customer questions automatically using trusted
internal knowledge. And common uses for
different roles are handling
questions for launch, reducing the support load, giving customers fast
and accurate answers. So this is an example of retrieval augmented generation
or what we call RAG. So what we're building here
is a classic example of RAG. What is RAG RAG is a pattern where AI retrieves
relevant information from an external knowledge source and then uses that information
to generate a response. Instead of guessing just using the LLM to go out and
find things out that may be more core to our business information we actually know more about
than the Internet, guessing, the AI is grounded
in real trusted data. So why is RAG important?
Well, Rags critical for customer support because
product information changes, and we want to make sure we always get the up to date stuff. Answers must be accurate and hallucinations
are unacceptable, especially when
talking to customers. So RAG ensures that the
agent only answers based on approved documentation can be updated by changing the data, not the model, and it scales as your
knowledge base grows, so we can always change
the documentation. In short, RAG turns AI from a chatbot into a
reliable support system. So why do we need to move
beyond sheets and PDFs? Let's talk about that.
Well, up to now, we've used Google Sheets and in the background,
PDFs and documents. And that works at a small scale, but it breaks down quickly. The problems are, it's
hard to search accurately. It's hard to keep in sync, and it's not designed
for semantic retrieval. To support RAG properly, we need a database
built for AI retrieval. So we've technically used RAG already in previous lessons, but the most frequent way to use it is to use it in a way that goes via a database
to get the information. So the database we're
using is Pinecone. So let's introduce Pinecone
and why we're using it. So first of all,
what is Pinecone? Pinecone is a vector
database. So what is that? So instead of storing rows and columns like a
database usually does, it stores the meaning,
and that means that questions don't
need exact wording. It means that the system
retrieves content based on your intent because it
understands the meaning, and AI gets the most
relevant context when it's doing
things using RAG. What is a vector database? Et's explain it really simply. A vector database converts
text into numerical vectors, numerical values,
numerical structures, and it stores them by
semantic similarity. So where we've got words
that mean a similar thing, it stores them near
to each other. It also allows AI to retrieve the closest
meaning matches. And this is ideal for
things like FAQs, frequently asked questions,
support documentation, policies, and product info. But why are we even using a
database in the first place? And why Pinecone specifically, as there are other
vector databases? We choose a database because customer knowledge
grows constantly. We need fast,
accurate retrieval, and multiple agents
and systems need to access the data potentially. So we could use this for
many other workflows. And we choose Pinecone because it's purpose built
for RAG workflows. It scales easily, it integrates
cleanly with AI agents, and it provides ready
made demo workflows that we can use straight
out of the box. Let's get started and set
this up step by step. So the first thing I want to
do is show you the workflow, the agentic workflow that
we're going to create. So the way things start off is we get some chat input here. So let's go over and have a look at how that chat
input may have come about. So let's have a
look at this post. Let's say we've got
customers having look at our social media
on passion sports, and they happen to see this
message. Need more info. Our customer experience
team is here to help. Whats up us anytime
at plus 1555, one, two, three,
four, five, six, for quick and friendly support, we're ready to assist you with all your passion sports needs, and it's got a nice picture
of upcoming track suit. So a customer may
have some questions about this. They
see the tracksuit. They think it looks pretty good. They want to know
some other things, what are colors when it's
launching, all that good stuff. And they can just add
our number to What's up, add us as a contact
and contact us. So this is where
the chat comes in. So if we go back to our
example, at the moment, we're using NANchat, but this can be
replaced with any chat, email, or any form
of communication. So the message comes in asking our AI agent what other colors
we've got, for example. And our AI agent is, as usual, going to use the
open AI chat model as the brains of the operation, so it can think and
access a neural network. We've also got some simple
memory and that's so that it can remember over time what
customers were asking. So if there's a conversation
going on with the customer, it knows what was asked earlier. It doesn't forget every
time a message is sent. And also, depending on
how we set up the memory, it could also remember
conversations with customers. But for now, we'll
set it up just to remember conversations
with the current customer. It's also going to get
information about brand images. In this case, we only need
information about the images. That's enough because
we've got the next tool. This is brand Images tool, and the next tool is a
customer documentation tool. Both of these are using MCP. This is one we set
up earlier to use MCP to get brand
asset information. And this is another MCP
client that will go to Pinecone Database to get
customer documentation. And so what this does is it
makes it very easy for us to grab the documentation
and search the documentation in the
database very quickly. Search information
about the brand images, if anything's asked about
the look of the tracksuit, send it back to
the agent and then send it back to our customer. So this is what we're
going to create. But the first thing
we're going to do is actually add our data into
the Pinecone Database. And that means we need to set
up the Pinecone Database. So let's go and do that now. So here we are at the
Pinecone homepage. What you want to do
is go to pinecone dot IO to begin with, and it will take you to this
homepage saying that this is the vector database. So if you click Start Building, it will take you here
and have an account. But just to show
you how it's done, I'm going to now create
another account. So once you go to login, it's going to do the usual thing of making sure that you've approved any
information you're giving it. So I'm going to
click Accept there. And it's going to ask
you some questions. So pick the one that
makes the most sense. So I'm going to say I'm building a small personal
project. Start for free. If you'd pick this one, you'd
start the standard trial. So we're going to
start for free. And what are you building? It's a drop down list. We'll
go with RAG slash agents. What kind of data do you have? Raw files, PDFs. That's what we're going
to load it up with. And how are you
building your solution? We're going to go with
no code, low code. Use automation platforms like NA ten without writing full
code. That sounds like us. Which no code lo code
platform are you using NA ten and get started. So the first thing that
will happen is it will give you API key that gets
automatically generated. That's one of the nice
things about Pinecone is it gets you up and running really quickly in the latest version. So I'm going to copy that
and store it somewhere safe. So once we're happy
that that's copied and we've stored it somewhere
safe, we can click Close. And it says, Welcome to
Pine Code Assistant. Start building accurate
question answering capability into your AI products. Get more relevant answers, manage your files with these, full control over your data. Let's accept and continue. What we've got here is
some documentation. This is the developer.
Quick stop. And if you follow
this, this will guide you through the process. The first thing it
asks you to do, it says, develop a quick start. NAN create an NAN
workflow that downloads files a HTTP and lets you chat
with them using Pinecone, Assistant and open AI. That's awesome.
Pinecone assistant is what's going to allow us to chat directly with
our documentation, essentially, it's going
to allow us to reach the documentation that we need via Pinecone as a database. It's good that it gives
us this quick start. Need your Pinecone API key, just click plus on that and put in the name
of your API key. In terms of permissions,
if you click on this, it will tell you more about
what the permissions are for, security, access management,
and all that good stuff. For now, I'm going to
give it all permissions. And bear in mind, what
we're doing here, we're generating a new API key, and that's why we're
giving it a name. The API key you saved previously is called
the default API key, but Pinecone needs a different one before
we can get started. Create key. And there is now go off and
save this as well. I've copied that. I'm going
to save that somewhere safe. Once you've done
that, and you've got a copy of that, click Close. And then we'll carry
on to the next step. So create an assistant
in the Pinecone console. Name your assistant
NN assistant. I'm going to open
that in a new tab, so we can always come
back to this one. Over here, I'm going
to first of all, duplicate this tab so we can come back to
the documentation. And then I'm going to
click Create an assistant. And if we go back
down here, actually, it's good to remember
that it said name your assistant NAN assistant, create it in the
United States region. Let's do that now.
Create an assistant. It's already in the
United States region, which is great. There you go. This is created an
assistant for us, and the assistant is where essentially we can interact with Pinecone so we can ask
it any questions like, for example, if we go down here, just like any other
chat messenger, we can say, What's Pinecone for? It says, No files found. If files are uploaded, they
may still be processing. We've got no information in there at the moment,
but when we have, we can come back
and actually test that we can get stuff from
the database at that time. Now let's go back to
our documentation. So we've done this part, check. The next part is, create
a platform workflow. Copy the workflow template URL, which is this. Let's copy. And in your NAN account, create a new workflow and paste the URL anywhere in
the workflow editor. Click Input add the workflow. Essentially, what
we're going to do is we're going to create a workflow that Pinecone
has already set up for us, which will allow us to input information
into the database. We'll get some test information, and we'll be able to test that we can retrieve info
from our database.
21. How to Install Pinecone Database: Back in NAN, I'm
going to go back, and I'm going to
create a new workflow. And I'm gonna call it Customer
Experience Chat Agent. And in here, we're going to
do exactly what it says. It said to actually
paste into the workflow, that link to the
workflow we just copied. I'm going to do that
by using Apple V, I'm on a Mac or Control V, if you're on a PC desktop. And it says, Workflow
will be imported from, and then the link, we say yes to the inport. And there it is. This is our workflow. And
what it essentially does, if I zoom in a little bit. In
fact, I'll zoom out first. You can see the
entire thing. This is the whole workflow, and
there are some notes here. But essentially, what happens is there are various stages
and they're numbered. Number one, upload files
to Pinecone Assistant. So when we click
Execute Workflow, it's going to there are some file URLs to some files
that Pinecone gave us. It's going to split
them into a list of files and download them and convert
them to MD file, which is basically a text file. And then if you
follow this round, if I zoom out slightly, this bendy line actually
goes back around here. And this says, if I
move the notes out of the way and zoom
in a little bit. So this actually says
upload to assistant. So the assistant is what we
were just looking at where I typed in a query and it
said there is no data. So we're about to put
data into the assistant. So this, once we've got the information added
to a text file, it's then going to send it here to test to check
the status of the file. And if the status is
available, it will wait. So essentially,
it's sending it to Pinecone to input
into the database. And there's some
code to check that the file has made it into the database part
here is all about. I sent it to Pinecone and
then it will just check that it's made it in totally
uploaded into the database. And if it's already
there, it's available, then we stop the workflow.
Our job is done. We input our information. If not, then it
will just wait for a certain amount of time,
go back and check again. So essentially, it's
creating an D file, a data text file, putting it into the database, checking that it's
got there okay, and waiting until that happens. And as soon as that has happened,
it will end the status. It will end the workflow. The second part
is the ability to chat to our database
via the AI agent. So down here, what we've got, if I zoom in slightly, is the ability to
chat to the agent. So we've seen this before. So we can ask any questions
of the agent. It's going to use as
usual AI chat model as the brains of the operation, and it's going to ask the
assistant whatever we ask it. But if we look
inside of the agent, you can see if we zoom in a bit, it says, You are a
helpful assistant. Use the Pinecone assistant
tool to retrieve data about the Pinecone releases using
the G Context function. Include the file name and file URL in citations wherever
referenced in the output. So essentially,
what we did is we entered information
into the database. I know this because
I've done it before about Pinecone releases. And so what it's saying is, if we ask any questions, it's going to use
the assistant tool, which is attached to the agent, which is this here to get any information that's
already been entered in. And we can later customize
this for what we but for now, we're going to run through we're going to click
Execute Workflow, which is going to input
information into the database, and then we'll come
back and test it. If we go back to
the documentation, it says that what we need to do is add Pinecone API
key to the workflow. In the upload file
to assistant node, select Pinecone API,
create new credential, and paste in your
Pinecone API key. So I'm going to
fetch the API key, and now I'm going to
follow what this says. We need to go and find
the upload file to assistant node and
select Pinecone API, create new credential.
So let's go and do that. So here's the upload
file to Assistant node. And in that assistant node, we need to select Pinecone API, create new credential,
and paste in the API key. So in here, we will now
click Create New Credential. I've already got an account
because I did this earlier. But what you would do is go in here and click Create
New credential, paste in your API key. Click Save. And so now
we'll get rid of this. And you can see, I've
got a second account, so we're going to
do this freshly. So if we go back to
the instructions, we've now pasted in the API key. And then it says, In
the Pinecone assistant, select credential for
bearer auth and then create new credential and
paste in the key into there. So let's find the
Pinecone assistant. There it is. Pinecone assistant. Auth and the same thing. I've already got an account
because I did this before, but you would create
a new credential, pasted in the same API
key and click Save. And you see down here it
says credential successfully created again inside
your personal space. So we'll close that. What we've essentially done is given the Pinecone assistant, the API key so it can contact and interact
with Pinecone Database. And then we've done
the same thing for the upload
file to assistant. So now we can write information into the
database and we can read information from the
database using our client here. So let's go back to
the instructions. So now, it says,
activate the workflow. The workflow is
configured to download recent Pinecone release notes and upload them to
your assistant, click Execute Workflow
to start the workflow. You can add your own files
to the workflow by changing the URLs in the file URLs node. Chat with your docs. Once the workflow is activated, ask it for the latest changes
to the Pinecone Database. So what that's saying is, if we go back here in here, remember I said that there
was a bunch of file URLs, and this is what it's going
to upload into the database. We'll doloavert it
to a text file, and then send it to database. So if I open this up,
zoom in a little bit. You can see here there's an
array and open it up a bit. You can see there's a bunch of URLs here to
different documents. You can see doc dot Pinecone. So what it's doing is it's
loading all of these documents into the database for us just to have some data to
get started with. So what I'm going to do is I'm going to
run it first so you can see what happens when
we load these and then we'll add our own
document to this list. So we'll execute the workflow. So we get a problem
with the node, and I've actually
seen that before. So if we go in, it says
credential is not found. So if we go into this, execute, we can see it's
worked successfully, and I'm not sure
why that happens, but it has happened
to me before. I had to run it myself. So now that we've done this, it's checked the file status. Let's execute the
workflow again. And you can see it says
Workflow executed successfully. So now that that's executed successfully, what's
the difference? The first thing that we
can do is go back to our assistant and check that there's
information in there. So if we go back, this is our AI, our assistant, Pinecone assistant
and if you remember, it said, error, no files found. Well, now if we ask again, copy this where it says, What is Pinecone for? And down here, ask the question, what is Pinecone
for It's thinking, and now it says Pinecone is a vector database
designed to enable efficient and scalable
similarity search and retrieval
operations and more. And the reason it's done that is because we've loaded
all the data in. However, if I ask
you a question like, so I've asked it, what colors are available for the
Passion Sports tracksuit. And if we run that,
you can see it says, The search results do not
contain any information about the colors available for the Passion sports
tracksuit Of course, it doesn't because we haven't entered any information yet. So what we're going to do
is go back to our workflow. And what we need to do is update these URLs, as the
documentation said, so that we can enter into here as instead of these documents, what we're now going to enter
into here is our document, which is actually an MD
file I created earlier, and it has our customer
documentation. So let's have a look
at that. So here you see we've got the Passion Sports tracksuit customer guide. It's in two formats,
PDF and MD file. The MD file is a text file, and that's because it couldn't convert the PDF when
I tried it earlier. So if we have a look at the PDF, just so that you can see
what it's all about. So this is the PDF,
and essentially it's Passion Sports customer
support knowledge base. It speaks about a Valere
tracksuit product support and FAQ document, and it gives a product overview, launch details where to
buy available sizes, available colors and styles, all the kind of stuff that
a customer could ask about. I also has frequently
asked questions like, when does the
Passion Sports track suit launch, all
that good stuff? So this is something
I generated earlier. And then what I did
was I converted that into a text file
called dot d file. And if you open that up, that's basically a text version
of the exact same thing. So nothing crazy there,
straightforward. So what we're going to
do now is we're going to add this text file into the
database using our workflow. If you're using Dropbox, just be sure to add one on the end because that's
what downloads the file. If you leave the zero,
it's going to send it to Dropbox instead
of downloading it. So now we're going to go
back to our workflow. And what we'll do
is open this up, put in a comma and quotes,
close it back again. That should be fixed, and
now we'll execute the step. And there you go. You can
see if we zoom in a bit, you can see these all
the URLs Pine Code supplied us for
their text files, and we've added our own here. So these will get loaded into the database once we
execute the workflow. So now let's execute
the workflow.
22. How to Train the Customer Experience Chat Agent: So, after all, I
actually had to change the URL to use Google
Drive instead of Dropbox. Dropbox is very tricky.
It doesn't work. So you can see here I've added an extra URL here that
goes to Google Drive, and then I rerun the workflow, executed it, and it's
all uploaded fine. So now when we go
to our assistant, and then we put in the question, which tracksuit do you it gives us some information
about our track suit. So it tells us that our information is uploaded,
our documents uploaded. So now if we go back
to our workflow, what we want to do is
we want to test this chat input and make sure it
does the exact same thing. So it'll do is click on
Chat come down here. We'll paste it in the
exact same question. What track suits do you have? For that to run. We can see it going through
the motions here. I went to the agent, used the chat model and went to
the Pinecone assistant. And as we can see, it's
come back and says, we have the passion sports
full or track suits available. It's a premium, men's track suit designed for comfort style, et cetera, and it's got a
lot of information in there. So we know that our chat works. So the beauty of that
is now what we have is a way to send chat messages
directly to a database. It's using MCP. But what we
don't have is a few things. So we want to include the brand guidelines
just to make sure that we're communicating on brand and we're pulling out the right colors
for the brand. They can change at any time, and they may not be in the
customer documentation, but they'll definitely be
in the brand guidelines. So if you can imagine
you're a customer service or customer experience rep, you'll want to be on brand, so you're communicating
whatever's relevant. So what we'll do is we'll
add our brand guidelines. So if we click on Tool, and then we go to MCP client tool. And what we want to do is
we'll have no authentication, but we want to put in
here as an endpoint our MCP server for
our brand guidelines. So let's grab that
and paste that in. So we're going to grab
a production URL, click on that, and it copies
it for us as we can see. Then we'll go back.
Paste that in here, this is for our
brand guidelines. Now the difference is there are various tools
to include here. And if I go to selected, apart from instead of all, you can see that
we can either get the guidelines or the images. Now, in this case,
we don't necessarily want to dig through
the guidelines because a lot of those will be in our customer support
document, in our database. But in this case, we
want the brand images because in case customers want to see other images and things like that, that
will allow us to get it. So this is a good example
of how MCP allows us to have one server that can give us lots of
different stuff, lots of different
things, and then we can just concentrate
on what we want. If we execute that step, and then it will say provide the data that would
normally come to the agent, come from the Agent node, get brand images,
execute the step. They go, so it's brought
back some more stuff. So it's brought back rows
for the actual image. This is the name of the query, and this is the image link, so it's definitely
grabbing that. So we can close this. So now
we've got our MCP client, which is actually brand images. So let's call this get
Images. That's great. So we've got our Get
brand images tool. In fact, let's call this our
customer documentation tool. So now we have our customer documentation tool
going to the database, and we've got brand images
coming from our local server. So those are the tools we need. So now we want our AI agent to do something a little bit
smarter than just saying, use the Pinecone assistant tool. So let's get the prompt
that we prepared earlier. So there's the prompt. And if we zoom in
a little, it says, You are a helpful
experienced senior front line customer
experience rep. You have studied the best
brands for customer service and the dialogue of how to speak to customers in the
best way possible. Use the customer documentation
assistant tool to retrieve data about
passion sports products using the Context function. We don't actually
need this anymore, I don't think, but I will leave that just
for completeness. Number two, greet the customer when
you first speak to them. Number three, respond to questions politely as
concisely as possible, simply answering the customer's
question, nothing else. For A, you can respond to a customer's statements
politely and very briefly, asking if there's
anything else you can help with in a natural way
without sounding repetitive. Don't ask if there's anything else you can help
with more than twice. Five, if they say there's
nothing else you can help with, wish them a good day and
thank them for reaching out. Six, if they ask
about brand images or examples of them or
examples of the look, you can use the brand Images
tool to answer the question. Seven, ensure you sound
natural and never repetitive. Eight, do not overly repeat the product name or brand name to avoid sounding repetitive. Nine, only answer questions related to the product
brand or things you can answer based on the customer
documentation assistant tool or the brand images tool. Ten, do not answer questions outside what
I've told you to answer unless they relate
to the products or things from the customer service documentation assistant tool. You can answer questions
that relate to this stuff, but may need some comparison
with other products. For example, why does it
take longer than Amazon? In these kind of cases, use your expert worldly
knowledge to answer and 11, have a warm understanding, conversational, yet
professional tone. For example, if you think
you'll disappoint the customer, say, unfortunately, or something similar in your response. So these are all things that I found from actually
running the assistant. And when I did that, I could see that there
was a certain tone that was coming back that
didn't seem very human. And so I've changed this
to feel a lot more human. If we zoom out now, we can see that it still
needs a chat input. That's red because
I reset the chat. So it may work by
executing the step, but usually I have to just run the chat and everything
will be fine there. So let's give that a whiz
and see how we get on. We're expecting the tone to change because as
you can see here, it says, we have the passion
sports fool or tracksuit. It's given full rundown. It's given lots and
lots of details here. But what we should see is that when we start
asking questions, it's answered in a lot
more of a human way. So first of all, I'll
start with something that isn't quite a question. So just as we've
asked, it starts with high and then how
can I assist you? So I'm asking I wanted to know what track sets
will be available. Let's see what it says. So you can see it's searching here. And it comes back with hello. The track suit available is the passion sports for
law track suit for men. It features a modern slim fit and comes in
the colors black, navy gray, and seasonal
limited editions. Sizes available range from
excess to double Excel. The launch date is set for 26
December 2026, boxing day. Is there anything else you'd
like to know about it? So I think that's very good, very professional, just
like we said in our prompt. So let's continue.
So now I've asked, Is there a ladies' version? It says, Hello, currently, the passion sports
fore tracksuit is offered as a premium
men's tracksuit. However, future collections may include additional
fits and styles, potentially including
women's versions. Let me know if you like
information. Or anything else. So it continuously asks you if you like information
or anything else. The documentation I
gave it this time said that there is no ladies'
version, only the men's, and it's kind of just helping the customer to
think that there may be some ladies' versions or there may be
some other styles, but it's not committing to it. I like that. I
think that's cool. Now, what happens when
I display some anger? So I've said, A, I'm
very angry about that. Let's see what
happens. So it says, I'm sorry to hear that you're feeling this way. How
can I assist you today? Seems a bit of a pivot, we could probably
have made it so that it could reason
a little bit and say, you know, sorry you're
feeling this way, and give a reason why
and go from there. Let's look at the
rules as they stand. So it did greet me, it says, greet the customer
when you first speak to them. Respond to questions politely
as precisely as possible, simply answering the question, nothing else. It's done that. You can respond politely
and briefly asking if there's anything else you can
help with in a natural way. I think it does sound
slightly repetitive, but it is in a natural way. And then if they say there's nothing else you can help
with, wish them a good day. Thank them for reaching
out. So we'll test that. If they ask about brand images
or examples of the look, you can use the
brand Images tool. So let's test that. So now we're going to ask you
can see cogs are turning. So now what we've
seen is because the Pinecone assistant actually has information from Pinecone, it's returned images
about unrelated stuff. So that's an important
point is you should always remove data from the database that's
not essential. So let's be more specific. It thinks. So let's see if it can find information
about the images. So I've asked, Are
there any more images of the track suits
so I can see styles. You'll see that
it's going through the motions, and there you go. If we zoom in, we've
got the mannequin, and we've got all
our other images in there. Let's
zoom out slightly. We drag list to aside slightly. We can see it's provided
a bunch of images, which is really
cool for the user. And then it's followed up
with Would you like me to provide more images or
help with something else? So, let's do another test. Let's see what else we've put
in our agent and test it. So we've said, if they ask about brand images or
examples of the look, you can use brand Images tool to answer the question.
It's done that. So we've said only answer
questions related to the product brand
or things you can answer based on the
customer documentation, assistance tool or
the Bandimages tool. Do not answer questions
outside what I've told you to answer unless they relate to the brand products or things for the customer documentation. And I've said, only if
they relate to this stuff, but may need some comparison. So let's go back and test
that it actually does that. So let's start with a
completely unrelated question. So it's come back
and said, Hello, I can help with
questions related to passion sports
products and brand. For general knowledge
questions like this, the Capital of France is Paris. Is there anything else related to passion sports that
I can assist you with? So it hasn't adhered to my rule. So let's see if we can
make that a bit tighter. Been a lot more
explicit here and said, Never answer
unrelated questions. For example, if you're asked, What is the capitul of France, let the customer know you
can help with questions about the brand or products.
Very the way you say this. So I say this to make sure that the agents are
not too repetitive, but still I'm stripped
about the dos and don'ts. So let's now execute that and we can see here
we can see on this side, What's the Capital of
France is the question, so it's going to put the same question through
because I executed it. We can see the answer now is, I can assist with
questions about passion sports products or the brand. If you have any
questions related to that, feel free to ask. So it hasn't and have
been bad or negative. But now we can see
it's a lot tighter, just by me putting in that rule. So let's test it some more. Let's see if we can ask it
some more unrelated questions. So I've asked it, how many
sides does a Pentagon have? Let's run. And again, it says, I can assist
with questions related to passion sports
brand and products. If you have any questions about
that, please let me know. So we can work on
this a lot further, get it to be a lot
less repetitive, but, you know, the
rules in there. Next, let's ask it some
questions about the product. So I've asked it. What
sizes do you have? Available sizes for
the men's track suits, and then it gives us
a nice list there. Let me know if you'd
like more information. So that's pretty good.
The other thing to note is there's actually no
memory here at the moment. Now, I like to put a simple memory in
there because that way, it starts to learn
what you've asked it, and you can have more of a conversation with it,
so let's test that. So if you see at the beginning, I wanted to know what track
suits will be available. I then asked, Is there
a ladies version? So I can just check
directly with the AI whether it even remembers what I
was talking about. And especially since there's no memory, I wouldn't
expect it to. So let's test that.
So I've said here, do you remember what I asked
about availability? Hello. I don't have a memory of previous interactions
in this session. Could you please tell
me again what you asked about availability? I'll
be happy to assist you. That's not very good
if a customer's actually asking questions, and the customer service
person doesn't remember. And so this is the reason
why we need memory. So I'll go up to the top now, and I'm going to add some
memory in here. Simple memory. The window length
is the number of interactions that
the model receives, past interactions that the
model can receive as context. I'm going to say 30.
I be a lot higher. I could put 100 I
could put 1,000, but just for the purpose
of this example, I say 30. And that means the customers if there's 30 interactions
with the customer, then this will remember all 30. But if there's 31 interactions
with the customer, 31 questions, for example, then it won't be in memory. And as I say, in real life, we could make this a lot larger. So let's go and test that. So I'm going to ask a
number of questions, and then we'll come back
and check that remembers. So I've said, I am Peter, and it said, Hello, Peter. How can I assist you with
passion sports products or brand information today? So if I say, so I've said, What
sizes do you have? Available sizes are, and
it gives me the sizes. And then I say, What's my name? So it's remembered my name. It said, Yes, Peter. How can I assist you further
with passion sports? And so now I'm going to ask
you a different question. So I've asked how
long for delivery? How long for delivery? And delivery times, UK, two to four business
days, Europe, three to six, North
America, five to ten, Asia Pacific, Middle East
and Africa, et cetera. That's cool. And
I'm going to ask, how does this compare to Amazon? Compared to Amazon, passion sports delivery may
take a bit longer, especially internationally
because Amazon often uses extensive
logistics networks. And multiple warehouses to
achieve faster shipping times. Passion sports focuses on quality and brand
specific shipping, which may result in slightly
longer delivery windows. Let me know if you'd
like more details. Pretty accurate, and it had
to use real world knowledge. That's an example of where
it would use the LM. Let's ask it a couple
more questions. I've asked it what style
the track suit is. A track suit has a
premium modern style with a sleek, slim tailored fit. It's made from high
quality Valor fabric and features subtle branding, making it suitable for both
casual and a Athlesiawar. Would you like to know
anything else about it? And I'm asking one
more question. How many questions have
we asked it? Let's check. We asked, Do you remember
my name? And that's one. How long for delivery, too? How does this compare?
Times and three, and what style is a
track suit? Four. I ask a couple more
to make sure that we've not asked about my name
in the past four questions. Track suit pants length for my American people
who call it pants. In England, we call
them trousers. Unfortunately, there's no
specific information about the exact length of
the track suit pants, and they provide details. Size guides will be available on retailer product pages,
which may have more details. Measurements can help
you with anything else. I ask one more. Remind me the launch date. Bash sports full or
tracksuits launching on 26 December boxing day with a global release online
and in selected stores. Let me know if you
need anything else. A more details. I'm
asking my name. Yes, your name is Peter. How else can I assist you today? It seems to have
remembered my name. We now have the ability
to chat to our AI agent. It remembers what we
say in simple memory. It can pick up our brand images, and it can work on our
customer documentation. So now it's your turn. What
I want you to do is think about the questions that your
customers ask repeatedly. You've got to think from the point of view
of the role that you're in your company. So if you're customer support, then you could use it to answer product and launch questions just
like I showed you. If you're working in
the ecommerce team, you could use it to handle
sizing and delivery queries. If you're the founder, you
could use it to reduce inbox overload during
launches for your team. If you're working in marketing, you could use it to
ensure consistent answers everywhere about the product. And if you're working
in operations, you could use it to maintain
a single source of truth. So start with one knowledge
source, one agent, and one customer channel, and that's how customer
support becomes scalable, accurate
and proactive.