An AI Phone Assistant for Your Business? | Vapi x Make Tutorial

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hey friends and welcome back to the channel I'm Dona and in this video I'm going to show you how you can build an AI Voice Assistant that you can directly uned on a phone number and use for your own business this can apply to any business such as Hospitality Health Care insurance or real estate I will take the example of a real estate company and build an assistant that answer properly details questions and allow the user to book an inspection time at the end of the video you will be able to build one for your own business and enable the power of AI and technology to save time on repetitive tasks and also increase the revenue of your business to build it I will be using vapy make.com and air table and you will find the prompt the make Blueprints and air table structure in the description of this video if you want me to build it for you feel free to send me an email or book a consultation call and I will be happy to help you can also leave a comment to tell me what you're building with this technology now let's dive into the demo and see the end result hi Emily this is Donna hi Donna how can I assist you today are you looking for property details or would you like to book an inspection um I would like to get some more information about the property I saw sure I can help you with that could you please provide me with the address of the property you're interested in um so the address of the property is 44 chats with Avenue in Chatswood just a sec great the property at 44 chatwood Avenue chatwood has five bedrooms two bathrooms and one car space and is there um is there a swimming pool in the property there is no mention of a swimming pool in the property description any other questions about the property or would you like um yeah I would like to book an inspection for um for the property what are the available times just a sec the available inspection time for Saturday the 13th of July 2024 at 12:00 p.m. to 12:30 p.m. and Wednesday 17th of July 2024 at 12:00 p.m. to 12:30 p.m. which one would you prefer I would like to B for the for the last one for the second one give me a moment the inspection for the property on the 17th of July 2024 at 12: p.m. has been successfully booked is there anything else I can help you with um no that's it pretty impressive right now let's see what we have have in the air table database as we can see here there is my name that has been registered with my phone number and also the property ID and the viewing time that I've just said on the phone now if I go to another tab I can see the list of all the different properties that the real estate offers and also on the S Tab I can see the transcript of the audio call and all of the different audio call that has been happening for that specific number I also created into the leads database phase I created a view to be able to see all of the different inspections that have been booked by the user so if I go back into the booking that has been made for the 17th of July I can directly go here go to the 17th of July and I will see the booking right here the name the address and the phone number before jumping into the implementation let's have a look at a diagram for you to understand better the architecture and see how everything fits together I would also recommend to take your favorite note tool whether it's notion Apple note or a simple notebook and a glass of water or a cup of tea or coffee as we'll be diving into each separate tool also if you like this type of content please leave a thumb up and subscribe to the channel I will be making more videos like this one and making a video like this took me quite some time so it's a way for me to see that you want to see more content like this so let's go into the diagram right now so the first part is the incoming call received when the caller calls the number and in there we will call directly a web hook in order for us to get the assistant and we're not just getting the settings of the assistant but we are also saving the phone number so in the database of the leads that we can see right here you will have the phone number of the person you won't have any name or any property or viewing date or anything else but we will have the phone number in there and this allows the real estate company to get all of the different phone number that have been calling them once this happens we will also get all of the different settings that have been made inside vapi and after that we are able to grd the color and ask how the assistant can help this will also allow us to inject the first name of the person in case it is in the database already if the person already called before we will be able to know their name and therefore say hey Dona how can I help you today for example so once this happen the AI Voice Assistant will ask the address of the property that the person is interested in to get more information or book viewing so in that case the caller will simply give the properly address and then the AO assistant will tell the user that the assistant is currently searching for it and in order to search for it we will call a second function that is get property details that is another web hook on make and that get property detail hook will return return the details of the specific property that the user has been asking from the address so will do like an address matching and figuring out okay which properly the user is actually asking about and returning that one properly so then after it found it it will ask the user if they have any question about the property or if they want to book an inspection if the user asked more details about the property it will automatically use the different information that have been retrieved from the get property detail function before and it will use that as the context and answer the question into a loop so it will keep answering question until the user ask explicitly or the AI says hey do you want to book an inspection you have been asking several questions now do you want to book an inspection once this happen the caller will ask to book the inspection and will give all of the different details that the function needs to book the inspection so there is another book inspection function on make and that book inspection function needs the name of the person the property ID which has been retrieved already before when the user was giving the address it automatically returned the property ID so that's not something that it's going to be asked to the user and also asking which viewing time is more suitable for the person once that happen it will call the make book inspection web hook and that web hook will automatically save all of this information into the air table database as a lead so it's basically right this one right here and once that happen it will return a successful booking call from the make function uh book inspection once that has been added to the database it will return a successful booking response and then the AI agent will be able to ask if they need any help with anything else if the users say yes then we go back to the beginning when we ask which property they are interested in or wants to know more information about otherwise we will simply say thanks to the caller and end the call there's something really important to note here is that once the call is ended it will call again the get assistant make web hook with the transcript of the whole conversation and that will be saved directly inside air table as well so that's actually the third tab here transcript where we can see all of the different transcripts and this is really really useful for the developer building the AI voice agent because you can see what happened during the conversation and why it might have not worked as expected Ed but also for the real estate agent to be able to see the persons and what they asked explicitly in the conversation to see if they're more interested into school catchments for example or more into other topics in order to create the voice assistant we will be using a tool called VY you will find a link in the description of the video for you to register this video is not sponsored by vapy but this will be an affiliate link so I will get a commission every time you register through it so if you want to help me with the YouTube channel I would highly appreciate if you could use that link rather than using just vy. a which in the end is exactly the same now let's dive into the tool and see how to set it up so the first thing that you will see here when you go to the platform and assistant on the left is that you have the list of all the different assistants that you created and in this case here I will talk about Emily because Emily is the one I used for this video and at the top here you can see the name of the assistant you can directly call it inside the tool by clicking here to talk with Emily and here you can also see the ID of The Voice Assistant we will come back to that later uh what's pretty good here is that you can see the cost of the assistant per minute so here in this case it's 14 cents per minute and you can see where the money is going so in this case 5 cents is going to vapy 1 cent is going to the transcriber some is going into GPD 3.5 turbo and the rest is going to the text to speech you can also see the latency on the right and this is really important because you want to have this as low as possible to make the conversation feel natural in this case here it's 850 milliseconds and you can also see where the latency comes from this is really really useful if you want to figure out how to improve your latency and at the same time improve the cost because these are two main important things that you want to consider when you're building a voice assistant and then you have the model so in this case here I can set up the first message um I set it up to this uh first message because we will see later why but basically from make I will be able to add some variables directly here and replace the different variables so the message the so the first message will be directly handled in make and will be replaced right here then I have the system prompt we will come back to that in a sec then you have the provider on the right which here is open Ai and the model is GPT 3.5 turbo so this is what is going to be used to create the message and answer and then will be and then that will be transformed to voice with another tool and finally you can add some knowledge base so if you want to add some documents about the company for example the opening time or the closing time or some address or information you can directly added in here then you have the temperature the maximum amount of token and if you wanted to detect emotion in my case here I decided to leave it default but you can play around and test and see what's better for you and then you have the system prompt so here is where you will Define your big prompt and exactly what is the assistant about what it should do the different steps how it should act and so on so let's dive into this now the first thing that I want to do here is Define a role because I want the voice assistant to know what are their roles and I say you are Emily and assistant for Dream Home realtors in Sydney you assist clients with inquiry about property listing and schedule inspections and then you have the task so here I specify the different steps that I want the voice agent to do so the first step will be to GRE the color by their name otherwise request their name the second one is to ask them where they need assistant with and say that the assistant can either answer questions about a property or book an inspection then I will say to ask for the add address of the property they're interested in and so on and so on I will also tell them to which functions to use in order to get the property details for example so here I will specifically say use the get property details function to fetch details about the the property so that's something really important to so that the assistant knows which function to use even though it's kind of by default but I I really like to have it written into the the prompt to make it even more obvious and then at the bottom here I have some specific things so here I will say for example uh you operate in Sydney's time zone or keep interactions concise clear empathetic and customer focused so all of these are really important to give the tone so that the assistant knows what tone to use and how to interact with the users and also at the bottom I added something that is really important that helps a lot is to say that before calling any function tell the user you need a bit of time to process their request this is really important to avoid this really awkward silence while they start the function because otherwise it doesn't do anything and it's just wait and it can be really weird for the user to just wait and not know what's happening so in this way the assistant will say please wait a moment or please wait a sec or give me a sec while they are calling the different functions so for example to book the inspection or to get the property details of course this prompt Is For Real Estate but you can pretty much adapted to any businesses or any use case that you need and just have to change the different orders and change what you expect the assistant to do the second tab here transcriber is about transcribing the voice of the user of the Coler into text to then be sent to open AI the third tab is voice and this tab is really important because it let you decide which voice you want to give to the agent and you have multiple choices of providers you have for example the open air one the Deep gr one Azure 11 labs and even though 11 Labs is a bit more expensive I have to admit but the quality is 10 times better so I would highly recommend you to use 11 Labs that's what I've been using it's a bit tricky to find really good Australian voice but I find it Matilda is pretty good otherwise if you're searching for British English or American English you have way more choices you can also select this ad voice ID manually and then go through 11 lab and select SE a voice that you like and then paste the ID here and also you can add your own voice if you want to by simply going to 11 Labs recording your voice and then putting the ID here I haven't tried that but I know that this is also an option then you have to decide a model so in this case I select 11 turbo V2 and then you have additional configurations so here you can set up a background sound so for example if you select office here you will hear a background sound of an office this can be useful if you want to make it more real but in this case I decided to turn it off the next option is punctuation boundaries and this is something that make your agent way more natural I haven't been using that before but I recently discovered it and I have to admit it really improve the quality of it so what it's going to do basically is it's going to add punctuation and tones on the following symbols that you add here so for example here I added a coma or a DOT or a mark point and all of this will make the AI have way more natural voice what you can also do in your prompt is you can tell them to add some specific punctuations of specific symbols like for example uh here you have some uh pipes and some other type of symbols or a full coma that will stop and wait for a few seconds so this is really useful if you want to make it more natural and I would just advise you to put some basic punctuations like comma Mark point and Dot which will really help you to make it sound more natural at the beginning under punctuation boundaries you have three other options for filler injection enabled back channeling enabled or background the noising enabled I've tried to play around with them but didn't find them really useful so in this case I just turned them off under that you have stability which allows you to make it either more expressive or more monotonous putting it to an extreme you will have something completely unreliable and on the other side you will have something completely monotonous so I think like somewhere in the middle between 0.5 and 0.6 is what I would recommend under that you have Clarity and similarity for that I will recommend to use 0.75 I've been playing around and I feel like this is the best value you can also play around if you want to try and see what adapts best to your business and to your use case but for me 0.75 is what was the best and then after that you have some other parameters that I would just leave it like it was like default the next tab is functions but I will dive into that later in this video for now I will just show you Advanced and Analysis in advance what you have is some privacy parameters so I would highly recommend you to turn on recording enabled you might have to tell the user while they're calling that they are being recorded for legal reasons but I find it really helpful in order for you to debug and see what happens because if you go into the C logs here and you scroll down you can see all of the different calls that have been happening and you can also listen to it if you enable that option so that's really useful as well for debugging and knowing what's what happened and if the quality of your calls is good so if you go back to Advanced here the Hippa compliance this is what you would enable if you want none of the recording to happen and also none of the conversation to be recorded that might be required for some assistant that has to deal with some private data so I would leave that up to to you but for now I would just not enable that and just enable recordings after the Privacy you have the pipeline configuration here I mostly left everything intact like as it was before so by default I would highly recommend you to not really change much in there except if you really know what you're doing or if you want to do some experiment under the pipeline configuration you have all of the different messaging details so for the server URL you don't need to put anything here for the client messages also don't need to put anything here in my case I just left it by default but this is not used anyway and finally in server messages you want to have end of call report status update and function call as this is when your hooks your web hooks are going to be called and if for example you don't have end of call report then it won't call anything at the end of the call and you won't be able to have the transcript so this is something really important to to add if it's not there yet then you have the voicemail message so this is something that the AI will say when someone calls and get into the voicemail and finally the end call message which is the message that the call will always end with so the assistant with their voice will say that message at the end of the conversation now that we have set up our assistant the next step is to create a phone number that is going to be linked to that specific assistant and for that you have to go here to phone numbers on the left and you have two options the first option is to create a phone number via vapi so you will click here on ADD and you will directly put the area code and it will create for you a phone number and you will have to pay $2 per month directly on vapy there is another options here where you can import a t number as well so you will have to put the tro phone number account S ID the O token and a label and you will click on import from tro in my case I already have my number now what I can do is I can link my assistant directly to my phone number by selecting right here but as I was mentioning before we have a different flow that we want to do and what we want to do is that we want to save the phone number inside our air table and if I do it directly like this then I won't be able to do that I can still do it with function calling we will see that later but it's much better to create the assistant directly inside make with a web hook so that you can add some variable and change a little bit things depending on some condition like for example you can inject the name of the person if the person had already called and change the first message and I'm going to show you exactly that so in order to do that you have to go here to the profile and then you have to click on API Keys here you will see the server URL of the web hook that you have to copy paste from make so now if I switch to make and this is the web hook that we're going going to be using inake it looks a bit complicated but I promise you it's not you will just have to change a couple of small things in order for it to work so let's dive into it the first part here is the web hook and as you can see here there is the URL of the web hook that you will have to copy address to clipboard and then paste it directly here this will allow to link the phone number directly into the make so that it will goes through all of these different flow and then at the end return the assistant that will then be linked to the assistant you created after the web hook you can see that there is a router and this will simply check some conditions to either go up or go down it will go up here if there is an assistant request so that means that the user is calling for the first time the second one is if end of the call report and that's what happens after the call to send back the transcript we will see that later the first thing I'm doing with the air table is I'm checking if the message message. call. customer. number is already inside the database this will allow to return the name and the phone number to the next steps of the flow and if there is no phone number then we will add that phone number directly into the air table database now whether there is a phone number or not we will continue the flow and this here is setting up the API key from vapy so for that you just have to click on this and paste here the value that you getting from your dashboard that you're getting from here private API key you just copy it and you just paste it right here the next step is to paste the assistant ID that you're going to get from the assistant right here so it's basically the ID that you have right here you can just click on copy assistant ID right there and paste it here so as you see it's pretty easy to set up then you don't really have to worry about the next steps it's basically fetching all of the different parameter of the assistant and adding some default variables so that's what we're going to see here where here we are adding the first name for example the first message and the current date so let's take this example of this first message right here so this is what you have here where I set it up like that so it will basically replace all of these different variables to the values that you are putting on make and this is really powerful because you can add the opening times for examp example or a lot of different data that you have and this logic here is basically adding different first message depending on if we have the name of the person or not so in this case here I have Hello name this is Emily from Dream Home realtors how can I assist you today otherwise it will be asking for the first name so hello this is Emily from dream home real who am I speaking with that's really powerful because you can really tweak and add whatever phrases you want and add whatever logic you want directly from within make you can also set the first name set the current date or any other information that you want and that's pretty much it like all of the rest here is basically taking care of making it work and in order for you to use this template you can simply go here and click on import blueprint and you will see the links of all of the blueprint directly in the description of this video you will just have to import it and change two or three steps that I just showed you now you should be able to run your assist consistent and have basic interaction with it but we want to add some more capabilities such as booking an inspection or get properly detailed and in order to do that we are using function calling and that can be directly set up inside vapi so let's switch to the functions Tab and see what happens there and here you can see that I have two different functions the first one is to book an inspection and the second one is to get the properly details here I'll put the function name which is book inspection I put the function description which is use this to book an inspection to view a specific property and then the name the property ID and the date and time each of these properties are strings and here you can add a description of what they are about then there is also another function here which is get property details which is set up the exact same way you put the function name function description and the properties here you can see that address is a string and and that's what it's going to be called first if we go back to our diagram right here first we're going to call get properly details to return the ID of that property and then we can use that ID to call the second function here which has a property ID that is the property that the user is talking about to book the inspection here we can see that there is a server URL which is the web hook on make which works similarly to the get assistant that we've just seen and here you will just put the link directly of the web hook so here I will put the link of the get properly details web hook and here I will put the link of the book inspection web hook now let's see the setup on make so the first one is get properly detailed and in this case I wanted to make the video pretty straight forward and easy so it will only work with one property and it will be extremely simple but of course here what you will want to do is you will want to fetch your air table database or any database do some similarity matching and and then returning the property that the user has been asking about so here we can see that there is the web hook address that you can copy and paste directly right here and then it directly return the response which is adjacent structured which has the address of the property the description of the property the viewing time of the property right here inspections and also the neighborhood so this of course will be written by the database but to make it simpler here I have directly return that response and that's pretty much it for the get property detail now I also wanted to show you the book inspection which this time is real implementation so in this case here I will also have my web hook and here this is the address of the web hook that you will also paste into the function calling here it will search for the record so here it will directly use the property ID of the previous function to search in inside the table and return the properly that the user wants to book an inspection for here we have a router that will check if the properly listing was found or not if it's not found it will return an error otherwise it will search for that specific user on air table so it will search for the phone number and after that it does an upsert so if it finds the user it will update the row with the inspection time and the property ID otherwise it will simply create a new line and add all of the data that it needs so the so the name of the person the phone number of the person the ID of the property and the date and time of the viewing inspection now this will be automatically saved by air table and then it will go to the next step which is the web hop response that will say the booking was successful here I showed you two different functions if you create a assistant for your own business you will be able to add your own functions and decide exactly what you want them to do you could add some new features such as sending automatic emails SMS interacting with a Google Calendar or connect to your database and the tools that your business is using let me know in the comment if you want me to dive deeper into one of these feature or any other that is blocking you and I will try to make a video for it also if you have any questions feel free to reach out either in the comments or by email thanks for watching and see you in the next video
Info
Channel: Donatien Thorez
Views: 1,052
Rating: undefined out of 5
Keywords: vapi tutorial, voice ai tutorial, tutorial, ai voice agent, twilio voice call tutorial, how to create ai chatbots, ai voice calls, how to create an ai caller, phone ai assistant, full tutorial, full ai caller tutorial, vapi ai tutorial, assistant vocal, ai assistants, assistant, ai agency, ai automation agency, ai automation agency course, liam ottley, build an ai voice assistant, synthflow, synthflow ai, ai, ai automation, ai voice agents, ai agents
Id: hCJb11EOdME
Channel Id: undefined
Length: 29min 3sec (1743 seconds)
Published: Wed Jun 19 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.