AI for MARKETING AND BUSINESS: Master AI Automation and AI Agents with n8n | Paul Ashun | Skillshare

Playback Speed


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

AI for MARKETING AND BUSINESS: Master AI Automation and AI Agents with n8n

teacher avatar Paul Ashun, Deliver Projects On Time with AI Agile & Scrum

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Watch this class and thousands more

Get unlimited access to every class
Taught by industry leaders & working professionals
Topics include illustration, design, photography, and more

Lessons in This Class

    • 1.

      Introduction

      4:32

    • 2.

      How to Create your N8N account

      1:16

    • 3.

      Overview of Canvas and Menus

      8:52

    • 4.

      How to automate Emails from a Simple Form

      18:55

    • 5.

      How to use APIs for automation

      15:19

    • 6.

      How to automate Research with APIs

      10:41

    • 7.

      How to automate Text into Google Sheets

      13:02

    • 8.

      How to automate Images into Google Sheets

      5:59

    • 9.

      How to automate Design Prompts with the Product Design Concept Agent

      14:20

    • 10.

      How to automate Images and Concepts with the Product Design Concept Agent

      12:28

    • 11.

      Branded Product Images generated by the Product Design Concept Agent

      4:51

    • 12.

      The Project Planning Agent - Introduction

      10:03

    • 13.

      How to automate Project Plans with the Project Planning Agent

      8:33

    • 14.

      How to automate Waterfall (Predictive) Project Plans directly into Jira

      10:53

    • 15.

      How to automate Agile (Adaptive) Project Plans directly into Jira

      7:43

    • 16.

      How to automate Posts and Images with the Social Media Campaign Agent

      16:08

    • 17.

      When to Use Model Context Protocol (MCP) and Memory

      6:27

    • 18.

      How to use Memory to Post Fresh Content

      7:00

    • 19.

      How to use Model Context Protocol (MCP) to Share Data and Guidelines

      11:50

    • 20.

      Introduction to Retrieval Augmented Generation (RAG) and Pinecone Database

      11:55

    • 21.

      How to Install Pinecone Database

      9:57

    • 22.

      How to Train the Customer Experience Chat Agent

      17:30

  • --
  • Beginner level
  • Intermediate level
  • Advanced level
  • All levels

Community Generated

The level is determined by a majority opinion of students who have reviewed this class. The teacher's recommendation is shown until at least 5 student responses are collected.

258

Students

4

Projects

About This Class

AI automation and Agentic AI are reshaping how teams build, run, and scale modern workflows. As intelligent agents, AI-powered workflow automation, and no-code tools become more accessible, the ability to design autonomous systems is becoming a core practical skill.

This course, AI Automation and Agentic AI with n8n + ChatGPT + Generative AI, focuses on building real, working AI automation systems using n8n as the central orchestration platform. n8n allows you to connect APIs, large language models like ChatGPT, and business tools into structured, reliable workflows — often without writing traditional code.

Rather than focusing on theory alone, this course is built around hands-on demos that show how AI agents and automated workflows actually work in practice. You’ll learn how to design AI-powered automations, create agentic workflows, and coordinate multiple AI agents inside n8n.

This training is especially relevant for anyone interested in n8n automation, no-code AI automation, or looking to start an AI automation agency using proven workflow patterns.

What You’ll Learn

Introduction to AI Automation and Agentic AI

  • Understand what artificial intelligence and AI automation are in practical terms.

  • Learn how agentic AI differs from simple automation.

  • See why n8n is well-suited for AI-powered workflow automation.

n8n Fundamentals

  • Set up n8n quickly and understand the core platform.

  • Learn how the n8n canvas works and how workflows are structured.

  • Understand triggers, nodes, and execution flow.

Automation with n8n

  • Build basic automations such as sending emails to your team.

  • Automate product research using APIs.

  • Automate product research using no-code workflows.

  • Learn how to pass data cleanly between steps in a workflow.

Agentic AI Automation

  • Learn common AI agent patterns and architectures.

  • Build a Product Design Agent that generates design concepts.

  • Create a Project Planning Agent using a multi-step workflow.

  • Understand how agents reason, plan, and act within workflows.

MCP (Model Context Protocol)

  • Understand what MCP is and why it matters for AI agents.

  • Learn how MCP improves structure, consistency, and reuse.

  • Use MCP concepts in a Social Media Campaign Agent.

  • Generate both text and images using an AI agent.

Retrieval Augmented Generation (RAG) for Automation

  • Learn what RAG is in the context of automation workflows.

  • Build a Customer Experience Chat Agent.

  • Automate customer support by combining retrieval and generation.

AI Agent Orchestration

  • Understand the full AI agent orchestration workflow.

  • Learn how multiple agents work together in a coordinated system.

  • See how AI agents can support different teams through automation.

Who This Course Is For

  • Professionals interested in AI automation and AI-powered workflows

  • Builders using n8n automation and no-code tools

  • Entrepreneurs looking to start an AI automation agency

  • Teams exploring agentic AI for internal workflows

  • Anyone wanting to build real AI agents with ChatGPT and n8n

Key Learning Outcomes

  • Understand AI automation and agentic AI from first principles

  • Build practical n8n automation workflows

  • Create AI agents that perform real tasks

  • Design multi-step and multi-agent workflows

  • Orchestrate AI agents using n8n as a central system

Tools and Technologies Covered

  • n8n workflow automation

  • AI agents and agentic AI concepts

  • ChatGPT and generative AI

  • APIs, webhooks, and no-code automation

Final Outcome

By the end of this course, you’ll be able to design and build AI-powered workflow automation systems using n8n. You’ll understand how agentic AI works, how to create AI agents with ChatGPT, and how to orchestrate them into reliable, real-world automation workflows.

I'd like to thank God and my parents for making this course possible.

Meet Your Teacher

Teacher Profile Image

Paul Ashun

Deliver Projects On Time with AI Agile & Scrum

Teacher

What do students say?

"I liked the course. It was quick and easy to understand, but also complete. Thank you."

"The course gets to the point. Great course, it's short and show all the points to get the scrum certification."

"Excellent Material!Thanks for the clear cut training material."

I am grateful to have received this feedback from a fan because it explains exactly the value I hope to give you in my courses!

► Enroll in one of my courses today to save hundreds of hours learning the hard way and thousands of dollars on training courses like I did! ◄

What qualifies me to share my experience with you?

1. I can help! I am a Scrum expert and have lead projects as a software engineer, tech lead, team lead, scrum master, program... See full profile

Level: All Levels

Class Ratings

Expectations Met?
    Exceeded!
  • 0%
  • Yes
  • 0%
  • Somewhat
  • 0%
  • Not really
  • 0%

Why Join Skillshare?

Take award-winning Skillshare Original Classes

Each class has short lessons, hands-on projects

Your membership supports Skillshare teachers

Learn From Anywhere

Take classes on the go with the Skillshare app. Stream or download to watch on the plane, the subway, or wherever you learn best.

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.