📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

How I built a completely automated lead qualification bot for a mortgage loan officer

Justin Melendez32:45

Transcription

All right, so in this demo, I am going to show you how to create a conversational AI qualification SL booking bot for a mortgage loan officer. Now, I create and sell bots like this anywhere from $500 to $1,000 for a setup fee and anywhere from $297 to $3,97 for recurring maintenance. By the end of this video, you'll be able to build this exact bot for your business or for your agency. So, without further ado, let's hop into the demo.

Now, this is a technical demo, so before we hop in, I want to cover some ground rules. Why are we creating a demo for a mortgage loan officer? So, MLOs are one industry, or one—I say I should say job type—that are in a highly competitive space, much like real estate agents and insurance agents, where speed to lead is very important. What do I mean by speed to lead? If somebody reaches out and tells you that they're interested in their service, it is very important that a mortgage loan officer gets out to them as fast as possible because they are likely reaching out to their competition. Now, leads in this industry tend to be expensive, so it's important that we maximize our opportunities. So, every time we generate a lead, if it's costing us $50 or $60, we don't want to wait four, five, six hours to get back to them; we need to get back to them within 30 seconds, and a conversational AI bot just like this will help you do that.

Now, time is a premium for these people. They are sales-focused; these are sales jobs, so they spend their days talking to people, networking, reaching out, and/or servicing their current clients. So, we want to help them save time, energy, money, and improve lead quality, as well as have an assistant booking appointments on their calendar non-stop. But where would this bot work? So, in this demo, we're going to demo this in a website widget. I'm actually going to use a company called Kav. If you're in the real estate investing industry, you're probably familiar with them; they are a nationwide hard money lender. I am not at all affiliated with Kav; I did not build this for Kav; I'm just using them as an example because a lot of people know about them. Kav, if you're listening, I'd love to work with you. I can build this out for you, but in this demo, we are going to demo it as a web chat widget, but this also works as an SMS bot, this works as a text message bot, this works in Facebook Messenger, this works in Instagram Messenger, and a few other channels that I'm not going to mention because they're just less common.

Now, when will this bot be triggered? So, there's multiple scenarios where a bot like this can be triggered, and again, I'm not going to explain all of them, but just a few scenarios would be like if somebody engages with a web chat widget—and if you don't know what a web chat widget is, just continue watching this demo and you will see what I'm talking about—when somebody misses a call. So, if somebody calls and we don't answer, we can trigger an outbound SMS to start this conversation using this qualification bot. If somebody sends the company a DM on Facebook or Instagram, or somebody fills out a form on their website, or somebody fills out a lead form on social media platforms, it can trigger an outbound SMS—so extremely powerful, especially for a company like a mortgage loan officer.

If we come in here, I—I do want to—I want to give you a disclaimer: this is a technical tutorial; they're going to be longer, it's going to be dry, but it is important that you watch this all the way through, and if you are following along, it's important for you to not be distracted. This entire demo, you can use a free version of Close bot; the free account in Close bot. If you use the link below, I'd appreciate it; you support the channel, but it costs you nothing. If you're already a Go HighLevel user, you can get a free account and create this exact bot. I encourage you to follow along, to watch this whole video, because you might miss a small detail that'll be incredibly frustrating for you to troubleshoot if you didn't see the video. So, there are some extra prompts and some extra settings that we will—specifically for this bot—that we'll be using. As always, I'll provide these prompts; actually, I'm going to provide this entire mind map here, this Whimsical board as a PDF. There should be a link in the description where you can download the PDF. I have nothing to sell you; I will just send this over to you so you can go ahead and create this for yourself.

Now, here's the little mind map we have going. If you've watched any of my tutorials, you're probably starting to realize that there is a framework, a recurring theme of how I build these bots. Now, I think that's important for you. I'll be completely transparent: I am developing this framework every time I come out and I do a demo like this, or I build a bot for another company; I try to refine my process. So, as you watch these tutorials, as you see these mind maps, I'm refining my flow, and I recommend you do the same, because the less time I have to spend creating these bots and the more time I can spend engaging with the customer, or maybe improving these bots, the better quality, the better the customer experience, and the more time I save. So, first things first, we're going to hop into a demo account in Go HighLevel, and we are going to create some custom fields. You see here, these custom fields are going to align with some objectives that we are going to create inside of Close bot, and then we're going to create a booking calendar, create the actual bot inside of Close bot, we're going to create the automation that supports that bot inside of Go HighLevel, then we're going to create a live chat widget, and then attach it to a demo funnel, and finally test that bot live. So, let's go ahead and hop in and create these custom fields.

So, the first field we're going to create is a custom home—homeowner—I'm sorry, first homeowner field. So, what we're going to do is, if you're inside of your Go HighLevel account, you want to come into settings; we're going to go to custom fields, and we're going to create a folder called—let's call it MLO. So, once we're in this folder, we are going to add a field. Let me make this bigger so you guys can see it. We're going to make this a radio select because it's pretty much a yes or no question: is this person a first-time homeowner or not? And we're going to call this First Time Homeowner, and the options are going to be yes or no. Next one we are going to create is Approximate Credit Score. So, we're going to make that a number. The reason we're making this a number is we want to be able to do math functions on this, maybe later; maybe we want to create a customization where we disqualify anybody who's under a 620 credit score. So, we're going to try to force the bot to give us a number. So, let's go and say Approximate Credit Score. For some reason, I can't type what I'm doing these demos; I apologize, you have to deal with that. Now, Estimated Income; we're going to make that a monetary value again, so that we can do math functions within Go HighLevel in the future. Estimated—did I say monthly income? Oh, just Estimated Income, and that is a monetary value. Next thing, going to do is Targeted Monthly Payment, which is another monetary value; Targeted Payment; and Mortgage Motivation, that's going to be a short description, so a single line, a string that's intended to capture why they are reaching out. Awesome, so that should cover our custom fields, and the next thing we need to do is create a booking calendar. So, we're just going to create a demo booking calendar here because we want the bot to be able to book calls on our calendar. So, we're going to come into—we're still in our settings—click Calendars, and then we're going to create a calendar, and we are going to do—let's see—More Types—let's just do an Event Calendar; MOW Calendar; MOW Demo C Calendar. Now, if this were a real company in a real calendar, you would come in here and mess with the availability, but just for now, for demo purposes, I'm going to leave this wide open and just confirm. Awesome. We'll come back in here and copy the ID when we need it.

Next thing we're going to do is come in here into Close bot and actually program the bot. Now, I have all of the actual prompts that I'm going to use and the custom objectives in here that are relevant to the bot. Now, I only put the custom objectives in here, and what do I mean by that? There are standard objectives like name, phone number, booking, email that Close bot automatically gives you a prompt for. We may make some small modifications to those, but they're pretty standard, pretty self-explanatory, so I didn't include them in this blueprint, but I will include these custom objectives in the blueprint because there are some extra prompts that you're going to want to pay attention to. So, first things first, we are going to come in and we have a blank bot here; I named it Kav Mortgage Bot, but I haven't done anything aside from that in here. Once we connect it, we could enable these general settings like Multiobjective Handling and Conversational Rescheduling. I think Multiobjective Handling is probably the most important one here. We're going to leave the model as OpenAI. If you wanted the bot to be a little bit more conversational, I find that Anthropic works a little better, so you can flip-flop these and test them as you see fit, but we're going to leave it just as it is. Bot name: Sarah. No—you can leave it like that if you want, or you can put something else in there. So, uh, Delay in seconds, we're not going to have any delay for this demo, but maybe if you're building this for a client or for yourself, you want it to seem more human-like and have a delay. If you wanted typos, or if you wanted to uh break up larger messages into like multiple text messages, you can; and if you had any prohibited words, you can put them in here. Now, this could be important, especially for the financial industry; maybe there's some words that you don't want to say, you can add those in here, but we're not going to do it for the purposes of this demo.

Next thing we're going to do is integrate the bot. So, if we come in here, we're going to do Lead Brain. I think the sub-account I'm doing this in is the Coach Demo. Awesome. Save that. Now, anytime we uh integrate a new account inside of Close bot, we want to save, and then we want to refresh, because if we don't do that, then all the custom fields that we just created won't actually populate when we're actually making our objectives. So, I always save and refresh anytime I create a new custom field or anytime I integrate a new sub-account into my Close bot. Now, we have some additional general settings that popped up because we're integrated now. Leave conversations as unread. Always Aware AI is on, which is good. We're going to turn on Multiobjective Handling—we can't do that yet, 'cause we have no objectives, so it's grayed out—but Always Aware AI, that is important; and then Bot Off on Manual Reply. Um, Always Aware AI makes sure that even if the AI is not turned on, the messages are being sent to Close bot so it has context for future conversations; and then the Bot Off on Manual Reply ensures that if your client responds to the bot manually that it'll automatically turn off the bot so that it's not interfering; you don't have the bot and the human stepping on each other. So, let's go ahead and click on the Tech here. Um, you could turn all these on if you want to. Essentially, what this is doing is adding tags if it determines certain scenarios. I recommend that you test these because sometimes, like the Aggressive one can be a little too sensitive and turn off the bot prematurely if somebody says something that may be exciting and it's just misinterpreted as aggressive, but for the purposes of this demo, we're just going to leave it on right now. These tags are also important because, like, you can create automations in Go HighLevel where anytime the AI Goodbye Detected tag is added, maybe you do some certain—certain action. So, that's up to you. Fun stuff. Main Prompt. So, let's come in here. Bot voice, we're going to add Friendly and Ironically Unprofessional, just to be more conversational. You can test the functionality of it and end of the tone as you see fit, but what we're going to do here is under Why the conversation is happening, we're keeping it super simple. This is another area where you're probably starting to notice a trend or a framework: I'm keeping these bots, these prompts, as simple as possible so that I can replicate performance, so that I can replicate—I don't know—just have a repeatable process, because if I'm scaling this business and I'm building a 100 bots, I don't want them to be 100 different variations of each other. Ideally, I would follow a specific um framework and continue to iterate on that, and if anything changes, then I modify my framework. So, here I say the conversation is happening because you are a skilled Apprentice—that's wrong—you are a skilled salesperson for—I'm going to take these custom values out here because we're not going to create this with custom values; this is specifically for Kav at—Lead Name is contacting me because they're interested in getting a mortgage; they either found you online or they saw a social media advertisement. So, I think that prompt alone is sufficient, and if it wasn't, then we would come in here and we would just iterate and change it. You notice I save often; any time I make a change, I save. That's a habit that I've got into because I've lost too much work in the past; I recommend you do the same. So, while that's refreshing, we'll come in here and review the important business information. I like to break this prompt down into clean sections. I find that the AI has a better—a better time sort of interpreting this information if it's organized, just as like you, a human; it's—it's nice on the eyes, it's easy to see; do the same for the AI. So, Company Name is Kav; Company Information—I'm not going to read that, but essentially it's just a summary of Kav's company information—and then Services Provided. Here, I just created a—a commo—Del limited list of what sort of services they provide, and then the company website. You could add sections here if you wanted to, like pricing information, or what states they're licensed in, or hours of operation, you name it, but you just create a little section and then have the summary just below—below it. So, I'm going to go ahead and copy that, come in here and paste, save, and then finally for the main prompt, we have How to respond. We're not going to use Lead Name in your responses. I find that if you don't include that little note right there, the bot is going to continuously say the lead's name in every response, which is not human, so we tell it not to do that. Don't be too heavy on sales; make the conversation casual. This is going to be on a chat widget, so we just want to have a casual conversation, not necessarily try to close the sale on this qualification conversation. If Lead Name asks you a personal question, just come up with a sincere response. This kind of does—it makes it robotic, but also gets back to the objectives; and then keep your responses less than 160 characters in length. This is to create those SMS segments; keep it under one segment per SMS, so this is just a cost thing if you're having an SMS conversation. So, let's go ahead and copy that and paste it and save. Awesome.

Now we're here at the objectives, and first thing we're going to do is we're going to ask for the lead's name. So, I'm going to create a new objective here, and I'm just going to search for the field name, and that should automatically get lead's name—ideally first and last—it automatically fills this stuff. So, this is the one of the standard prompts that I was telling you about. We're going to go ahead and enable Skip this objective if the field is already filled out. This is a gather info; we're not going to do any max attempts; we do want their name at a minimum; and sensitivity at 50 is fine, and click save. Now, next thing we're going to do is let's go ahead and look at the objectives we had here; I put them in order. So, let's do Mortgage Motivation. So, this is going to ask the lead, hey, why are they coming in? Are they just looking for a pre-approval, or are they ready to buy a home sometime soon? So, let's go ahead and come in here and add an objective, and let's call this Mortgage Motivation; search for the field Mortgage Motivation. Now, if this doesn't show up for you, it's either because you haven't created the custom fields yet, or if you did, you haven't refreshed this page on Close bot before uh you went into create the objectives. Now, if you're going to go and refresh the page now, just make sure you save all your work before you refresh, because if not, you'll lose it all. So, Mortgage Motivation, there it is. We're going to skip this objective if it's already complete, and then Short Description, I provided it for you here; you can also copy and paste as well. Looks like we don't have an extra prompt here, so we can leave that blank, and then I think we left the Skip Objective, Gather Info, Max Attempts are false, and sensitivity is 50, so that looks good; everything is kosher. And next thing we're going to do is we are going to ask—let's see—if they are a first-time homeowner. So, I'm going to copy this; we're going to create another objective, and we're going to search for First Time Homeowner; skip if is already filled out; determine if Lead Name is a first-time homeowner; and there's no extra prompt; there's no Max Attempts; and sensitivity is 50, so it's a pretty standard prompt there, and we're going to save. Next one we're going to do—now this is where the prompting gets a little custom because we're about to ask some sensitive financial questions; we also want a specific response from the bot because we created these as numerical fields, so we're going to try to get that information back in the format that we expected, and we're probably going to add some Max Attempts because if people don't want to answer these questions on a website, we don't want to press them; we still want to talk to them. Estimated Income, that's the next thing we're going to do. So, we'll come in here, create a new objective, we'll call it Estimated Income; we're going to paste a short description: Determine Lead Name's annual income; and then under the extra prompt here: Determine the income before taxes; if Lead Name gives you a monthly amount, automatically calculate and return the annual amount. I think I'm also going to add here—and I'll change it here so you have it as well—ensure you—actually, I'm not even going to do this; I think that Close bot's smart enough to know that this is a numerical field and it's going to return the numerical field, and we'll test this live. So, we're going to leave it just like that. Next thing we're going to do is look for the auto-field update, which is Estimated Income; skip this objective; Max attempts, we're going to set that to three; and sensitivity to 50. Cool. I'm going to leave these three on the same objective priority and let the bot choose how it wants to ask those questions because they're all financially related. You can make them each their own priority if you wanted to, but we're going to keep it the same here. So, next thing we're going to look for here is to Targeted Monthly Payment, or Target Monthly Payment. So, we're going to add an objective here; we're going to call it Target Monthly Payment; we're going to paste a short description: Determine how much Lead Name wants to pay a month for their mortgage; and then we are going to copy this—let's see—this is—this can be an estimate; it doesn't need to be perfect. If Lead Name responds with a non-numerical value like—Good, okay, that's not right; that was for their credit score. I'm going to go ahead and remove this extra prompt; I don't think it needs an extra prompt here—here. So, we're just going to make that blank. Awesome. And then we're going to come in here and go to Target Monthly Payment; skip if already—

Complete this might be sensitive, so did we say we were going to? No. Max attempts here, so we're going to leave that empty and then close. Awesome.

Next thing we're going to do is the estimated credit score. Oh, I see what I did here. Here, I went out of order. So let's come here and copy approximate credit score. Approximate credit scores: the custom field we're going to update. We're going to skip if it's already filled out. The reason we're doing this, the skip field if the objective is already filled out, is because maybe we have a web form that's actually qualifying the lead, and they already provided this information. So we don't necessarily need to conversationally bring this out, so we could skip that if we need to. Uh, short description here: we're going to determine the lead's approximate credit score, and then this can be an estimate. Now, looking back at this, probably would have been a better field to create with maybe a radio select, had like poor, Fair, good, great, perfect, and then that way we can just have the bot respond with what category of credit score they're in. But we're going to leave it just like this for now. We're going to see, hey, this is an estimate; it doesn't need to be perfect. If lead name responds with a non-numerical value, like "good," make an assumption for the credit score. We'll see what it does. I don't know. I, I actually don't like this. I think in the future, I would make this a, like I said, a categorization, but we're going to leave this blank. This is a sensitive question, so we're going to set the max attempts to three. And cool.

Now, as you can see, all these objectives are customizable. So if you wanted your bot to collect more or less information, you would just create that here inside of Close Bot. Last thing we're going to do is we're going to create, uh, we're going to collect information like phone number; skip if it's already complete. Maybe we're going to get their email; skip if it's already complete. And then we're going to book them on a call. So we'll come in here and look for Booking Calendar AI booking. Now we need to go back in into our Go HighLevel account and copy the calendar ID. There's a little copy button here for our calendar and just paste it in there. Now, book a 15-minute phone call with lead name. I think that's appropriate for the mortgage industry, so we're just going to go ahead and click save. You might want to add Max attempts there if you don't want it to just keep knocking at the door and try to book that person. For click on here, we should see that it actually linked the calendar, that that's that we created, and you could tell by the name, that by the name being pulled in. I think the bot here is complete, and all we have to do is hop back into Go HighLevel and create our automation, our live chat widget, and our demo funnel so that we can demo this thing.

Let's go ahead and go back into Go HighLevel, and let's create the automation that will support this. Now, if you don't remember how to create this automation, if you go here into the Integrate tab, into in, uh, in Close Bot and click on the setup instruction, there are setup instructions that show you exactly how to create the workflow. It is super simple to create this workflow, so I, I, I would recommend that you reference this to do it. But we're actually going to do this live, so I'm actually going to create the live chat widget first, because I'm going to show you a little trick. If you're demoing this for other people, this may be useful for you. So let's go ahead and go to Sites and Chat Widget, and we're going to create a live chat widget, and we're going to name this MLL demo. Save that. Next thing we're going to do is go to Automations, and excuse the mess here; this is just my scratchpad account. And then we're going to name this MLL demo bot. The trigger is going to be Customer Replied, and then we're going to say Live Chat MLL. This is arbitrary; this is me just naming the action so I know for later. The reply channel is going to be Live Chat, and then I'm actually going to say, here's the trick here: Live Chat is MLL demo. So that if I have other chat widgets inside of my Go HighLevel account, then I am only doing this for the MLL live chat. So that's just a trick I use if I'm demoing multiple industries. So now, anytime somebody sends a message to these this live chat widget, it's going to be sent to CLB; it's going to process it and respond if the AI tag isn't off. All that happens on the back end; you don't need to program that in some complex workflow.

Next thing we're going to do here is add an action, and that action is going to be a webhook. Super simple webhook, which is a post request to this link. Now, if you were white-labeled, you can use the AWS link, but we're transparent here. Save, publish, save. Awesome. So that's all we need to do as far as automations go. We created the chat widget. Let's see, where are we? I don't know what I did there. Let me remove that. All right, so Close Bot looks like we completed that. We created the bot automation, we created the chat widget, and now we just need to create the demo funnel. So I'm going to show you a trick as well that I like to do with the demo funnel. I'm actually going to upload an image here. This is if you're an agency and you want to demo this; you want to make the demo a little bit more personalized. What you can do is I took a screenshot of the Kavi website. I literally just went to the Kavi website and took a screenshot of it. I'm going to go ahead and leave that there. I'm going to go to Sites. We're going to create a new funnel. We're going to name it MLL demo, and then we're going to add any step. Call this MLL demo. Let's call a demo page. Maybe we want to copy this in the future and use it for another industry. What we're going to do here is go into Settings, and then we are going to assign the live chat widget that's appropriate for this, which is the MLL demo chat widget that we created earlier. Make, make sure you save it. Then we're going to go ahead and create the page from scratch. We're just going to add a blank section here. I find if you don't add a section, it won't let you save, so we're just going to leave that as a blank section, and then I'm going to come up here to the background, and I'm actually going to set that screenshot as the background. So now, if I save that and preview it, I should have a website that looks like it's Kavi, and it has the chat widget. So let's see. There you go. This is just a way, and you can mess with the sizing and quality and all that stuff, but this is just a way, like, hey, let's say I had a call with Giobi and I wanted to demo this for them, just a way to personalize the demo. Right here is the chat widget. If I wanted to get cute and change the styling, I could, but I'm not going to here.

So at this point, I think the demo should be good. So let's go ahead and say, hey, I need help. If you notice, I'm leaving typos in there just to see how, how the bot deals with it. So I'm not going to speed this up. I'm going to leave, leave this real time so you can see the demo. Hey, I'd like to help out. May I know your name, please? That was our first objective. So let's go ahead and give it the name. And if we come in here to Close Bot, we can actually see these messages coming in and out. So if I scroll down here and I click on this contact ID, you'll see all the messages coming back and forth, and there's information for each of these messages in here. Here, if you wanted to troubleshoot or debug. But let's go back in here. Nice to meet you. Are you looking to get pre-approved, or are you ready to buy a home soon? Just looking for pre-approval. Now you can create custom scenarios inside Close Bot that get fired off and triggered based on like maybe if they answer they're here for buying a home soon, or they have a home already identified, you can actually like skip some objectives just to get them to human as, as quick as possible. But for the purposes of this demo, we're just going to keep it super basic. Great. Have you owned a home before? So I was trying to figure it out if we're a first-time buyer. No, I am a first-time buyer. Now, Kavi is an investment firm, right? So like they, they provide loans for like house flippers and real estate investors. This demo is probably not necessarily appropriate for them, but you could see how all these objectives are customizable and modular. You can make this for a hard money lender if you needed to. That's exciting. Do you know your current credit score? I think it is almost perfect. So I'm doing this because I'm curious to see what it actually fills that field with because I made that field a numerical value, but I didn't give it an answer of a numerical value. So I'm really curious to see what that would actually do. And once it responds, I'm going to go back into, uh, Lead Brain or Go HighLevel to see. That's fantastic. Could you share your monthly income before taxes? This will help us determine how much you might qualify for. So let's come in here and let's see actually what it did to us. So let's hide empty fields, and then MLL look, it, so it added 800 as a credit score. So the AI actually interpreted "perfect" as 800, and it put 800 in there, which is pretty freaking awesome. All right, let's see, uh, monthly income. I make, uh, 6,000. I think this is another opportunity for the AI to turn this into annual income, I believe. So let's see if it does that. That's helpful. What monthly payment are you comfortable with? Okay, so let's come in here, just refreshing, and there you go. It automatically calculated our estimated annual income, which is awesome, based on the monthly income that I gave it. Let's see. I don't want to pay more than 2K a month. You see here, I use sort of slang and shorthand, and then I also had a typo here with AA. This should automatically be processed and stored in the CRM as $2,000, uh, a month. And then the last thing we need to do, I just want to make sure that actually gets stored correctly. If you're building this bot, you want to be doing this sort of testing as well and make sure you're getting your intended results. So there you go, 2,000 is the estimated monthly payment. Let's come in here and speed through this just so that we can test the booking functionality. I know it's going to ask me for a phone number. This isn't a real phone number here, so don't spam this number, poor person whoever has it. Cool. And now it should actually conversationally book me on the MLL's calendar. Got it. Thanks. How about we set up a 15-minute phone call for today at 1:30? Today is too soon. What about tomorrow morning? I want to make sure that it can go back to the calendar, query availability for tomorrow and return those results so we can confirm an appointment. Tomorrow morning works. How about we schedule for 9:30 a.m.? Does that fit in your schedule? Yes. That should confirm the appointment. Once that responds, I'm going to go in and check, and that should end the bot interaction. Let's see. Great. Have our call booked for tomorrow at 9:30. Let's see if it actually did that. So let's go into Appointments here, and I might have to refresh here. Let's just go ahead and do that. Where did this, oh, I see what it did. I actually gave it a phone number that I've used in the past, and so it merged that with another contact. But it looks like, uh, support@leadbrain.io, which is a contact I already had existing in my demo account, booked for tomorrow at 9:30 in the MLL calendar. So it actually worked. As you can see, this is an incredibly powerful piece of technology that probably every single mortgage loan officer should have in their toolbox. If this was helpful for, to you, this was helpful to you, please go ahead and like, comment, subscribe. If you've never used Close Bot before and you want to use Close Bot, I ask that you use the link in the bio or in the description so that you can support the channel. And if you're a mortgage loan officer and you want to get this set up for your business, feel free to reach out to me. I'll leave a link down below where you can contact me, and I hope you have an awesome day. Hopefully this was helpful. Bye.