How to build an AI Agent Personal assistant (no code)

Rory Ridgers builds a no-code AI personal assistant using Relevance AI and Make.com with six tools: email generator, email retriever, calendar event creator and retriever, and knowledge-base tools. The agent routes requests to the right tool based on user intent and works across WhatsApp, Messenger, and Slack.
Chapters
In this video, I'm going to be making an AI agent personal assistant that can be interacted with through WhatsApp, Facebook Messenger, Slack, kind of anything you can think of really. And it's going to have a few different tools that you can use to send emails, retrieve emails, make events on your Google Calendar, tell you the events that you have on your Google Calendar, add knowledge to a database, and also retrieve knowledge from that database. If you haven't seen me before, my name is Rory Ridgers and I'm an AI enthusiast and I'm passionate about helping business owners integrate AI into their business. So that's something you might be interested in, then do consider subscribing and stick around for the video. All templates that I use in this video will be available for completely free in the description. So if you're interested in building this yourself, then just check out the link in the description. So let's not waste any more time, let's get into it. Okay, so the majority of this video is going to be spent on Relevance AI. You can also see we have one little Make scenario here, but it's really, really simple. In this video, we're going to be using 6 different tools. We've got the email retriever tool, email generator, knowledge base retrieval, Add Data to Knowledge Base, Google Calendar Event Retriever, and Create Google Calendar Event. Now these are all custom tools, you won't be able to find them on Relevance AI, you're gonna have to make them yourself. But obviously you can just get them for completely free in the description. But first of all, probably the most simple one, the email generator tool, we're gonna have a look at that first. So if we hit edit, let's go into it, and you see the only inputs here are the user email request and the email recipient. So what these are is just the user email request is pretty much what you as a user, what you're going to want to send in an email. So can you send an email to Dada saying, are you still up for that meeting? The, are you still up for that meeting would be the email request. And then the email recipient is obviously who you're going to be sending these emails to. So you can see the steps in here. We've got retrieve data from knowledge, an LLM step, another LLM step, another LLM step, and then the send Gmail email block. So we're just going to have a look at the first one. The retrieve data from knowledge. And what this is going to do is I've uploaded a PDF with just email addresses and names, so sort of nicknames and then the email address. So like Rory Ridgers and then the emails Rory autonomously, and then I just put in 10 fake ones I got ChatGPT to generate. So what this is going to do is when, for example, a user says send an email to Dave saying are you still up for that meeting, it's going to put Dave in the email recipient input here. And then what this tool needs to do is go through the knowledge base find Dave and then find his email and use that later on in the tool. So that's all that does. It finds the email address of the person that you're going to want to send the email to. Just because I didn't want it so that every time someone is using this personal assistant, they have to sort of talk how they wouldn't usually talk. I don't want someone to have to say, send an email to dan@gmail.com, you know what I mean? I'd like them to just be able to say, send an email to Dan or Dave or whoever it was I said. So yeah, that's why I've done it like that. And then the next LLM step What that's pretty much going to do is it's going to take all of the data from here. So what this step does is it just returns that whole PDF, and then this LLM step is simply just going to sort through that and find the name that matches the email and output just the email. So we save that variable's email address. Then we've got another LLM step here. I've just said you're an expert at writing email body, and pretty much what this step does is it's going to take the email request input up here, and then it's going to essentially expand on that. So if, like I said, the user said email Dan saying are they still up for that meeting, what it's going to do is going to take are they still up for that meeting and then just expand on it a little bit. So it might say something like, hi Dan, hope you're well, just wondering if you're still up for that meeting, and then sign it off. I've said, so sign them all off with, in my case, Rory Ridgers. Don't include the subject line, just create the email body. So yeah, really simple. That creates email body. And then the other LLM step here, this is just going to create the subject line from this email body answer. So the output of this one is going to be put into this one, and it's just going to generate a really quick and easy subject line. And then you have a send Gmail email here. And then what we do is the to email— this is going to be the output of the first LLM that found the email address from the name. We're going to put that in the to email input. Then the email body is just going to be the output from that second LLM. And then the email subject is going to be output from the third LLM. So really, really simple. I'm just going to test it out quickly just to show you how it works. So if we put, are you still up for the meeting? So I've just put in the inputs, are you still up for the meeting? And then the email recipient, I just put Rory just because my email is the only email that's actually a real email on that list. So I can't really do it with anyone else. So We hit run tool. You can see all these steps working. And then, yeah, it looks like it sent it. So you can see the email subject line is meeting confirmation check-in. This is the email body, really simple. And you can see, yeah, from this output, this just outputs the whole PDF. Um, so the LLM now has found my email from that. So really, really simple. You can see I'm on my email here. Got it, no problem. So really, really simple tool. So just make sure to hit save, come out of that, and then we're going to have a look at this email retriever tool. And now I did use both these tools in my last video, so if you watch that video, you can just skip through this because I'm just talking about the same thing. So you can see in this one, the only input we have is the email summary request, and it's just going to be what the user wants to find from their emails. So essentially what this tool does is it's going to return all the emails you can input how many emails you want it to return. I think this one's set on 100 at the moment, so it's going to output all of the 100 emails from your inbox and then it uses an LLM step to find what you was looking for. So if your request was, has anyone emailed me about that project recently, this tool will return all of your last 100 emails and then it's going to use an LLM step to be able to sort through that data and find the one that's about the project in this case. So you can see 2 simple steps is just get emails from Gmail. Yeah, you can see we've got 100, so it's going to return 100 of the last emails from your inbox. And then an LLM step here. Basically what I've said to it is, you're an expert at retrieving data and summarizing emails. And then take the output of the most 100 recent emails. So this variable here, which is this one, and based off the user's prompt, summarize the emails that are relevant to them. And then I just gave it a couple examples. So you can see, did Katie email me about that recent project? And then it's going to have to search through the emails and say, Yes, she said she should be finished with it on Friday. And then another one, has Tim scheduled this meeting yet? And then it's going to search for the emails again and see if Tim's mentioned anything about a meeting, and then output only the summaries that are relevant to the user's query. So we're just going to test this one time. We're going to say to it— so I've just said to it, has any software companies emailed me recently? Just because I get loads of sort of promotional emails and stuff from software companies, so it's just quite a good example to show you sort of what it can do. So you can see that first block has outputted already in the LLM step, still working. Okay, you can see this is what is returned, uh, so Replit, OpenAI, Stripe, Calendly, Agenteve. Okay, yeah, perfect. So this is what you're going to see when you're talking to the agent through WhatsApp or Messenger, whatever it is. So we're just going to hit save, come out of that one. So those two tools are really, really simple. So we're going to go into this create Google Calendar event one. So if we hit edit, okay, you can see here the user inputs we have is event title, start date and time, end date and time, and attendees. And now the first step that we have to do here is essentially what we did for the send emails tool, is we have to retrieve the data from this email list with names PDF to be able to find the email that matches the name, just because later on we'll need to put that for the attendees. It has to be a valid email address, so if user just inputs Dan again for the attendees then it's going to go through, find Dan's email address, and we can put that into the attendees box. So yeah, you can see exact same as before. It's going to retrieve that data using LLM step to find the email that matches the name. And then right here what we have is Python code, which is going to be able to return today's date. And the reason why we do that is because when a user inputs the start date and time and the end date and time, they want to just be able to say today or tomorrow. They don't want to have to put the exact date every time because that's just annoying. So what's going to happen here is this Python code is going to run, it's going to return the date of today. Then there's an LLM step here, it's going to be able to take the user's input for the start date and time, and then take the current date here. And then we have to format it into this format here. So we've got years, months, days, then a T to separate them, then hours, minutes, seconds. And then for me it's plus an hour just because of my time zone. So you can see here, if the user input is today at 5 PM, then this is the output here. And we need to do this because for the Create Calendar Google Event tool in Relevance AI, it just needs to be formatted like this, the start date and time. So that's the only reason we do it like that. So we've got an LLM step that does that for start time, and then we have another LLM step that does that exact same thing but for the end time. So if the user inputs today at 5 until 7, then it's just going to do this exact same thing but put it at 7 instead of 5, so we get the end time. And if the user doesn't specify end time, it's just going to add an hour to the start time. So we can just assume that the meeting's an hour. So then we have this create Google Calendar event, really, really simple. So all we do now is we literally just have to input the variables that we've got on. So the calendar event title, that is literally just the user input, and the start date and time, that's what we got from the LLM. Same with the end date and time. And then these attendees email list, it's just going to be the attendee email answer that we got from the LLM. So really, really simple. I'm just going to show you how it works quickly. We can say, okay, so what I've done, I've just said for the event title, meeting about project, the start date and time is today at 5, the end date time is today at 6, and the attendees is Rory. And now you aren't going to have to write out these inputs when you're actually talking to the agent, if that makes sense. What we're going to do is when we put this into the agent, we're going to be able to tell it to take the initial user inputs split it up into these inputs. So something like this, so meeting about a project today at 5 with Rory, you would just be able to say to the agent, can you schedule a meeting for me today at 5? It's about the project with Rory. And then the agent will be able to split it up into these different inputs. So you won't have to type it out like this. You won't have to write today at 6, today at 5, for instance. So yeah, that'll make a little bit more sense later. So for now, we're just going to hit run tool. It's retrieved the data from the knowledge base for the names. And it's outputted Rory autonomously. So this has just worked, the Python code. You can see here today's date, the 19th of October, and the LLM step has outputted, yeah, the start time, and the other one has outputted the end time. And then it's put it all into this Create Calendar step, and you can see we got the event ID here. So I'm just going to go over to my Google Calendar and see if that's actually worked. Okay, so you can see I've got a couple test ones on here, but you can see this one meeting about the project, 5 till 6. So obviously I'm the attendee for this, so there's no other attendees because I've used my own email for my own Google Calendar account. So that's why it looks like that. But yeah, that's worked perfectly. So we can just hit save, come out of that, and now we're going to look at the retrieve— the Google Calendar event retriever tool. So we're going to hit edit, and now this is the one that's going to use the Make.com scenario. So you can see the user inputs here are only start date and time, and this is because to be able to trigger this tool, you're gonna have to say to the agent something like, what meetings have I got coming up tomorrow? Or we— what meetings have I got for the next week? So really the only thing it needs is the start date and time. So the first step we have here is again the Python code to get today's date, and then an LLM step. And this again is just going to be able to format it into the right format because we need to put it into the Make.com scenario and it needs to be formatted the exact same way with the years, the months, the dates, and then the time. So what we do after that is we tell the LLM step to output another variable of this exact same time but 24 hours on. So this way it's going to do the full day, so today, tomorrow, next Thursday, whatever it might be. It's going to output these two variables and it's going to separate them with a comma. So I've put an example down here, so 24 hours on, you can see the 17th, and then the 17th but 24 hours on separated by a comma. And now this comma is important and I'll show you why in a sec. So we've got this API step here and this just links to a simple webhook on make.com. So if we come over to Make, this is what the scenario looks like. And you can see we've got the webhook here. And if you don't know how to set up the webhook, all you're going to do, place down the webhook, you'll get this URL here. You can just copy that, change this to POST, put the webhook URL in here. And for this, I put the body as raw. And then the content that we're actually going to be sending through the webhook is the start and end time answer, which is what we got from the LLM step here. So the two times separated with a comma. So you can see the first step here is set multiple variables. So essentially what we're doing here is we are separating this one variable, which is the start and end time, which is going to look like this. What we're doing is we're separating that into two variables, and the way it knows how to separate this is with the comma. So you can see here how it's set up. If we've got a split function here, so it just looks like this, and it's going to be split by the comma there. And then we've got a get function here and we put in number 1, so it's going to get the first sort of variable of these 2 variables after it's been split up. And then this one gets the second one. And we've got a Google Calendar search events node here, and we've got to connect this up to our Google Calendar. Really, really easy. And for the start date, we just put in the variable that we got before. So you can see this, probably a better way of showing you, this is how it comes in through the webhook. You can see it's separated by a comma here, and then it's split up into these 2 variables. So we put the start time into the start date box the end time into the end date box, and then updated from, I just put in start time. We haven't put anything for the query. We select all for these event types, and then that's pretty much all you're going to do. We've got 10 in there, so this is just the maximum amount of results it can output, is 10. I've just put it at 10. You can put it wherever you want. If you've got loads and loads of meetings on there, you might want to set it to something a little higher. So this Google Calendar node is going to give us a bunch of different outputs, and we just want to use this array aggregator and we just want to get the total number of bundles, the description, the summary, the start and end times. These are the attendees, and that's it. So we just tick them boxes, click OK, and then what we do is we set up a webhook response and we just put in the output from the array. So basically what's happening here is the two times are being sent through the webhook, it's being split up into two separate variables, the start and end time, then all the Google Calendar events that fit in those start and end times are being outputted. We're using the array aggregator to only get the outputs that we want, and then we're using a webhook response to send it back to Relevance AI. Then once we've sent it back to Relevance AI, we're just going to use this LLM step here to basically just summarize the output of the Google Calendar scraping. So yeah, so what I'm going to do is I'm just going to give you a quick demo. So we can put in today at 5 again, then we hit run tool, and we can see this working. So the Python code should give us today's date. So yeah, today's date, the LLM step like this, giving us the two times separated by a comma. And then we triggered the webhook. You can see this is already triggered, so it sent in this value here, so the two times as one bundle, and then we separate them like this so that they're two separate variables. And then this Google Calendar node output all of this. It's just all the events that are happening in that time range. So I think for me it was literally just one, so there's only going to be one thing. And then the array aggregator, you can see, you can see what that's done is it's literally just given us just the variables that we want here. So the end time, the start time, the summary, the attendees— yep, you can see the attendees, the description, everything like that. And then the webhook response has given us a status of 200, which means that it's worked. So it should have sent it back over to Relevance AI. You can see this is what we got from the webhook response, all of this data. We don't need to be able to read this because the LLM step is going to summarize this for us. You can see, yeah, you have a meeting scheduled about a project on October 19th from 5 till 6. This meeting will include Rory from Autonomously AI, who is the organizer and has yet to respond. So it's absolutely perfect. That's the one that we just set up, the meeting. Yeah, that works perfectly. So a little bit more of a complicated setup, but obviously you're going to have all these templates available for free, so don't worry about that. So We're gonna hit save, come out of it again. And now we have these last two tools, the Add Data to Knowledge Base and the Knowledge Base Retrieval tool. So what we're going to do first, we're gonna have a look at the Add Data to Knowledge Base tool. So we've got 4 inputs here. We've got a client name, project, notes, and status. And there is literally just one step for this, which is quite nice. So the way it works on Relevance AI is you can upload a table. So I just made a quick Google Sheets with 4 columns. One was client name, one was project, one was notes, and then one was status. And just put a couple of fake clients and projects in there, and then you upload it to Relevance Relevance AI. And then I can show you here what it does is it basically makes a table on Relevance AI for you that you can add data to. So yeah, these are just some test ones that I've put in, but these were the ones I started with. So James Smith, Sarah Carter, John Mann, just random names. And then projects, you can see here, add some notes into them and then put a status on them. So what we do is we input the client name, the project, the notes, and the status. And you can see we have this insert data to knowledge tool and then, then you have nothing in these speech marks here. It should just look like that for all of you, for all of these different variables. And then what you do, and then just add these two curly brackets and type in the variables that you want to put in here. So for me, it's client name. I think that's what it was. Yep, client name. So we literally just put that in there, and then all that's going to happen is it's going to put the client name variable into the client name column. So really, really simple. And again, with this one, like one of the tools before, you don't have to input all of these. You don't have to say it like a robot, like list out the client name, the project, the notes, and the status. You can say it like a human, and the agent, when we put these tools together, will be able to sort it into the right input. So you could just say to it, hey, I've got a new client, they're called Brandon Smith, we're doing some SEO work for him, and he's paid upfront X amount, you know. So it's going to be able to sort it to do the client name, the project, the notes, and then the status by default is in progress. Unless you state otherwise. So yeah, that's a really, really simple tool. So I'm just going to hit save. And then we come to the last tool, the knowledge base retrieval tool. So for this, we literally just have one input and it's knowledge base query. So this would be when a user says to the agent something like, what's the update on that Brandon Smith project? Or, or what projects do we still have in progress? Something like that. That's going to go into the knowledge base query input. And then we have two steps here, the retrieve data from knowledge base. So what this is going to do is basically just output all of the data from the knowledge base. Really, really simple. And the LLM step is just going to summarize that data and take your input and find the relevant data that you're looking for. So I'm just going to give you an example to show you. If I say— so I've just said to it, what projects do we still have in progress? We're going to hit run tool. And then, yeah, this has output all of the data from the knowledge base. And then the LLM step has outputted all of these projects that we still have in progress. So really, really cool. You can basically just ask it anything about the knowledge base. So yeah, that's all of the 6 tools there. None of them are too complicated, which is nice. And these are just sort of the basic tools that you can have with a personal AI agent. What you can do as well is add some more industry-specific tools. So for instance, you could add some invoice generator tool or a special type of meeting scheduling tool for viewings or anything like that. So this is kind of just the basic tools that you can add to it. And the whole point of it is that you can grow and add more to it. Okay, so what we need to do now is we need to put these all together into an agent. So I've already made one here, but if you don't know how to do it, come over to Agents and you click on New. But I'm just going to click on Edit to show you what I've done inside it. Okay, so you can see we've got the agent name, it's just Personal Assistant. The agent description is just personal assistant that can send and retrieve emails, make calendar events, and retrieves data on projects and clients. So the agent name and the agent description is kind of just for you, it doesn't really matter. The main bit here is the core instructions. So you can see we've got quite a bit in here, and you don't have to read all of this. I'm going to have this entire prompt for you when you go to get the templates for this video. So basically what we've said to it is you're a helpful assistant for a business owner that can perform a variety of tasks, and we've said what it can do. And then for the task, basically the only thing this agent needs to be able to do— it doesn't actually need to be able to do any of these things, all all it has to do is be able to recognize user's intent, know which tool to use, and how to take their inputs and input that into the tool. That's pretty much all the agent actually needs to do. So that's what we've said to it. You need to be able to recognize a user's intent and then use the appropriate tool to fulfill that request. And I've said, you also have to be able to input the correct inputs into the tool for it to work correctly. Here's a breakdown of the tools and how to use them. So then here, it's just a breakdown of the tool and how to use them. So some of these are kind of self-explanatory, so it just needs to put the user's inputs into the inputs it would expect. But then some of these are a little bit more complex. So the— like, so you can see here, the create Google Calendar event is a little bit chunkier, there's a little bit more complex just because it needs to be able to input the right times. So if someone says tomorrow at 5 and doesn't specify an end time, it needs to be able to put tomorrow at 6 in the end time input in the tool because the tools still need an input. So Yeah, if you want to pause it and read through it, then feel free, but I'm not going to bore you and read all of these out. So then the flow builder, we don't really need to look at that because there isn't an actual flow to this. All it is is just the agent recognizing the user's intent and then using the right tool. So not really any flow. And then in tools, of course, you need to put in the tools that we're going to be using. And just a heads up, you need to change all of these from— they'll be as default be on approval required. You just need to set them all to auto run. And then now we can actually test this personal assistant out. So let's just start off simple, say send. And so I've just said to it, send an email to Rory asking if he has an update on the project. We should send. And then you can see one step from the background, so it's using the email generator tool, which is perfect. And it said, I've sent the email to Rory asking if he has any updates on the project. If you need anything else, just let me know. Yeah, we just got an email through. Hey, hope this message finds you well. Want to check in and see if you have any updates on the project. Perfect. So then we can just say to it— so I've just said to it, have I had any emails from OpenAI recently? Because I do believe I got sort of a promotional one a little while ago. So we're going to see if it returns that. So you can see, using the email retriever tool, which is perfect. And we'll just give this a second to think. So it's using email retriever tool now. And then, yeah, you've received several emails from OpenAI recently. Here are the highlights. It's given us the date, and then a summary of all of the emails. So perfect. Now we're going to see if we can schedule an appointment with it. So we're going to say— so I said to it, schedule a meeting with Rory tomorrow at 6. So one step performing in the background is using the Google Calendar create event tool, which is perfect. Saying it's used the tool, and then I've scheduled a meeting with Rory tomorrow at 6 PM. If you need anything else, feel free to ask. Yeah, as you can see, today is Saturday. Wednesday and schedule us a meeting for 6 till 7 tomorrow on Sunday. Perfect. So now let's say to it, do— so I said, do I have any meetings tomorrow? Should be able to pick up that one that it just scheduled. And it's tried to use it twice and it says there seems there's an error retrieving the events for tomorrow. Just realized that the Make.com automation wasn't turned on, so I'm just going to do that. So I'm just going to ask it again, do I have any meetings today? So I just said, do I have any meetings today? And yeah, you can see it said I've got a meeting scheduled from 5 till 6. Perfect. So now we're going to say to it, I've got a new client, and give it some information and see what it does. I said to it, I've got a new client, his name is Dave Smith, and he wants us to build him a website. He's already paid the first deposit. We're going to see what it does. So instantly, yeah, I've added the new client Dave Smith to the knowledge base along with the project details for the building a website. The status is set to in progress, and I've noted that he's already paid the first deposit. If there's anything else you need, then let me know. So we're going to say to it So we said to it, has anyone paid in full yet? Because I think in some of the other notes there was something about payments. So yeah, you can see Steve Hall, SEO project, he's paid the first payment but still has 2 more to go. Dave Smith, he's paid the first deposit. And then James Smith, web design, the project has a total budget of £3,500 with 50% to be paid up front and the remaining 50% upon project completion. So yeah, perfect. And now you might be thinking Okay, but how do I integrate this into WhatsApp or Messenger or Slack or things like that? So you can see down here we already have some integration. So Outlook, Gmail, LinkedIn, WhatsApp, WhatsApp Business, HubSpot, Freshdesk, Salesforce, webhook, Zapier, and an API. So if you wanted to just add this straight into your WhatsApp, you could do that. Hit WhatsApp, but you can see you need the team plan to do that. If you want to add it to WhatsApp for Business, you can just put in your WhatsApp Business account ID here and it will take you through all of that. But if you want to add it into some other type of thing, what you can do is go to the API step here. You can just set up a really, really simple Make.com scenario. I'll link one of my other videos where I connect an AI agent to Slack using this method, and you can pretty much link any other software to it using the exact same method. So that can be, you know, Facebook Messenger, Telegram, anything like that. You can do it through this API. So you just set up a webhook on mate.com and then set up a Facebook Messenger trigger and then set up a webhook response to feed it back to the agent. So really, really simple. If you want to go watch my video on how I integrated a Relevance AI agent into Slack, that'll probably help you quite a lot if you want to integrate it into one of the other platforms that isn't listed here. So that's it for the video. That was a pretty basic AI agent personal assistant It can be built on way more, obviously still really, really cool at the moment and can do a lot of things. As I said previously in the video, it's made to be built on, so you can add some more industry-specific tools or some of the tools that you think are really, really going to benefit you, or maybe tools that your personal assistant already does. You can add them to the AI agent. So if you were interested in getting ahead of the curve and integrating AI into your business, then I've left a link to my website where you can book in a call with me, or I've also put my email in the description and you can just shoot me any questions that you have about integrating these AI systems into your business. So thank you to everyone that made it to the end of the video. Consider subscribing to follow along my journey. And if you've got any suggestions for videos that you'd like to see, please do just put them in the comments.
More from Rory

Dynamic Workflows are crazy. This is how to actually use them (beginner's guide)










