Master GHL with VAPI, ElevenLabs & Retell: Expert Voice AI Integration Tips | voiceaiwrapper

Raj Baruah shows how to connect VAPI, ElevenLabs, or Retell voice AI to GoHighLevel using Voice AI Wrapper. The tutorial covers API setup, building workflows to add leads to voice campaigns, receiving call recordings and transcripts via webhooks, and testing live outbound calls.
Chapters
Hi everyone, welcome to another video with Voice AI Wrapper. We have been getting a lot of requests for this video, so I thought I'll finally create one. So what is the topic of the video? So if you are using GHL with its built-in voice AI technology, you would have probably already experienced the fact that it's still in the works. And I mean, you get a lot of options outside of GHL's native a Voice AI app. So if you are able to connect, let's say, a VAPI or ElevenLabs, or let's say a retail, to your GHL workflow, that just opens up possibilities in terms of the choice of voice or the LLMs or the transcribers that you can choose, the number of automations that you create, and so on and so forth. Yeah, so In this video, we will talk about how GHL users can leverage these leading voice AI providers like BAPI, ElevenLabs Conversational AI, and Retel, and still use the best of GHL and sync both the products. We will show how the native integration with the voice API provider works, and then how you can connect our product called Voice AI Wrapper to white label the whole gig. So we're gonna cover how you can connect your GHL calendar with your voice API provider. We'll show you how you can then make calls and your AI agent can update, add, or update contacts in your GHL account. And then we'll also show you how you can send your campaign stats, your campaign data, your call transcripts your logs, anything that you want to directly to your GHL account. So let's get started. So we are gonna use a couple of platforms on this video. I'm going to take VAPI as an example as the voice API provider. VAPI has very detailed and very well laid out documentation on how to connect with GHL. So this kind of makes it easy for any GHL user who's exploring voice AI systems outside of GHL's native Voice AI. And we are going to show you then how you can connect your VAPI account with our product, which is called Voice AI Wrapper. With Voice AI Wrapper, you can connect all your voice API providers like Retail, VAPI, or ElevenLabs. And as long as you have your base integration with GHL, your, your GHL account is connected with either your VAPI account or your ElevenLabs or your Retail account. The rest of the workflow, which is automatically creating contacts inside your GHL account, automatically updating campaign information based on your Voice AI campaign, that's going to work seamlessly. So let's start with the first use case. So our first step will be to connect your GHL account with a Voice API provider, and for that For the sake of this demo, I'm going to use WAPI as an example. So, uh, WAPI, if you go to WAPI documentation, and I'll add that to our video description, you can find step-by-step instructions on how you can connect your GHL calendar to WAPI. Once you're done with that, you can go to voiceairwrapper.com and you can hit start free trial. This will get you into an app like this, which is our app. Inside this, you can connect your VAPI account keys, and this will sync whatever integration you have created inside your VAPI account with GHL to Voice AI Wrapper. Now, why would you want to do this? The reason you would want to do this is because once you have connected your VAPI or retail or ElevenLabs Conversational AI account to Voice AI Wrapper, you can now create campaigns. When I say campaigns, you can create inbound assistance. You can also create outbound assistance. And in these campaigns, you can have leads which are fed directly from your GHL account. You can also update leads, remove leads in sync with your GHL account. And when these campaigns are running, all your call logs, call history recordings, whatever you want to send, you can send it directly to your GHL CRM using our built-in inbound webhook feature. So let's start with the steps towards creating and updating contacts in GHL using campaigns. Okay, so what we are gonna test out live is how to add leads from your GHL or contacts from your GHL account directly into a voice campaign. Let's say you're doing a reactivation or an outreach campaign or a lead qualification campaign. As soon as a lead comes into your GHL account, you want to get an outgoing call done to qualify the lead before you hop on a demo. One of the use cases, you can do anything. So to demonstrate that, I've created a campaign and I've named it GoHighLevel Campaign. And as you can see, there are no leads inside this campaign. So what we're going to do now is we will add a lead in GHL and we'll check if that automatically sends the lead into your calling campaign. Yeah. Now inside the campaign, you will notice there's a Manage Leads by API option. If I head over here, there are 3 types of functions that we offer via our API. The option to add lead, remove the lead from the campaign, or dynamically update the lead. Update lead would be in scenarios where you have some custom variable or some custom lead attribute which you want to use on your calls, and you want that to be updated based on the status update of that contact inside your GHL account. For the sake of this demo, we will use the Add Leads API. Now, before we fetch the leads, we would need to go to our GHL account, and we need to do a couple of things here. Now the first thing that we will do here inside GHL is we'll go to settings and we'll create a field. Why we do that is because GHL does not allow passing static values via API, so it will require the tenant ID. So we'll create a custom field with the tenant ID. That way GHL can pass on that dynamic value via API to your voice calling campaigns inside VoiceShare Wrapper. So I'm going to use the single line text output and I hit next. I'm going to choose tenant as the first name. The object is going to be contact, uh, the group will be contact because that is the field that we are sending over to VoiceAir wrapper. So contacts is equivalent to the leads that you're feeding into your campaign inside VoiceAir wrapper. Once I'm done filling this up, I then hit save. Okay, so now the value is saved. And as you can see, there's a field here that we just created, tenant, and it's associated with contact groups. Now I'm going to head over to automations. And I'm going to create a— I'm going to go to Workflow inside Automation, and I'm going to create a new workflow. Okay, so I'm going to say VAW_GHL just to make sure. Uh, right, perfect. Now I need to, uh, configure the workflow. So I'm going to keep the trigger open because I don't want to restrict it. Now the first automation that I'll search for, update contact. The reason I select the update contact as the first automation is because all the contacts inside your GHL account, it doesn't have the dynamic value that we just added. We just added a tenant ID. The tenant ID basically identifies the third-party app, which is Voice Here Wrapper, and then it tells GHL to update the value based on the contact value inside GHL to send that value over to Voice Here Wrapper. So right now we just created the tenant ID, we just created the custom field, but if you're an existing GHL user, you will already have contacts And that custom field will not yet be associated with the contacts yet. So this is what we're going to do first. So now what I'm telling the system is update the contact field with contact field data, and I'm going to select the field that I just created, which is tenant. Okay, now the next thing, for the tenant ID, I'll go to our Voice AI wrapper account, and as you can see, Under the Add Lead API, we give you a curl. This can be even a JS JavaScript code, or it can also be in Python. For this demo, we're going to use the curl option. The first thing that I'm going to copy from this curl is the tenant ID, which is this. So I copy this. Head over to GHL, paste it here. Okay, now I'm gonna hit save. So now you just told GHL to, uh, you just associated or identified which third-party app, which is Voice AI Wrapper, and which account inside Voice AI Wrapper to use when updating the contact. So that's what the tenant ID does. All right, so now the next step is to create a webhook. So I'm gonna search for webhook. I'll go to custom webhook and I'm gonna name it as VAW webhook. I'm going to leave the rest of the fields as it is. Okay, now the one thing which I need to be careful about is a URL. Yeah, so I will head over to VoiceAirWrapper and I'll copy this URL. Now this URL is specific to every campaign inside VoiceAirWrapper, so make sure when you are setting up this automation you select the URL at the campaign level. So in our scenario, we have created a campaign for GHL, so I'm gonna head over here and I'm gonna post— paste the URL. GHL. Okay, for next, next up, authorization, I leave it as it is. And for headers, I go back and I select this. The name of the header is authorization and The key is this. Okay, so I've got the header in and I've got a key in. A quick note on the API key. So if you head over to Voice AI Wrapper, you can create multiple API keys. I've used this because I have one which is active And you can add multiple and you can name them so that you're sure that you're using the right API key. Okay, so the next thing to do here is to add the payload that we're going to send over from Voice AI Wrapper. So we'll head over here and I have a sample payload here. I'm going to copy it from where the parentheses starts. Up till here. Ctrl+C. Go back to GHL. I'm going to paste it here. Okay, so now this is all sample data, right? So we need to replace that with actual information from your CRM. So we will replace first name with the way first name appears. We will replace last name with the last name field. We will replace this sample email with email. And then in case you have custom values like industry designation and so on and so forth, you can also map your GHL field to these, the payload that is going to send. So basically you're telling the system that whatever exists in first name inside GHL, send it to Voice AI Wrapper in its campaign. And similarly, if you have a certain variable which you want the agent to call out, if you have a prompt where when you're talking to the contact, you are also talking about their location, and let's say location is a custom value inside your GHL, you can add that custom value. In my case, I don't have anything for this demo, so I'm just going to remove this altogether. And I'm going to fix this phone number because again, this is hardcoded. Let me just search for phone number. Okay, we're done here. Now, next stop is tenant ID. So this is the tenant ID which we just added in the last step. What we need to do is now we need to tell the system to fetch the associated tenant ID from, uh, the contact that exists inside your GHL account. So what we did just before this is we added the tenant ID to update a custom value in every contact in your GHL account. Yeah. And in this step, We are telling GHL that when you send information from GHL to a Voice AI calling campaign in Voice AI Wrapper, send it here. So this is the payload. So once I'm done with this, I click on save. All right, so we've built our automation, workflow automation, and then the only thing left here is to test the workflow. So I will head over to test workflow. And I'll select a contact, let's say Thomas, and I'll hit Run Test. So now this is going to test whether the automation workflow already actually works. What this test is going to— should achieve if you've done things right is it should automatically create a contact inside Voice AI Wrapper which is ready to be called by the Voice AI agent inside Voice AI Wrapper. So I will— I can check the execution logs first. Perfect. So this says that this has been executed successfully, and I'll head over to Voice Earapper, the GoHighLevel campaign that I just created. Now if it has worked, then ideally the lead should show up here. So I'm gonna hit refresh, and perfect, there you go. So that's how you connect Voice AI calling campaigns, and you can connect any voice API provider like VAPI or Retail or 11Labs Conversational AI inside Voice AI Wrapper. And then you can connect Voice AI Wrapper using your API to GHL to add contacts. You can remove contacts from your campaign, and you can also update contact information dynamically. I hope this is helpful. Let's head over to the next tutorial. So now in the last tutorial, we had connected GHL with your Voice AI calling campaigns, and we now have the ability to add leads from your GHL account directly for your Voice AI agents to make a call to. The next thing is how do you send all this campaign information? So you will get transcripts, recordings, summaries, How do you send it over to your GHL account, or for that matter, any other third party? Maybe a Make.com automation that you have in between, or maybe any automation that you have in between. Let's go through this. Okay, inside VoiceShare wrapper, we have this functionality where you can add an inbound webhook and you can point the data to go to a third-party app. This inbound webhook needs to be created inside your GHL account. Let me create a workflow here. So I'm gonna name it VAW campaigns. All right, now once I've named the workflow, I'll click on add trigger and I'll search for inbound webhook. There we go. So once I've named this, uh, automation, this workflow trigger. I'll scroll down here and I'll get this, I'll copy this URL and then I'll head over to Voice AI Wrapper and paste this webhook URL here. So one of the strong suites or one of the key offerings that we offer with Voice AI Wrapper is the ability to send everything that you capture during your campaign So irrespective of whether using VAPI for your voice campaigns or using Retail or ElevenLabs, everything that you are capturing during your calling campaigns, we get all of that and we'll pass it on directly to GHL using this webhook. So I've added everything, I've added my campaign settings, call time, and I'm going to click on Save Campaign. The next step is to test whether this trigger works, right? So you can see this option here which says fetch sample requests. Now, of course, we haven't even triggered any call, which means we haven't hit this URL with any data from Voice AI Wrapper. So what I need to do first is I need to go into Voice AI Wrapper, make sure my campaign Settings are okay. All right, perfect. And I will go ahead and click on Activate Campaign, and this is going to trigger a call. And what's supposed to happen is after I get a call or any of my contacts get a call inside VoiceShare Wrapper, and if I go back to this trigger, I should be able to fetch that campaign information inside GHL. So let's try a live call on my number. Okay, so I have created a campaign. I'm gonna pause this now, and I received a call on my number, and here's the lead. And if I go to calls, there you go, and I can go in here and I can see the call recording. And the variables that I wanted to capture. There's also a handy feature inside our product which allows you to mark a lead as Do Not Call, and it's if you want to quickly manually uncheck a lead from any future calls, you can do that. There's also an Update Lead API which can automatically mark a lead as Do Not Call, and that works dynamically with the information in your GHL CRM. So now since we've made this call and we have created a workflow trigger here, then it should show up here on the payloads. Perfect. So what this means is there were 3 events which were captured on the call using VAPI, and VAPI captured these events and these were sent to Voice AI Wrapper, and Voice AI Wrapper, due to the integration that And the workflow trigger that we've just created in GHL has sent this over to your GHL account. So among these requests, one of them is the end of the call request. So the first one, yeah, if you notice, this has all information including the call cost plus what happened during the call and the conversation. And then I can use this information to perform any action inside GHL. So I can either create a contact, I can update certain information, and now I can create contacts. Let's say I want to— let's say I'm running an inbound agent and I want to create contacts inside my GHL account based based on people who are calling me. So I can, for example, create a first name of the contact. I'll select the first name under fields. I'll select the inbound trigger, and then I'll go to message and select customer, select name. Then I can add another field. So for instance, I want to create the number, the phone number, and I'll select the inbound webhook trigger message, and I'll select phone number. Okay, and click on Save Action. So what we've done essentially is, because of this integration, whenever you're you have an inbound voice assistant, uh, which you've created either using VAPI or ElevenLabs or let's say Retel, and it's connected with VoiceAirWrapper. When you get incoming calls and you're capturing the caller's first name, email, whatever information you want to capture, that information is sent over to GHL using the webhook. And using this particular workflow, you can create, update contact information directly inside your GHL CRM. So what we've covered today on this call is how to connect your GHL calendar. You do that inside your— taking an example of VAPI, you would connect your calendar inside your VAPI account. Then how to add contacts from your GHL account to, let's say, an outbound campaign using Voice Airapper? You do that using a workflow automation that you create inside GHL. And then how can you send incoming new caller information for inbound agents from Voice Airapper to your GHL account? Again, using workflows inside GHL. I hope this is useful. And whether you are new to GHL or whether you're an expert, if If you follow this video step by step, you— it would probably take you like 20 minutes to set like an end-to-end workflow, and it gives you the flexibility to use any voice AI platform out there and build a whole lot of automations which do not exist if you're using the native in-house voice system inside GHL. If you like this video, feel free to comment. And feel free to give us suggestions on what type of videos you would like moving forward. If you need help, when you sign up on Voice AI Wrapper, you will find an option to chat with our team right here. We respond within minutes, as you can see here. There are also detailed walkthroughs inside our app. Plus, if you need a call, if you have a more complex automation inside your GHL account, you need some help, you can always book a call with us. Using the call schedule function. Thank you and look forward to meeting you in the next video.










