Transcription
Good afternoon. You've reached Smith Dental Clinic. My name is Emily. How can I help you?
Hi, Emily. I would like to book an appointment for today.
Actually, today is fully blocked off for appointments. Would you like to book for another day instead?
Yes, sure. Do you have something free for tomorrow?
We've got a few open slots tomorrow. Would you prefer before noon or afternoon?
Actually, I prefer afternoon.
All right. For tomorrow afternoon. We've got two slots. 3 to 4 or 4 to 5, which works better for you?
3 to 4.
Sounds good. Great. I'll book you for tomorrow from 3 to 4. Could I have your name, please?
Yes, my name is Ed Hill.
Thanks. Ed, could you share your phone number?
Yes, my phone number is 0125111222.
Thank you. And your date of birth.
My date of birth is May 4th, 1994.
Just to confirm, you'd like an appointment tomorrow, August 14th, from 3 to 4, under the name Ed Hill. Phone number 0125111222. Date of birth May 4th, 1994. Is that all correct?
Yes, this is correct.
Your appointment is confirmed for tomorrow, 3 to 4. Thank you for contacting Smith Dental Clinic. Have a great day.
Thank you so much. Bye bye.
You're very welcome. Bye bye.
At. I just built this AI receptionist that never misses a call using no code and in less than 30 minutes. And after this tutorial, you also will be able to create this AI. No prior experience required. So why is this so important? Because missed calls means missed revenue. Every unanswered call is a potential loss client. So to reduce the chance of losing a client by not answering the phone. Our goal is to answer each call in 20 seconds. And thanks to it, this is no problem. In all this, using a no code solution. For that, we need only three simple steps. First, setting up the AI. Second, expanding data. Its function for examples to book appointments in the calendar. And last but not least, we will get a real phone number that you can directly provide to the client. Or you can simply use the existing phone number and just forward the call to the new phone number. And if you're serious about AI automation, then make sure to check out my school community. We'll provide support, detailed tutorials, and blueprints that you can simply import and use it for your own needs without building it step by step. And now let's get started with the tutorial. For that, make sure to open up the Google Docs document provided in the description box below. You will receive all prompts and commands that are needed to follow along.
Step number one is to give our AI words. For that, we're using a service called VPI. First, we open up the website. Here we create a new account first. After that, we click Open Dashboard and click on the Build Assistant. Next, we click Create Assistant and give it a name like YouTube receptionist and start with Blank Template and click create Assistant. And make sure to stick until the end. We will make a full cost breakdown and explain what kind of latency is acceptable. The first thing we have to set up is our AI model. I played around with a few and to my surprise, Jupiter five was not the best one because it hallucinated a lot and didn't always call the right function. Much better performed the GPT four one. The model highly depends on the use case you are doing, so make sure to test out different models, but I would recommend to start off with GPT four one. The next thing we have to provide is the first message that our AI agent says when he gets called. In the instructions, you can find a message that I already crafted for you. You simply copy and paste it here and adjust it to your needs. If I click now, talk to assistant. The assistant will say this. Let's try it out.
Good afternoon. You've reached Smith Dental Clinic. My name is Emily. How can I help you?
If you can see, in this case, we used the male voice instead of a female voice. But don't worry, we will adjust it to the next step. Then we need also to adjust our system prompt. The system prompt can be used to configure the context for all personality instructions and so on for your assistant. A good example is first, we provide the current date and time. Then we give this AI the identity and purpose. For example, your Emily Patient Service voice assistant for Smith Dental Clinic. Your main role is to answer patient's questions briefly, clearly, and politely regarding our services, appointments, and opening hours or emergency notices. All right, let's test it out. We can test it by clicking this button. Talk to assistant.
Good afternoon. You've reached Smith Dental Clinic. My name is Emily. How can I help you?
Hi, Emily. I would like to know the opening times, please.
Of course. Smith Dental Clinic is open Monday to Friday from 8 a.m. to 5 p.m.. Let me know if you need anything else.
And this typical example with the AI makes up some information. Therefore, it's important to really make the scope clear where the AI is supposed to answer and where not. He says that he needs enough information to know the exact times. So, for example, if I add this information, let's make it from 10 to 2 p.m.. Then the agent will exactly know when the opening hours are. Let's try again.
Good afternoon. You've reached Smith Dental Clinic. My name is Emily. How can I help you?
Hi, Emily. I would like to know the opening times.
Hi. Our opening hours are Monday to Friday from 10 a.m. to 2 p.m.. How else can I assist you?
And like you can see, if you provide enough context to the AI, it can answer all the questions. And to save your information, always click publish. But wait, what do you want to simply test out the prompt without calling all the time? You can also click here, the chat icon, and simply paste in your questions. For example, when are your opening hours? And send off this message. This is the exact same answer. What the AI would say if you would call him. And to reset the chat, simply click here, this button, and start from the beginning. That way you can quickly adjust your prompt and test it to your needs. A good starting point is the system prompt I provide you in my community. That you can simply copy and paste here and adjust it then to your needs. For example, you adjust the knowledge base by changing the services that you provide, the opening hours, the emergency numbers, and so on. Don't forget to click publish to save this information.
Next, when we scroll down here, we can adjust our voice. Click here to expand button and can choose multiple providers. Again, I was playing around with a few and the best one for me was 11 labs. So you select here 11 labs for the provider and for voice. You can choose from the dropdown menu or you can click here at voice ID manually. And I actually recommend you to use this option because this way you can use any words that you have in 11 labs, even your own one. To get the right idea, you go to 11 labs and create an account here. Then you click voices and then you have multiple voices here. For example, this one. Okay. So this might if you like this, once you click the three dots and click Copy Voice ID and go back to VPI and paste it here. Then I click Now Publish here and talk to assistant. We have a new voice.
Good afternoon. You've reached Smith Dental Clinic. My name is Emily. How can I help you?
Today we got our first step done. But the problem is our voice AI agent has no access to any tools, nor access to our calendar, no access to Gmail, and so on. Therefore, for this example, I will show you how to add Google Calendar. After this, you will be able to check all available slots and book appointments. To achieve this goal, we need an item. It's a no code platform, really easy to use. For that, you open up n8n.io and click Get Started if you don't have an account yet, otherwise sign in. After you signed in, you can create workflows by clicking this button here. We have two options how we can achieve it, the easy way and the manual way. The easy way is when you are part of my community. You can simply download this workflow here and import it into n8n. Once you got this, it simply double click on the calendar here and add your own calendar by clicking here and then sign in with Google. Once you've done that, you click here save. Give it a name like VPI YouTube agent and click here activate. Then you head over to VPI and Open Tools. Each tool has a tool name and a tool description. The tool description is basically what it does. For example, this tool calendar slots returns the booked appointments with start and duration time. Based on that, the agent figures out what time slots are available for today. So this tool returns are based on a date which slots are already booked, and figures out the available slots by checking the opening times and the booked slots array. This way, our AI knows exactly which slots are available, but for that, he needs parameters. The parameter is the date. In this case, when you click here on this edit button, you see the description for the date. The description is check availability for a certain date. Then I give them a format and the timezone. This information I receive by an n8n no code tool and then it checks based on the calendar what dates are booked for this date and returns them back to our AI agent. But let's create the tool from scratch. For that, you click here create tool and select Custom Tool. In my Google Docs, for my school community, I already prepared some tools. For example, the calendar slots tool. You can simply copy and paste the name here and you do the same for the description. Then you scroll down here to parameters and switch to JSON. Then you go back here and simply copy and paste these parameters here. Click apply and click save. And the last thing what you have to do is to give the server settings for us. We need the server URL. This is pretty easy to get. We go back to our no code tool here and double click here on the Calendar Slots flow. Here on the webhooks, we can choose production URL and copy this one and paste it here. Then again click save and that's it. By the way, you have here also a tool ID for VPI. Now let's go back to our assistant and scroll down here to tools. Here are the tools. We can now select our tools. And we select our freshly created tool with the ending for VPI and then the slots. And then click publish. Let's try it out. I also open up the Google Calendar here, and you can see at 1:00 pm the slot is already occupied. So let's ask our AI versus agent if at 1 p.m. for slot three to make sure everything works.
Good afternoon. You've reached Smith Dental Clinic. My name is Emily. How can I help you?
Hi, Emily, I would like to book an appointment for today at 1 p.m..
It looks like the 1 p.m. slot is already taken today. Would you prefer an available time in the morning or afternoon instead?
And like you can see, it worked. When we head over to our no code tool and click here on executions. You will see a call to this flow here. When we double click here, we see a message here that the tool named Calendar Slots was called. And it had some arguments or parameters of the state here. What is the date of today. Like you can see here, based on this date, our Google calendar gives us all slots that are booked for this date. For example, for this day, there was only one item. All right. Now our AI agent knows exactly which time slots are available. But it also needs the capability to book appointments. If we go to VPI and create a new tool and the custom tools key, you need to fill out the tool name and description that you can find here in my school community under Center Point. Simply copy and paste it here. Then you go down to parameters. Click JSON. Go back here and copy and paste what's under parameters and click apply. Then in the server settings, you go again to our no code tool and click on the Calendar Set Appointment. Double click on this one. Go to production URL. Copy this URL and simply paste it here and click save. That's it. Now our agent can book appointments. Let's try it out. Go back to assistant. Then go to tools. And given the new tool we just created, Calendar Set Appointment. Click publish and click Talk to assistant.
Good afternoon. You've reached Smith Dental Clinic. My name is Emily. How can I help you?
Hi, Emily. Can you book me an appointment for today at 3 p.m., please?
We have an available slot at 3 p.m. today. To confirm the appointment, please provide your name and phone number and date of birth.
My name is Ed Hill. My phone number is 01010101 and my date of birth is May 4th, 1994.
Ed, your appointment for today at 3 p.m. is confirmed. Thank you for contacting Smith Dental. And like you can see, our new appointment was booked here. You might notice we have also calendar availability flow here. I started off with this flow, but I noticed quickly people want also to know when I'm available slots. Therefore, I created this workflow and what I noticed is, and even if I ask my agent for a specific date if there are some slots available, he started to using this tool directly. So this one it's not necessary anymore. All right, but how would you set up this whole thing if you would not have the template for this? You click the plus icon and create a new workflow. Then you click first step and select on Webhook Call. Then you select on the method post and on the test URL you copied this URL and click listen for a test event right now. Or in it, and it's waiting for a test event. So let's go to VPI and go to tools. And let's modify our calendar set appointment tool. Here we exchange the server settings on the server URL with our webhook test and click save. If we go now to assistant and start talking with our assistant.
Good afternoon. You've reached Smith Dental Clinic. My name is Emily. How can I help you?
Hi, Emily. Can you book an appointment for today at 5 p.m.?
We don't have a free slot at 5 p.m. today. The available times for today are at 2 p.m. and 4 p.m.. Would either of those work for you?
Yes. Then book it please. For 4 p.m..
Got it. I'll book your appointment for 4 p.m. today. May I have your name, phone number and date of birth to finalize this?
Yes. Ed Hill. My phone number is 01010101 and my date of birth is May 4th, 1994.
It seems there's already an appointment booked under the name Ed Hill today at 3 p.m.. Is this a second appointment, or would you like to reschedule the existing one to 4 p.m.?
Yes, this is a second appointment. Your appointment has been successfully booked.
Perfect. And like you can see, this tool was now called and our webhook was triggered directly. What you also might notice is our AI agent is already much smarter than we were thinking because he recognized I already booked the appointment and if this is already a second appointment. But what is much more interesting is what we receive here in the schema. When we look here, the body under two calls we see under functions. The name colon has set a appointment was called with this date name and the phone number. What we can do now with this information is set the workflow. When an appointment in our Google calendar is booked. For that, we go back to n8n. We click the plus icon and look for calendar and select Google Calendar. And then we select here create an event. First, you connect your Google Calendar account here. Then on the calendar, you select your calendar, for example, doctor's office here. And then you need to provide the start and end date. The start date, you can already find here. Simply remove the current start date and drag and drop this one here. And for the end date, you simply remove the current end date. Put here the start date again. Then type in here dot and then you select from here and a suggested date time. Then you click again the dot and select you. Plus this function adds a given period to a time to the date time. For example, when I type in here 30 and then 70 in minutes, then the end date is 30 minutes later. In this one, let's open up our calendar and check what happens when I click here execute step. I click now execute step and like you can see, a new event was booked, but it has not the subject here and nothing else. So let's remove this one. Go back to n8n and click here. Under Additional Fields, Add Field and select summary. For the summary, you click here expression and simply drag and drop the name of the customer and click on execute step. When we check now our Google Calendar, it also has the name of the customer here. But let's delete it again here and go back, because we also received the information for the phone number. So let's click here at field and look for description again here. Select expression and simply drag and drop the phone number. Here you can also type in your phone number and let's click again execute step. Now when we double click here on the client, we also see the phone number here. And the last thing we have to do is we have to send back a response. For that, we click here plus icon, click type and respond and respond to webhook. Then we go back to n8n canvas again and double click on our webhook here and select Respond to using Respond Webhook. Note the difference is right now, it doesn't matter what the AI agent sends, wrong parameters or correct parameters, it will always think it's a successful booking because when you select here immediately, it will always give you a positive response. So the AI agent thinks the response was successful. But when we select using respond webhook node, we can give him the information. What actually happened. For that, we click back to canvas. Double click on this one and select another. Respond with JSON. Then we select the expression and click this little icon. And this is important that we expect a certain return value. An example return value. You can find my school community. Just copy it. You can also find it in the Google Docs, by the way, and paste it here. Here and a tool called ID, we remove this and select add a webhook body tool, this ID and drag and drop it here. And for the result, we choose result is. Remove this placeholder, go to Create Event and paste in this. That was confirmed. If the status will be failed or something like this, our agent would know that and would give the response back to the customer. Once we got this, we could go back to canvas and click save here. And this way we can make your agent do everything. But the last step is to give our AI agent a phone number. For that, we click here Phone Numbers and click Create Phone Number. Here we select Import Twilio. Then we go to twilio.com and create an account. Once you create an account, you need to verify it. And then you can buy a phone number. A phone number, you can buy it on the phone numbers. Then click manage and then click check the phone numbers here. Select a button. Buy a phone number. This is important here. You need to verify yourself. The verification steps are different for every country, but they will easily guide you through what you need to provide. Once you provided all information, you can click here. Buy a phone number, and then buy a phone number. The monthly fee is around $1, and you usually have also to pay $1.50 to acquire this phone number. Once you bought your phone number, you copy this phone number and paste it here and it will your phone number. And then you need to provide Twilio account SID and auth token. Both you can receive when you go to Twilio and then account dashboard here. Scroll down. And here you can find your account SID and the auth token. And then you simply click import. Once you've done that, it will look like this. And here you can scroll down and select assistant. And here you select your assistant. For example, our YouTube receptionist. What will happen then when somebody calls our phone number, the AI agent will answer. Both custom latency depend on four factors. In fact, the number one hosting determines where the agent lives in. For example, in this case VPI. So VPI has a cost of $0.05 per minute, and the latency it's around 100 milliseconds. The second factor is transcribing. Each voice message needs to be transcribed. This costs additionally $0.01 per minute. Then the agent needs to understand the user. For that, he needs an AI model. This costs additionally 3.21 cents per minute and has a latency of 600 milliseconds. And by the way, the transcribing only takes 100 milliseconds. And the last thing is the agent reply. So he needs to invoice. This costs additionally 3.6 cents per minute. So in total, we have around $0.13 per minute. But this totally depends on which models you chose for each step. Next, we're to try different models. That way you can find the fastest and cheapest model for your use case. The total latency is about 1.2 seconds, which falls under the acceptable range. So for an AI agent, the optimal latency would be under 500 milliseconds. This way, the conversation feels really natural. Between 500 and 1200 milliseconds, there's definitely noticeable, but still acceptable for an automation, especially if the voice sounds confident and continuous streaming once it starts. But you should be really careful if your latency is above 1.2 seconds. This would really feel laggy and the user would not accept it. So make sure when you choose the models that you definitely stay under 1.5 seconds here. I hope you liked this tutorial and see you in the next one.