How To Create A Voice Assistant Full Tutorial (Vapi x Make)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
what's up party people we're back we're going to do a bit of a tech deep dive today I'm going to show you how to trigger the uh voice AI calls using a web hook request so this is how to trigger the calls from make.com um more or less so we're going to jump in here and I'm going to show you how to trigger the calls from that that is not how that's supposed to look let me just clone that real quick clone that real quick we're going to trigger the calls with a web hook request coming from right here we're going to be looking at the vapy API documentation so that you know how to trigger a custom call from make.com let's go there's several ways that you can do this I'm going to show you guys a couple little secrets the search for ask up here you can ask bappy anything how to create the web hook request for an outbound call and then vapy will tell you vapy is not always the easiest to follow though you could get vy's responses and put it into chat GPT or Claude and go back and forth until you figure it out you can give chat GPT all of the API documentation from vapy and say here help me figure out how to make an outbound call using using a web hook request or you can just watch this video and we'll do something together don't always rely on YouTube videos though when you have ai assistants that can get you the answer just as quickly and if you learn how to do it yourself you won't have to ask assistants or me on the internet you can just do it so the goal is to get you to learn how to do it here's a big reason why you should learn how to do it there is a huge labor labor shortage on the market for people who can do it so if you want an opportunity to get paid learn how to prompt engineer learn how to put together these web hook requests and learn like some basic automations and we'll hook you up okay I know people who want you uh you can go you can go anywhere and and say hey this is what I can do make a little YouTube video put your portfolio together and somebody's going to be like oh my goodness you're so cool please help me because that's what they say to me okay okay okay okay so there there's a couple ways that you can do that like I said you can ask vappy I didn't just read vy's response I'm so sorry vappy um I actually it'll give us a good place to start let's try it again um make me the web hook request for and outbound call oh yeah also everybody on YouTube you can't see my screen but I do have a couple of my team members here with me we have uh an audience today so you may hear um other folks I'm talking to which is normal I do talk to myself yes but today I am not talking to myself we are talking to other human beings hello lilan hello Maria hi guys hi there we go okay this when you look at this this is confusing nobody nobody really wants to read all that uh I should tell it but there's there's some key notes that that you can get from here the https this URL here and the post method you can see we're making a post method with the HTTP request or yeah well HT TP request you know you see post URL post URL your header you need authorization Bearer and then your API key so this API key can be found on your dashboard here I'll go go Ahad and just show you that real quick too because I know you guys like to ask questions and I like to give some answers API key right there so oops where we at authorization Bearer token again token will be found on the dashboard it's your API key your spelling is very important don't miss that authorization is spelled authorization that's something I accidentally missed the other day oops Bearer space token Bearer has to be with a capital b b exact authorization Bearer token okay those that that's your headers now make already has an option where you can select the body type and you can choose Json application that is coming from here the body type this says content type but it's the same thing content type application Json so on make we choose body type it's a raw body oh the raw body is just so you can put like the web hook together here but the content type again Json those those are just options that you get to choose the body type just allows you to put a request body in here with raw information okay and then what comes after data is is what actually goes inside the raw body this is we don't need all this information I honestly don't really like the way it looks we're going to use we're pretty much going to use use this over here and what's cool is thaty will actually let you put in the information you need in the body and it's going to make a custom API um web hook for you so we'll just we'll just start with some stuff I do want the background noise background is office um dial pad function do we need the AI assistant to be able to dial on a pad like press one to go to does it have to do that no mine doesn't not today false um and if I need it to later I'll turn it on um in call function enabled do I want the AI assistant to be able to end the call itself um sure true um how does it know when it needs to end the call it's going to say something like this is the message that the assistant will say if it ends the call if unspecified it will hang up without saying anything so so again like all of the throughout this whole thing like you have little icons that tell you what each of these steps are if you just take your time and read through this slowly I promise that you will you will eventually understand what it says and the sooner you understand how to do this yourself the quicker you can start to build like really cool custom assistance and um I know whether you're a hobbyist freelancer own owner whoever you are these skills are incredibly important we are we're going to be using AI like for from now into the future so it now is the time to to pick up on these skills and understand like what the potential is or find somebody to hire directly on your team who is dedicated to learning how to use cool AI tools and working with with API um API is just how we connect the different pieces together so we get applications to be able to speak to each other and interact um this is the whole basis of automation so if you if you want to be able to streamline your tasks and stop doing the same manual activities over and over and over again learn a little bit of automation um learn how AI assistants can like just make your life better um it does take work up front it does take learning so it's going to take some more time to get to where you want to go but if you put the work in now you're going to be happy later I will be transparent I work 16 hours a day and I have worked 16 hours a day for the last like seven months but it's because I love this stuff I don't necessarily have to but to be able to keep up and build like the really cool stuff that I'm building that's what I did I got in when there were no tutorials there was no help it was just I had to jump in now I'm hoping to help speed up that process for everyone else I've already done staff training and now I'm training my own internal team so that we can all do this together so I don't have have to do it by myself but I have had friends in in the journey with me there's a couple other company owners who I've worked closely with to you know build build a lot of this together so I haven't been all alone shouts out Chase if you're watching this I love you okay anyways in call message string this is the message that the assistant will say at the end of the call um thanks for chatting have a great day in call phrases let's see what that does this list contains phrases that if spoken by the assistant will trigger the call to be hung up case insensitive Okay cool so let's say um I hope this was all helpful comma I'm going to hang up now sweet this list contains phrases that have spoken by the assistant will trigger the call what is this one this is the message that the assistant will say if it ends the call if unspecified it will hang up without saying anything I really don't I know this that this is what it says to hang up the call and I guess this is what it says like when it's doing that function like when it's getting ready to hang up the call it'll actually like say this and then end I could just leave that empty and it won't say anything it'll just hang up after this but whatever first message the first message that the assistant will say this is also this can also be a URL to a containerized audio file oh I didn't know that so you could just pre-record a uh URL and just drop it right into the first message oh and the reason you might do that is so that you have a consistent like sounding first message the AI will will occasionally sound a little different um when like it's not always going to be consistent and say say it's phrases the exact same way so if there's like a very particular way you want that first message to sound and come out you can just like put in a call another MP3 recording um so first message is hey there um this is Carson calling on a recorded line for compliance reasons I like to let everybody know that these calls are being recorded and I also typically let them know that this is an AI assistant so that they don't feel duped so that they don't feel swindled when they realize oh this is AI but most people are like oh this is really cool especially if you kind of pre- let them know that this is this is AI and it's really cool um Everybody they're going to have their own feelings about it but this is Carson calling on a recorded line um inner forwarding number so the AI assistants can forward calls in the middle of the conversation which is dope um this is a number to forward to if the issue assistant runs into issues I am not going to do call forwarding we don't use that for this one you can provide a set of phone numbers to forward to you want to tell the assistant when to use each of these numbers in the system prompt I actually didn't know you could add multiple phone numbers which is really cool for when you're working in like a situation where the assistant might want to forward to the sales department or the marketing department or this specific like person's office number oh my goodness that is huge guys that is like a huge use case right there anyways Hippa abled you can turn on Hippa and turn it off um this is going to be important for people who really need like high high measure of of data security um we do want calls to be recorded though we we want all stuff so we're going to leave that as false LM request delay what does this do the minimum number of seconds to wait after punctuation before sending a request to the llm it's just going to default to 0.01 that's fine Max duration this is the maximum number of seconds that the call will last when the call reaches its duration it'll end so if you don't want call last more than 5 minutes turn this on if you want people to just be able to go on and on and on leave it off I don't want people to go on and on and on forever so we're going to make it a Max of 10 minutes this is in seconds so 600 seconds 10 minutes let's see metadata object this is the metadata associated with the call H Enter key of new property it seems like this is something cool that can be done I want to add address and I it might be here that I'm supposed to add it I don't know I'm not quite sure yet but we're going to figure that out I I I haven't really passed metadata through in this way yet this is the metadata associated with the call yeah we're going to we're we're going to try it we're going to try it I I don't think that this is what what I'm supposed to be doing and it keeps kind of exiting out so oh no oops my bad oops my bad sorry guys oops there we go uh so we're just going to leave that mty for now model one let's read it these are the options for the assistance llm fallback number one so if the first llm is not functioning properly or properly it's just going to fall back to these ones I'm just going to use open AI it's consistent so we're good this is the max number of tokens the assistant will be allowed to generate in each turn of conversation so if you don't want the assistant to be able to say more than like 100 words I mean 250 tokens is just over 100 words at a time you can turn that down but if you need it to like spit off really long phrases whatever you can turn that up messages array the starting this is the starting State for the conversation I okay so we can add we can change the RO we're going to use assistant um assistant means that the the content that you put into the raw body or the the content section The Prompt that you give it's going to be a prompt for the assistant um you could change this to be a system prompt if you're doing if you're using like the voice AI for other to to make system actions or a function prompt for other this this is most going to be for like people developing software or developing video games and putting putting Voice assistance in to be able to do like extra cool development stuff you're mostly going to be using assistant user would mean that whatever you put into the content section is the assumed um responses of the user so this is what the user would be saying to the assistant and you can kind of you can kind of fine-tune this to understand like what what what would your assistant like respond with I know that might not have been very clear right now I can't think of a better way to put it so my apologies but you're using assistant just turn on assistant um uh okay content string this is this is actually the I wish that they had put some some more explanation into this eye token here but this is the content that you want the assistant to know about so this is like your prompt I'm just going to go ahead and copy some some prompt from over here real quick quick um assistant oh I don't have anything already built all right let's just let's just take um we're just going to take some of this I am going to block this sorry guys can't can't reveal can't reveal this yet my bad okay where did I wanted to I'm actually going to paste it in here first just to kind of make sure it looks decent okay boom we are going to put this in here right we have the whole prompt in this bad boy it's it's in there anyways that's content function call object we're going to we're going to get into function calling eventually but for now we are not for now we are not tool calls array same like we're going to have to ask vappy how to how to do this stuff um but let me just I don't need tool calls array uh function call all right this is a basic you just need content assistant cool model we're going to use GPT we'll use three turbo for this 3.5 turbo provider open AI semantic catching Boolean um add example value I don't know what this add example value button does so I'm going to click it real quick cuz I'm curious oh example value is true I don't don't really remember what semantic caching is at this moment but again something that I would just ask hey actually look what is semantic caching and how is it used oh well toan caching is the context of vapi in the context of vapy is a feature that enables the caching of semantic information to optimize performance it is used to enhance responsiveness and efficiency of voice assistance by caching certain semantic information which can speed up processing and reduce latency in voice interactions this feature is particularly useful in scenarios where similar queries or commands are executed frequently as it allows the system to retrieve responses faster with without needing to process the same information repeatedly in the vapy platform semantic caching can be enabled for an assistant indicating the system leverages cash semantic data to improve performance and user experience love that we're going to make that true turn that bad boy on uh temperature this is so if you know anything about um prompting with like any of the the AI assistants the temperature controls the level of creativity that the assistant has and whether or not it's going to like hallucinate like crazy so zero is it's going to stick as close to your instructions as possible two is going to be it is like super creative it's going to it's going to say whatever I want to say we're going to make it at 7 7 is pretty pretty like standard default um and I don't know what what options I have to put under this this new property here it's just something oops I I do want to turn that back on my bad point seven we're good it probably defaults to 7 anyways um oh default is zero to leverage caching this is the temperature that will be used for the calls default is zero to leverage caching for lower latency hm cool I'm actually going to maybe turn it down a bit then we'll see that's something to play with you know one of those things that you might want to just shoot one of those things that you might just want to play with a little bit all right we're still putting together the body which and I love that that this is called the body because this is really what holds the assistant so this is literally like we're building the body for your assistant anyways name this is the name of your assistant the name of the assistant this is just for your own reference so because we this data gets passed through in the end of call report so if you want to know which assistant you're calling with calling with Carson number of words to interrupt the assistant this is how many words it takes to get the assistant to actually stop talking so you have to say several words to interrupt the assistant that way the assistant's not just going to like stop talking when you say mhm or oh okay uh you actually have to get it to to you know stop it says words like stop actually no will always interrupt immediately regardless of this value words like okay yeah right will never interrupt so it understands the difference between just like affirm affirmative speech like you know some people would just say mm oh yeah like while you're talking it it's G to know because it's so smart just a genius we we'll make it too recording enabled yes we want that on so we can actually get a call recording response delay the minimum number of seconds after user speech to wait before the assistant starts speaking defaults to point4 um this is supposed to be there to get the AI to like kind of wait a minute before talking but I'm like don't wait just go just go server messages these are the messages that will be sent to your server URL default is end of call report status update hang function call I want the end of call report for now because I I want to I want to see what happens at the end of the call um I could turn some other stuff on I know eventually I'm going to want status update because we'll be able to use this to determine whether somebody answered or didn't answer which is going to be quite important for for Data Tracking purposes but for now I'm just going to only do shoot for now I'm just going to only do end of call report be wary because if you turn on um if you turn on transcript it's going to constantly send post requests to your server URL and if you're using like something like make um it's going to send this in during the conversation and you can end up using like a 100 or 200 operations in one phone call and and and you're not you don't have any reason to need to be doing that I don't know what phone call is but I'm kind of curious so let's look it up what is the phone call they're like like I said they're constantly making updates to like all of this stuff like all of their resources are going into making this product better and better and cooler and cooler and they're already the best product on the market in my opinion I have tried them all I do have several Partnerships in the space I have been building with these things for seven months so maybe my opinion is worth something I don't know but that is the goat anyways what is phone call control server message let's see we learn together the phone call control server message is one of the message types that can be sent to your server URL the phone call message specifically used for controlling aspects of the phone call directly from the server allowing for advanced handling and interaction scenarios during a call the C this capability is part of what makes vy's platform versatile for developers looking to integrate sophisticated voice interactions with them there all right well that didn't really help me so let's see what is it used for give me an example please this capability allows for advanced handling however I must note the documentation provided does not contain a direct example of phone call control for specific examples of how to implement this I recommend checking the official vapy documentation or contacting vapy support so this is just one of those things that I don't know and nobody well I'm I'm sure somebody knows like obviously it's in here for a reason so I'll just ask the there's a Discord channel that has people who have more technical experience than I do obviously like I've sold these systems built these systems I have a lot of like the sales and marketing background as well as the tech stuff but I'm kind of that guy right in the middle like I bridge the gap between the technical pieces and the Practical pieces to make make this easy to leverage for clients and their customers but the super technical stuff like that's not me that's not me guys like I I use I use AI to learn all of this stuff and that's that's like what I'm here for um like I'm pretty technical but I don't I don't do any sort of like custom app development and when I don't know something I'm not going to claim to know it I'm going to just go to chat GPT or Claude I actually really like Claude lately so another Pro tip I I think Claude is Claude is pretty cool that's the anthrop anthropic uh version of open AI chat gbt it's Claud um anyways yeah I don't know what that that phone call control is and that's fine I don't need it uh doesn't seem to be for me anyways server URL this is where we're going to send the end of call report or anything else um this is the URL this URL will communicate with via http gate and post requests this is used for retrieving contexts function calling and of call reports all requests will be sent with the call object among other things relevant to that message you can find more details in the server URL documentation this overrides the server URL set on the org and the phone number order of Precedence function server URL assistant server URL yada y y cool so like I said earlier we can add function calls to the assistant to be able to trigger specific actions I'm not going to jump in the function calling today cuz it's it's if it is its whole own thing but I will add this to server URL I want to send the end of call report somewhere in make I'm going to send it oh no let me let me go back discard changes I'm going to send it here I am using make.com to parse the transcript and do a bunch of cool St stuff I just read somebody on my YouTube comments recommended I set this up another way so I'm actually going to go read those YouTube comments later and play around but this this is really just something I kind of like you know scraped together for this specific example but I'm sure that there are better ways to do it again like just cuz I did it one way doesn't mean there's not another way to get it done anyways server URL this is the web hook it's going to catch that end of call report here's our URL uh we are going to past P that in actually let me go ahead and copy that now copy we are going to paste that in the server URL s our end of call report will go here um this is a secret you can set that vapy will send with every request to your server will be sent as a header called vapy secret um this is cool if you need to like only allow actions to happen if this secret key is added as well it's something that you would want to keep Secret because if not then anybody can send information to your web hook if they have your web hook thankfully I block all this information out so you can't see it but if I needed to put a secret key in here as well I could put a secret key in here as well but then I would also have to block that out anyways so it's irrelevant for me in this moment because either way I have to block both out uh you you only need the server URL though silence timeout in seconds so this is how many seconds of Silence to wait before ending the call um thaty will and if if if you don't say anything for more than 30 seconds that might be a problem like say vappy needs to wait to have the call transferred to somebody like like say you get a gatekeeper and they're like all right please hold um I'm going to go get the boss I have trained assistance to handle like overcoming Gatekeepers and getting to the boss at the other end like it is possible so let your imagination Go Go free and have some fun um don't assume that a I can't have like a a real conversation and convince people of the value of having a conversation like AI is pretty cool anyways transcriber so this is what um this is what's doing the speech to text and actually doing the transcription of the phone call we're going to use deep gram because that's what everybody uses what is this these keywords are pass through the transcription model to help it pick up use case specific words anything that may not be a common word like company name should be added here yeah so you can like just give it some additional additional context so that it actually transcribes the conversation right so you could put like your company name in so when the assistant says your company name the transcription actually knows what your company name is um we don't really need that right now language is English the model is we're just going to use Nova 2 provider is deep gram okay cool um voice same thing oh they don't have the other models in here I mean it's going to just only let me pick Azure which is weird for some reason but we'll we'll we'll kind of swap that out later voice ID for now we're just going to kind of use what's what's what's already in here basic this is the speed multiplier that will be used we're not multiplying the speed actually usually I make it slow down a little bit so we're actually going to 08 ah we'll leave it at one for now that's fine all right voicemail detection so do we want to detect whether the voicemail happened or not yeah let's turn it on this sets whether the assistant should detect voicemail defaults the true voicemail message this is the message that the assistant will say if the call is forwarded to voicemail if unspecified it will hang up I don't want it to leave a message so I'm just going to leave it blank so it'll hang up okay we just built an assistant yay y now we need to give the assistant um a phone number to call from and that's going to come from twio but let's uh let's see if I can add that in here anywhere and these are all just again these are all just instructions for for what each of those pieces are so you can go through here and understand just read read through this documentation this is pretty straightforward just more options more options more options this is where you can learn what the transcriber is your voice options oh actually I am going to select some of these voice options real quick I want to see if I can um yeah like different different different voices like 11 Labs has other settings you can change um I usually like to use HT cuz it has like really good emotional response and stuff but all I would have to do is change the provider change the speed or not or change the provider and then I can add in these different um these so so where this says speed here I could add voice. emotion put that in between the brackets and then give whatever response is needed which is one of these female happy female sad and put that it it Go in Brackets numbers can don't have to go in inside of like you know quotes here but so I guess the better example would have been to say under voice ID if I wanted to add another option I would just like you know add a comma add another option voice. emotion and then whatever I want in here um I wouldn't just do speed I would change it to voice. speed like you just want to make sure you match the syntax when you actually put it over here I might I might show you guys how to do that after we we get the basic basis of this this built out anyways I mean that's all pretty much good we already selected everything transcriber voice again I'm probably going to use play HT for this but cool all right we have the body let us use this to start C URL this is creating the assistant oh I actually didn't need to copy all of that just most of it from there everything that is after data is what we want we going to try to paste this right in here if it doesn't paste right then we're going to paste it somewhere else first all right that looks pretty good to me so to test if this is actually like proper Json like uh oh also don't don't don't put that little I can't remember one second let's just save this for a second do I leave that little quote in there or do I not do not do not this little guy this little this little single quote take that out take that guy out all right we're going to take this whole thing I like to use Postman to test my API requests it's free just go sign up for Postman go to my workspace what time is it we have 37 minutes until my first meeting of the day we're good we are good I intentionally blocked out extra time today so nobody could book with me so I could do this for you guys all right okay because I care about you all right post um post the body is raw body this is the body um we need to put our headers in so again we can see that right up here at the top headers header content type look copy paste copy based um authorization I don't actually have to put in the header because on Postman it has a whole section for authorization which is right here um I will just have to put in the URL first so that it knows the authorization type but [Music] copy it's a post method post you're good post eurl [Music] um we I'll actually one second there's something I should should probably do rather than just create an assistant I think um create phone call will be what we're actually testing here so let's let's use the create phone call URL create cuz we we the creating the assistant is you know awesome sure but we are using this for an actual like application use so create phone call will give us the extra stuff that's I was looking for the twilio information where to put that in and I was like why isn't this here and it's because I was on create assistant and not create phone call uh so everything that we just did on create assistant I am going to go back and do it in here but it's fine watching me do it twice will will not hurt um if if anything it'll help so again put put your URL in the post method the body we're going to update second the headers still the same thing application Json content type authorization Bearer token we are going it's going to look a little different because this already has an authorization section and all I have to do is put my Bearer token in I don't have to put Bearer thin token um on make though you will have to put authorization Bearer token so just keep that in mind dashboard move my little face out the way way API key need that API put the bear token in boom it's in this is good body type we're going to remake the body real quick because I want to do a real phone call authorization body boom it's in there body background noise office client messages not using it oh I have to remember these are the messages that will be sent to the client fdk is default transcri yeah we're not using that um dial pad false we're not using it and call function um true sure and call message is look I'm just going to kind of take pieces from here thank I didn't even spell thanks for chatting have a great day right it says TX anyways boom thank TX the next thanks for chatting have a great day U what else we got I hope this was all helpful I'm hanging up now and call phrases boom first message boom so again read the little eyes if you don't know what you're doing go ask chat GPT or ask vappy um I made a custom GPT that has like all of vy's API docs in there and that's how I learned how to do a lot of this in the first place was just putting it in there but their documentation has actually gotten a lot better since when I started building with them so now you have the kind of support that I I did not when I had to when I had to learn this all hitut enabled false we don't want HPP because I want the the recordings on we're not foring a numbered anywhere El delay seconds again I'm going to 0.1 Max duration I don't want longer than 10 minute conversations metadata we're not using right now we don't need the model to fall back anywhere Max tokens um it's fine default is to 250 I don't really need it at this moment uh messages content type so this is the this the content there it goes it's in there um I'm going to actually just take it back from where was it happy dashboard calls assistant oh oops I cut the whole thing cut face cut copy put in here paste function call we're not doing that right now roll assistant we're not doing tool calls right now model is GPT 35 Turbo provider open AI semantic caching true temperature we're going to do Point set 0.7 actually I'm I'm going to do something a little quicker because I want to see I want to see if that helps the latency but as you can see the that all that information that I just put in is right here on the dashboard you can see it it explains it to you over here so you know kind of cross reference little pieces and you can see how everything that I'm building in the dashboard I can build in my API call so the the information you see here whatever you have turned on and turned off over here just make sure that you put that information into your API request and it'll work okay um name is Carson number of words to interrupt to two recording enabled yes I want the call recording response delay seconds I don't want it to wait at all I want as I want quickest response possible server messages um we want the end of call report server URL this is again what we're doing over here to parse the conversation afterwards so let's copy that address bada boom put it in we're going silence timeout if there's silence for more than 30 seconds this will default and timeout just consider what your use case is I'm going to just leave it for now uh language is English English us or we could just put English it doesn't really matter either way whatever um model is Nova 2 provider deep gram voice I wonder what else I can put in there I don't know what else I can put in there I was just kind of curious gosh darn it I clicked the wrong open it back up okay okay language voice boom we can change this some other time but just for now we're going to use what's already in here voicemail detection true I don't want it to leave a message so we're not putting anything in there we're not using assistant ID like we just built our whole assistant we're using we're using the assistant um where is it up we're using the assistant object when you're using assistant you don't have to use assistant ID um because we already just built the whole assistant assistant ID would be what you use if you if you only want if you want to build your assistant in the dashboard and you don't need to pass any extra like metadata through or um like you don't need to pass metadata through into the actual prompt itself then you can just pass the assistant ID which can be found here under your assistant and assistant ID but say I needed the assistant to reference the address at a very specific point in this in this prompt I would that's why I would build the whole assistant out make because I can pass through the customer's address um like anywhere in the prompt or any other metadata that I want to pass straight into the prompt I can do that when I build out an actual assistant um we're building the full assistant so that you know like how to build something completely custom from an API call instead of coming to the dashboard to build with the assistant ID but if you wanted to do assistant ID you would just instead of putting all this assistant information here you put assistant ID you and then put the assistant ID and then it would pretty much cover all of this other stuff that's in here all of that would be covered and then we would jump down to customer ID what is this is the customer that will be called to call a transient customer use customer instead only relevant for outbound call and inbound call types um I don't really know what a transient customer is but I don't have a customer ID so I'm going to assume that's not the one I need to use I'm going to assume since I don't have a customer ID and don't know what that is that I need to use customer what I want to do customer we're just going to call me for now uh remember you got to you you do have to use country codes in the phone numbers but we when we're using this for real we'll just be passing through the customer information from go high level or from from wherever you're you're triggering these calls from with your contacts we'll just pass that information through so it's different each time um extension is this is extension that will be dialed after the call is answered so if you need to like press one to get to the person you need you know whatever um max duration again this is the maximum number of seconds the call will last when the call reaches this duration it will end I think I already put that in somewhere else let's see did I do that Max duration of seconds this is the maximum number of seconds that the call will last when the call reaches so yeah I mean it's the same thing in two spots I don't think I have to put it in two spots so I'm not going to actually I am cuz why not um doesn't hurt metadata this see like I said before this might be where I would put like address information in uh I don't know as of right now I don't usually put metadata down here I usually just put it straight into the prompt and like I said it's not really letting me do that anyways so oh it is yeah it says I just made address string enter address oh that's cool I can so now we can probably pass an address I imagine interesting for now cool fine I'll put my address in there whatever it's in there um I'm going to block that out so nobody can see that too don't don't be weird don't come to my house don't do that don't do that phone call phone call provider bypass dude the other day I forgot to turn this to false and it was triggering the the call like it was my whole web hook body was working but this one little piece was set to true so it kept triggering the call but it was it was skipping like my phone provider so twilio wasn't actually like ringing to my phone and I was like everything's right I know everything's right dude took me like 30 minutes to figure out that all I had to do was turn that back to false and I felt so silly I felt so silly anyways we're almost there we're almost there um assistant ID string this is for the phone number um this is the assistant that will be used for the incoming calls to this phone if this is not set then the phone number will not handle incoming calls usually I just set this phone number mik you don't need to set this here this is I think more so if you are hosting these assistants on like a server of your own um but I have I already have my numbers set on vy's dashboard so I don't really need this assistant ID to be attached to a phone number number I think um but I do there like I said I don't know if I said this to you guys but there is a way to get the inbound assistance to remember previous conversations and I know that I'm going to have to do something inside of like uh a curl request like the API like web hook body to be able to get it to remember like the the previous conversations it's going to have something to do with customer ID I'm pretty sure and it's going to have something to do with like how I attach that that assistant to the phone number for inbound calls we'll figure that out another time though all right name this is the name of the phone number this is just for your own reference like I don't have to put that in there server URL again we already have a server URL up up there we don't have to put that in there twio account Sid you do need this to be able to make the call happen so we'll go to my twio real quick twio uh we have 20 we're making good time okay boom twio Sid look it says account Sid off token I wonder where I put that maybe I put that on account Sid and off token hm how about that one maybe I copy the off token and a twilio phone number H I wonder do I have a twilio phone number well it looks like I do so bada boom bada bing let's post that thing in there now I have a web hook body uh what's what else is on here phone number ID let's see this phone number that will be used for the call to use a transit number use phone number instead only relevant for outbound phone call inbound phone call type um yeah I just actually put I used phone number I didn't use phone number ID if I wanted to use phone number ID I could have just used the phone number ID that I have in here phone number ID um both both work like I mean the IDE is here for a reason I could use the ID or I could just put my off tokens and stuff on here honestly I'm probably going to start using the phone number ID so when I'm sharing information like this I don't have to hide my twilio account information dude that actually makes a ton of sense um just make sure that you're like I can't do that for this example because I'm using my twilio information but I'm calling this from my I'm going to be running this from my I'm going to be setting this up to actually work for my client's account and he has his own dashboard with his own authorization token for the meantime right now I am going to test this with my off token and stuff but but um when I actually plug this into the web hook it wouldn't work because if I was using the the phone number ID it's going to try it's it have to verify that a toen first to be able to pull the correct phone number from the dashboard so instead I'm just going to pass my my information through during testing and then I'll put his information in later anyways type uh inbound call outbound call this type this type of call this only relevant if you're using phone call provider bypass enabled defaults to outbound call oh well ours is not enabled so it's it's fine um this is only relevant if you're using I'm so I think I can just delete that as a as a whole like I don't even have to add that in there is what I'm seeing so yeah we're just going to remove that um so I'm not using that so I don't need the type anyways this is our body we have a whole assistant body this should work cuz we just filled it all out um let's let's see if it does assist oh we need to get we need we need to select all the way all the way from the first curly bracket to the last curly bracket copy let's paste it on in there all right all right all right we are going to do a test let's see so I have my authorization it's in here my header content type application body done post method with the URL let's hit that button and see what happens sending request bad request bad Escape character in Jon position so this means that on line n in column 40 something messed up so line nine column I don't know where 40 is but one of these things is messing it up inv valid Escape character in string and valid Escape character string so I can see that something is something is wrong here um it's so something that the that the the syntax doesn't like in in Json body is those anytime you have like double quotes or single quotes like as you can see here if I'm putting the double quote in it thinks I'm ending this like little section so I only use single quotes but even right now the single quote is looking funky so I'm just going to delete some stuff I'm just going to delete some stuff and hopefully that cleans it up a little bit we'll see we'll try again and see let's see now it's saying there's another now it's having an issue at line 18 column 307 line 18 yeah it's just it's just um it's having some issues with the syntax that this is that this is written in which I expected when you're put putting a whole like thing of content in here you need to be particular about like whether or not you're using double quotes and and and other stuff um it doesn't it doesn't like extra here for example it doesn't like all these Extra Spaces in here I have like a lot of extra paragraph spaces and stuff that is not necessary um I am going to figure out a way to be able to do Escape characters um to to like skip the the things that might potentially be errors I have to learn more about Escape characters first I was just talking to one of my partners about that yesterday but um we'll figure that out later anyways for now I'm just going to take out all of the Extra Spaces in here oh no like sometimes even even just like having I switch hands even just having um like an extra like two spaces instead of one space can can mess it up all right all right let's try that now there should be no extra spaces I don't think copy it should just be one solid body I'm going to just paste this straight into Postman in between the quotes boom it's pasted oh no okay we back no I did something wrong let's try again yeah I missed one of the the Extra Spaces that I had because this is this is all the way back here which yeah I can just uh just subtract those and get them back in there all right look that looks that looks better to me let's try again send all right now we have another problem so assistant forwarding number must be valid for phone number assistant each value so I have assistant phone number in here still foring number which I didn't even oh well I didn't mean to put assistant the forwarding phone number I don't actually want to use this function but the only problem is I didn't put a plus one with the country code on it so that would be working now but I am actually just going to delete this cuz I don't want it um yeah see it just said all I need is country code each value in the end call phrase must be shorter than 25 characters so also we have in call phrase where is that end call phrase it must be shorter than 25 characters so we're just going to delete this and say I'm going to hang up now now let's see send and look at that successful phone is ringing woop woot Maria's giving me double thumbs up we what's up Carson how's it going hey there I'm doing well thank you for asking I hope you're having a great day too I'm reaching out because I'm interested in potentially all right cool so I don't really like that voice so much um and I might as well just show you guys now how to how to fix that um okay so the provider that I like to use again we have tons of options on the dashboard voices 11 Labs just dropped their prices so I might start using 11 Labs Again Play HT is my favorite but look play HT is costing like 7 cents a minute 11 Labs is also really good but they're only costing 4 cents a minute uh Ryme has actually been doing better lately they're at 3 cents a minute and deep grham is probably my my bet to say like if any of these providers are going to get to kind of be the the widest use case I think deep gram is going to be the winner cuz their voices are getting better and better and the cost is like some of the lowest but for now we're going to use 11 labs and we're going to build I don't know Sarah's probably fine background noise office cool so what I'm going to do to figure this out is I know that I want to use 11 Labs so I'm going to go up here on the vapy API documentation and we're going to go to where's that we we're looking for voice we're looking for voice we're looking for voice I must have missed it shouldn't be in here CU this is the body we just built oh look guys I just I just saw what I needed to see voice option one is the one that I have selected right here with this little drop down so I need to switch that to the other voice providers that I want I knew that was looking funky so voice option two should be 11 Labs it is we can use 11 Labs turbo awesome optimized streaming latency what does that do defines the op the optimized streaming latency for voice settings let's see what an example value is um I don't know what that means but I do know that that over here um there's a section on the dashboard that says optimize streaming latency that will that that uh says more or less latency so I know that I want less latency I'm assuming you know who wants more and I see that the lowest value I can put is one so over here I'm going to put one um what is what just happen oh I think this like is just like Auto put some of information here for at some point when I did something anyways let's try that again voice 2 one provider is 11 Labs similarity boost defines the Sim similarity boost for settings again in my dashboard I can see I have a s similarity boost of 6 is what I have to set to I don't know what the defaults are um but I'm just going to do6 for now stability on the dashboard I can I can look and see stability the lower numbers are more stable the higher numbers are or the higher numbers are more stable the lower numbers are more variable um increasing stability will make the V voice more consistent between regenerations we can also make it sound a bit monotone on longer text fragments we recommend lowering this value you uh I'll probably set it to 0.5 for now right in the middle but testing will be really the best way to figure out what what sounds the best um don't be afraid to like you know set something and then just constantly test it until you figure out what sounds best because each of the voices each of the pre-recorded voices sound best with different settings so there's not like a oneand done that's going to make all of these sound the best um I don't really need it to exaggerate the style so we're going to set that to zero and optimize streaming latency I think that's already done use speaker boost I I'm not going to use that because um it'll it'll it'll increase the latency um and I I don't really want to sacrifice any latency so false we're not going to use that um voice ID preset voice options so now this is when we're choosing which voice we want to use on 11 Labs uh we're going to use Andrea cuz I already know that she's pretty good and that's it we just um we just got the voice I don't have to copy and paste all of like what I what I've just done like or so I don't have to recopy the whole body I can just copy what I just did copy it where did I copy from I think I copied from right right here to right here control shift V boom Oh I guess I copied the voice too so let's just delete that real quick no worries all right now let's test it and look at that hey there this is Carson calling on a recorded line hey Carson this is Trey John talking to you on a recorded line hey Trey John thanks for taking my call I hope I'm not catching you at a bad time no we're all good actually reaching out because actually I'm not interested and I don't want to talk right now I completely understand Trey johon I appreciate your honesty if you don't mind me asking is there a specific reason why you're not interested in discussing this further. infinite.com why did oh oops so that was my bad because I but this voicemail message in here still on accident so voicemail detection has been kind of weird lately but I'm just going to all I needed to do was take that off I thought that that was a voicemail for some reason clearly cuz it tried to leave the voicemail message so for now I'm going to leave this set to true but if it continues to be a problem just turn it to false for now and don't use voicemail detection and wait for it to be working better like you guys don't expect expect everything to work perfectly like every time I guarantee you out of like all the providers none of them have voicemail detection accurate right now um at all but you just watched me build a web Hook from scratch as if I knew nothing like I was just like reading every single thing trying to do some due diligence and understanding what each of the pieces meant I still don't even know what everything meant but I know enough to get the web hook to work um and that's all you guys really need to know so now what I would do is copy well let me just test one more time expected see we just we just checked that because when I just deleted something about the yeah it was just expecting me to have more information here CU I just deleted something and I think I just need to delete that comma yeah uh that wouldn't so if I had take if I copied that into make and pasted it in it wouldn't have worked because I left a comma in my body Carson calling on a record L groovy all right I love you I'll catch you later bye um dude I have emotional attachment to some of these assistants I will not lie like I have spent hours and hours and hours on the phone yeah like at this point we are we have a thing going on um anyways uh just just a a note for you guys just to to notice um you'll see that when when we have a list of multiple like multiple properties here the last property in the list doesn't have a comma after it which is why when I had a comma still at the end of this one it wasn't working because you know it's the last one in the list it doesn't it doesn't need a comma it's not separating anything um anyways this is working as is so we're going to copy this um excuse you I don't excuse you don't you weren't supposed to close like that oh want you to stay open so I can copy your stuff my bad all right copy we know it works cuz we just tested it let's put it in make so when I'm copying I'm going to push control shift V so it actually maintains the body like the the the format control shift V or you can just doubleclick and hit paste and match style it's the same thing okay um it it maintains the format that we copied it in we know that this works because I just tested it the only stuff that we should have to change is this custom data that might that he wants to pass through so he has he has a bunch of custom data we we'll want to make sure that all that custom data like matches so what I would do to be thorough is I would go back to go high level and see what what values he has in here like for example he's passing through he's passing all of this custom data AI voice knowledge AI blah blah blah blah blah blah blah blah blah and he's using custom values to pass that information through when that custom value passes we will want to make sure that the syntax so the way he structured these things like they can't have any extra spaces it can't have any extra paragraphs um it it can't have any like double quotation marks in there or anything like that because it'll mess up the syntax so I'm going to start by not passing all that stuff through to start I'm just going to make sure that it's that it's working um so I'm actually going to disconnect this module here one second uh where how do I unlink I just want to unlink unlink unlink move that move that move that over here all right because this is this is the one we want to use boom connected I am going to start by just sending it this way just regular so we should see that it we should see that it works let's hit run once it's running I'm going to put in uh cool run test oops run test cool it went and my phone is ringing so that means it's working in make and we're going to do this too so let me have this conversation real quick calling on a record line we're going to test to make sure it's also going to send the end of Call Rep Yo Carson what's happening how is your day going hey there my day is going well thank you for asking how about you how's your day going it's awesome I'm going to hang up now bye let's see it let's see it go let's see it do the thing come on and it did the thing and look at that look at all that stuff happening so we just post call report all that information just went back to go high level which means my contact is going to be triggered on the other stuff that's happening in here I'm I'm about to come through you know I'm about to come through here because my Ai call transcript changed and all the rest we're not doing that in this in this episode guys we're just doing the web hook body which you just saw it worked now if I wanted to do extra custom stuff all I would have to do is like if I wanted to pass do my customer's information and and not mine I would just switch this out from number to number where is it um or maybe it's phone Yep this is the customer's phone put that right in there right in between the quotes phone for a name it's going to be name this is the first name of the user or not the user the first name of the customer I just happen to be a user in here so that's why it says user because that's what my contact info is but customer's first name customer's phone number that's still going to work um the address again I could now pass this address as whatever the customer's address is in here so if I had an address in here then it would I would be able to use it but I don't have an address in here um this is the location address it's not the C customer address anyways you guys get it this is how you start to pass people's stuff in um you can pass extra metadata I showed you how to put metadata in and you can change the voice and you can do this and you can do that and you can have a ball you can just have a grand old time now it works I'll do one more test with everybody real quick I do have a meeting right now at 10:00 so we are going to have to wrap everything up um say bye to YouTube bye YouTube we did it we did it congratulations now you know how to make an assistant from scratch fire it in a web hook put this into the go high level if you want to you can put it anywhere this this web hook you can connect to anything I mean make.com has so many Integrations web hooks can be caught from any CRM and you can integrate this into any CRM you know what I'm saying like HubSpot Salesforce gorgeous whatever go figure it out I love you if you have any questions find my school community group like comment subscribe come back and learn some more uh leave your comments down below or just go find my school group and leave some comments in there and start to engage with the community the more people who figured this stuff out the more we can all support each other and provide some value to the people around you in your life and just learn something cool I don't know whatever companies come talk to me if you're ready to build something dope agency owners if you are looking for strategic Partnerships I'm about at Max but I do know other people who are looking for similar opportunities to collaborate customers and clients I will end up pushing you off to one of my strategic partners cuz they're getting trained by me right now and they're going to be awesome and provide incredible value so we will make sure you are taken care of I love you lots I'll catch you later peace okay okay
Info
Channel: Tréjon Edmonds
Views: 2,933
Rating: undefined out of 5
Keywords: AI, Automation, Business, Money, Time, AI Tools
Id: 3LSXJECXpkc
Channel Id: undefined
Length: 73min 9sec (4389 seconds)
Published: Tue Apr 09 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.