Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
@muhammadfurqan4616 I'm not aware of much real world use cases where you would need these API steps other than make or zap as they provide the necessary integrations to connect with ghl and get things running. Haven't used ghl so can't give you any in depth insights other than the basics. :)
Jannis you bloody legend!!! It has been road dealing with the documentation in GHL may as well have been written with emojis... You always managed to come out with videos that are very helpful exactly when we need them... From New Zealand you get the biggest hi-5 brother
@@jannismoore Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Huge shout out to you man! I was trying to update Custom Values in an automation that creates a subaccount, but didn't see any way to generate a Location API in an automation. Your video helped me get the Access Token and the companyId. I just tested it and so far its working like a charm! Thanks!!!!!
Brother Samin: Assalam o Alaikum Umeed hai k aap khaireeyat say ho gay. Bhai aap bura na manana, aik request hai aap say. Aap Kay is comment mein ko oarhnay say yeh lagtaa hai Kay gods work is to teach people the worst API ever, intentionally. Bhai yeh BUHAT sakht alfaaz hein, Joh k I understand in American language is used as everyday figure of speech. Laikin aik Musalman bhai ko careful rehnaa chaheeyay ... Kay aisay sentence mahawaratun bhee use na keray. I hope Kay aap mairee is attempt ko positively lein gay, aur aindaa ehtiyaat Karein gay. JAZAKALLAH
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Jannis, I can’t thank you enough for this video! You really helped me understand a lot more in 52 minutes 11 seconds then I have in weeks dealing with this 😂
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Hey Jannis - great video, I really like the way you teach! Unfortunately the Marketplace screens have changed since you recorded this, so it was a little challenge to figure out where everything went. And now I have that dreaded 400 error when making my OAUTH 2.0 connection, so waiting on HL support. Hopefully I can come back and finish you video in a day or two!
You're right, but you can fill out the basic part in profile - basic info . create a name of your app, upload an image of your app and create a tagline. Then you need to go to the advanced settings - Auth and continue filling out as we see in the video. I got a 400 error also, but I was my fault. I used a different subaccount in the connection and in the calendar, but I realized it and now works perfectly. I hope you can fix it!
Finally found this gem! Thank you! Can you also make a video on adding custom workflow actions to the GHL workflow builder similar to GHL plugins and LevelUpMarketplace?
Hey Jannis, fellow german here :D Yeah the API v2 is a bit of a headache and seems overly complicated. What about the internal GHL private integrations feature? Can we not just use that instead of having to create a new app? Great video, I can imagine how much work you put into it!
Thank you for this so helpful! My question about scopes is why not just use them all? Like what's the point of selecting the ones you need rather than just allowing all of them to be used? I don't know if I'm restricting or causing problems by not selecting the correct scopes
Huge Value here thank you How do you deal with High Level API requiring the timezone offset in the start and end dates, when daylight savings is involved?
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
@@muhammadfurqan4616 The integrated Make options are decent, you can also use private integrations now as well. Full control like this is good for agency wide access, EG: if you wanted to do api requests on any sub account in your agency with the same scenario
Hi Jannis! If we have to make this app public, how would this scenario work, because we can't definde the variables as you defined in the first module, because every user will have a different variables. I'd be grateful if you could please answer.
Public is a whole other thing. I recommend builing it private and then asking them to switch it, or if you recreate it. Otherwise for every little change you need their permission to update things for you.
I am stuck on the locatinoId part. I have a different use case and I'll be needing the flow to pull in the location ID on it's own. This is going to be used for the stack across multiple SaaS subaccounts so I can't just use one subaccount location ID as a variable.
@jannis 36:22 Your company_id is bundled into the auth token and refresh token package when using the spotlight API tools it is at the bottom of the returned json
I'm unclear on the use of refresh tokens. When are they necessary? Currently, I have a webhook that captures the location ID and gives me the company ID, access token, and sets an expiration date 24 hours after the access token is generated. I only create a new access token when the current time surpasses this expiration date. Given that I can generate a new token whenever needed, under what circumstances should I use a refresh token?
Refresh tokens are necessary to keep the subaccount authentication alive. If you only authenticate a single subaccount, you don't need to worry about it as Make.com handles that for you, but if you want to use Agency LeveL accounts, you need to have a custom setup that handles authentication too.
@@jannismoore Awseome video, I have several scenarios built using your tutorial, I had the same question about agency level, as the "Get Access Token" body requires client id and client secret, which are given in the connection, trying to wrap my head around how this request works compared to "Get Location Access Token from Agency Token"
Great video! Was stuck on getting 400 requests but realized I need to set it to SPACES instead of COMMAS! Thanks for that. However, I'm still struggling to enable scopes because it now requires a webhook URL (a recent update?). What do I add in there?
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Sturggling with 43:02. Im gettung a Status code: 400 Invalid locationId or accessToken does not have access to following location Any idea what could be wrong?
Hey Jannis, have you seen the (I believe recently released) "private integrations" feature in the ghl settings sidebar? On ghl support they say we can make api calls to v2 easily with this. Can you shed some light on it?
I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Appreciate the amazingly detailed video! I need to setup something very similar however, I am trying to create an invoice which is a POST request which requires a lot of parameters in the body. It also seems to only accept application/json instead of x-www-urlenecoded format. Are there any sources you could direct me too to help me with this issue?
Instead of sending along a JSON body, you can send x-www-urlenecoded (Within make.com, you can select that as a predefined option for the body as well)
First of all thank you for this video. It has helped me figure out this crazy API. my problem is is set everything up trying to access the social scopes. everything works and i get a success true statusCode 201 message Created Post but i dont see anything posted . Any idea why this isnt working when it says that it did? Thanks again 🔥
@@jannismoore I’ll take a look around and see. It really weird because there is no other output. Just a response saying Created. Maybe it’s not really working yet.
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
That depends on what of both you want to connect. Agency level scopes require the big one, but if you only want to authenticate a single sub account, the small one is sufficient
How do you even get dev support? I am so close to completing an automation, but I keep getting a 401 (Unauthorized) code that I can not figure out. *different use case*
It's not easy, but you got to write them that you have some technical error and after quite a bit back-and-forth, you'll get connected to an actual support engineer.
Hi Jannis, how do you integrate this with go high level so that you can use it as a vapi tool to call facebook leads coming into HighLevel and then feed answers back to high level and book appointment? Is it possible? Step 1 : Facebook leads come into automation in GHL Step 2: this triggers call with vapi AI assistant Step 3:vapi assistant checks and books appointment in GHL Step 4: confirms and sends email/text reminder confirming appointment from Go high level Thanks for any help you may be able to offer. I followed this video but not sure how to put it into a make work flow to achieve the above result
Damn man thanks for this. Question if I use the subaccount method, I don't need to worry about refreshing the token as make will take care of that right? It's only if I use the agency one with the access token that it expires every 24 hours. Did I get that correctly?
In the next continuation of this video would it be possible to now have a VAPI request coming in to check calendar availability between a choice of 2 different calendars within the given GHL setup. And then upon the final confirmation from the caller books an appointment while saving contact information and precall qualification questions within GHL. This will complete a given intake and appointment setter scenario from start to end.
Hey Jannis, great vid. Have you seen the (I believe recently released) "private integrations" feature in the ghl settings dashboard? On ghl support they say we can make api calls to v2 easily with it. Can you shed some light on it? I really think it could save me from going through this whole marketplace fluff.
Haben't looked too deep into this, but I'm sure that integrations tackle specific things for a sub account so you'd still need some centralized way of accessing all of it.
I need help getting this to connect to the workflows. I would like to export my workflows and all of their steps, messages, triggers etc to analyze and create and SOP for each one using ChatGPT. Is this possible?
This is super helpful. However I'm having an issue with the agency level permissions - I only see sub-accounts in the GHL auth popup. My agency doesn't show there even though I'm logged in using my main agency email. Am I using the wrong URI?
I'm following the video and when I try to save the first HTTP "Make an OAuth 2.0 request," I get this {"message":"The request failed due to failure of a previous request.","code":"SC424","suberrors":[{"message":"Token URI - Service is not reachable.","name":"InvalidConfigurationError"}]}. What do I do?
I tried using another GHL account and it told me theAuthorization and token were wrong. I tried again and I only got comma as the scope separator. I need some help.
First thanks Jannis! ... unfortunately GHL tempts to change everything in a 2 month cycle does anybody here know a tutorial explaining how to configure a app for current version?
So following your video, you explain it very well pretty much. You need to be the one doing videos to explain their API 2 for them cause the docs suck and hard to follow. My question is: When you run the initial Authorization code URL to get that code to pass to the get access token, you can set a field with the access token and refresh token in your database or mine rather. And set the expire date based on when the expire_in runs out so when you run say createContact then you can check to see if the current date/time is passed the expire_in for the original token and if that's the case then run the refresh token and reset the token in your database then rerun the createContact API end point. Am I correct so far? So you don't have to re-run that authorization code URL to select and account the redirect to get the new authorization code each time you want to run the createContact End point API? So you run the createContact End point API and check the expire date and if its passed then run refresh token to get new token, then rerun your createContact end point API to create a new contact in gohighlevel correct? Now what happens when the refresh token expires? It says it expires once a year. Do you have to re-run that authorization code thing again at the end of the one year mark or what? THat's the part that is unclear to me is how often you run the authorization code uri then when or at one point do you run the refresh token part.
@@jannismoore yes extremely annoying. Not alot of tutorials out for this platform to teach novices like me. v1 was simple to use and may go to it for the time being until I have to bit the bullet to convert to v2. API 2 sucks bigtime. not very friendly or easy to learn. Now I have an issue with the get Contacts and passing the exact same stuff and same format as the docs say with the correct version number and my setup is exactly as they have in the docs example and it comes back as unauthorized: version header was not found but again its the exact same format as the example minus using my locationId and the correct access token for authorization Bearer.
Superb Brother did the same thing few days back in Node Js ,also added the refresh token mechanism and everything works perfect , just need to clear one thing from your side and that is regarding the redirect uri provided by GHL itself i think i use use the white label redirect uri ,at many times for standard account it gives error or doesn't work , can you confirm it.
How do I use this API to upload an image to a custom contact field in GHL? I found a way to pull all of the fields using this video but my final step is uploading an image I've dynamically created to a custom field for a contact.
Hey, it was not clear, but seems like marketplace is not part of the GHL subscription plan. I had to create a separate developer account that has nothing to do with our agency account, so how do these come together?
I tried, and I assume you can as well, but in Zapier you need to use developer tools to make your own app, the connection part in this video, its a lot more complicated and Zapier is really a pain to do this stuff. I have Zaps that dont work and I will copy/paste the exact data into make or the test request on HL Integrations API and it works first try. I have burned many hours trying to get V2 API requests to work on Zapier when it takes minutes to get it to work on Make.
When I get to the step for the HTTP request in Make, I've set up everything exactly as you have, but when I click save and it tries to pull my HighLevel accounts, it gives a ""Authorization denied" error. Any idea why this may be? I'm on the 497/m high-level plan and setup the same things you did in my test to see if I could get it to work
I’m trying to add the Google api key to my go high level so the address can auto populate in the address part of the form/survey the codes I have seen on UA-cam aren’t working for me can you please help me?
I'm getting a 422 status code when trying to run the authorization token request and not sure why. It's saying company id cannot be defined but it should be since i followed all previous steps to find it and added it to my variables. Any thoughts?
For anyone else having a similar issue after going back and forth with makes customer service I figured out that the keys in the 2nd OAuth 2.0 request need to be labeled locationId and companyId as per ghl's documentation. No underscore and with a capital I.
Jannis, I did the simple version, and when I run the scenario it shows that it works, but when I call the Vapi agent it does not actually book the appointment. What am I missing here?
I suggest to try the run once manually with an actual call - you will then see the response request for reach of the http calls, which contains more details whether it worked or not
@@jannismoore I ran the agency setup, which is the longer setup. It came back with all the appropriate information of the right calendar I am attempting to book an appointment on, but it does not book the appointment. The Vapi agent says the appointment is booked, but when I check the calendar there is nothing there.
they're nonstop changing things. The stuff shown in the tutorial still works so you might have been missing a thing. You can also share some more detials about it here or in our Discord channel
For some reason the app shows that it is a Agency/Sub-account but it only gives me the sub-account option when I make the connection. Has anyone else had this problem?
Another question I see that you are not using or creating any GHL Api Key. so it means that the marketplace app actually works around needing an API key? (ps. api keys availability with GHL is only in the 297$ subscription and not in the basic one)
API keys are the v1 version of the API - My video focuses solely on v2. I've explained as well within the video when you need which subscription (Based on the scopes available)
That depends on your setup. Within my agency, we've created a framework that authenticates all subaccounts via the agency account. However, that requires you to run on their bigger plan.
@@jannismoore It doesn't give me the option to run as data arrives I think because neither of the modules you used are triggers... Bro I'm trying to combine your video with this video from the GHL devs. All I want is to be able to create custom workflow triggers within GHL (Add Contact to Workflow when we send an SMS to them, Add Contact to workflow when we call them) How do we do this? ua-cam.com/video/5Ii6NM4iCI8/v-deo.html&ab_channel=HighLevel
@@nicoschneider27 Pray to the GHL devs do implement proper error handling. :) My vid shows the authentication part - you can connect that to any of the API endpoints
the fact you have to use an external service to use the GHL api is pretty crazy. defeats the entire purpose. with API1.0 you just post to and endpoint with api key and you're done. i don't know why oAuth2 is a thing. it's a huge headache.
The video is about the GHL auth process - If you want a full voice agent example, I have plenty of videos solely about that. You’re welcome to ask for any specifics if you have any.
@@jannismoore Bro, is there a way we can make live video call customer agent? Also, is the vapi only best platform for making the customer call assistant (without video here). If I want to make the assistant on my own without using will i be able to do that as all other apis are free and give free trial.
Hi... I am getting a Status 401, following through what you did. But I was doing it for an app install instead of a demo calendar. What do I do? @jannis moore
I'm sure there is not a single video out there that solves this GHL API issue in such perfect details. Earned my respect bro
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
@muhammadfurqan4616 I'm not aware of much real world use cases where you would need these API steps other than make or zap as they provide the necessary integrations to connect with ghl and get things running. Haven't used ghl so can't give you any in depth insights other than the basics. :)
Jannis you bloody legend!!! It has been road dealing with the documentation in GHL may as well have been written with emojis... You always managed to come out with videos that are very helpful exactly when we need them... From New Zealand you get the biggest hi-5 brother
Appreciate the feedback! Glad I could help 🚀
@@jannismoore Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Well done! Thank you for creating this.
Huge shout out to you man! I was trying to update Custom Values in an automation that creates a subaccount, but didn't see any way to generate a Location API in an automation. Your video helped me get the Access Token and the companyId.
I just tested it and so far its working like a charm!
Thanks!!!!!
Bro doing gods work teaching people the worst api ever made
Someone's gotta be the lemon thrower 🍋
Brother Samin:
Assalam o Alaikum
Umeed hai k aap khaireeyat say ho gay.
Bhai aap bura na manana, aik request hai aap say.
Aap Kay is comment mein ko oarhnay say yeh lagtaa hai Kay gods work is to teach people the worst API ever, intentionally.
Bhai yeh BUHAT sakht alfaaz hein, Joh k I understand in American language is used as everyday figure of speech. Laikin aik Musalman bhai ko careful rehnaa chaheeyay ... Kay aisay sentence mahawaratun bhee use na keray.
I hope Kay aap mairee is attempt ko positively lein gay, aur aindaa ehtiyaat Karein gay.
JAZAKALLAH
@@jeelanshahtlyr6076bhai aap gay hey? Aap gay logon ki tara baat karrahein hey. 🏳️🌈
@@jeelanshahtlyr6076 usay urdu nai ati bhai
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
thanks for the informative video! really needed that
Jannis, I can’t thank you enough for this video! You really helped me understand a lot more in 52 minutes 11 seconds then I have in weeks dealing with this 😂
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Hey Jannis - just wanted to give you a big shout out for this, I finally got it working after probably a couple of weeks - thank you 🙏🙏
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
I love you LOL!!, I can imagine how difficult it was to discover all this, specialy due to the poor error handling that GHL provides. You rock!
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Thank you for creating this video. I've spent so much time trying to make this work!
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Jannis diving into GHL AI Voice? It is game over for the AI calling agent world...
Built out our third service delivery on GHL this months. It's getting saucy
This is awesome! Very eye opening. Thanks Janis!
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Great Job
Bro. You just saved me. Thank you so much! Subscribed
Glad I could help
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Fantastic explanation of what to do and not do with GHL API!
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Hey Jannis - great video, I really like the way you teach! Unfortunately the Marketplace screens have changed since you recorded this, so it was a little challenge to figure out where everything went. And now I have that dreaded 400 error when making my OAUTH 2.0 connection, so waiting on HL support. Hopefully I can come back and finish you video in a day or two!
You're right, but you can fill out the basic part in profile - basic info . create a name of your app, upload an image of your app and create a tagline. Then you need to go to the advanced settings - Auth and continue filling out as we see in the video. I got a 400 error also, but I was my fault. I used a different subaccount in the connection and in the calendar, but I realized it and now works perfectly. I hope you can fix it!
@@makinadri I'm not using calendars, I'm trying to create a product. I'm meeting with a HL developer soon, hopefully we will figure it out.
Finally found this gem! Thank you! Can you also make a video on adding custom workflow actions to the GHL workflow builder similar to GHL plugins and LevelUpMarketplace?
Sure. Any specific one you'd like to see?
@@jannismoore Clickup, Asana or any other project management tool. Ex. Adding a contact to GHL a workflow auto triggers a new task in ClickUp.
Hey Jannis, fellow german here :D
Yeah the API v2 is a bit of a headache and seems overly complicated. What about the internal GHL private integrations feature? Can we not just use that instead of having to create a new app?
Great video, I can imagine how much work you put into it!
side note: The information icon on yopur website for the Templates + Resources bullet point is not working within the academy section
Thank you for this so helpful! My question about scopes is why not just use them all? Like what's the point of selecting the ones you need rather than just allowing all of them to be used? I don't know if I'm restricting or causing problems by not selecting the correct scopes
It’s simply bad practice for many reasons. Most apps won’t even approve your app with this. GHL just doesn’t care, but I’m sure your users do
Huge Value here thank you
How do you deal with High Level API requiring the timezone offset in the start and end dates, when daylight savings is involved?
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
@@muhammadfurqan4616 The integrated Make options are decent, you can also use private integrations now as well.
Full control like this is good for agency wide access, EG: if you wanted to do api requests on any sub account in your agency with the same scenario
Hi Jannis! If we have to make this app public, how would this scenario work, because we can't definde the variables as you defined in the first module, because every user will have a different variables. I'd be grateful if you could please answer.
Public is a whole other thing. I recommend builing it private and then asking them to switch it, or if you recreate it. Otherwise for every little change you need their permission to update things for you.
I am stuck on the locatinoId part. I have a different use case and I'll be needing the flow to pull in the location ID on it's own. This is going to be used for the stack across multiple SaaS subaccounts so I can't just use one subaccount location ID as a variable.
You'd need to get the ID first then by fetching the locations via an Agency endpoint. This requires you to have one of their higher paid plans though
@jannis 36:22 Your company_id is bundled into the auth token and refresh token package when using the spotlight API tools it is at the bottom of the returned json
That's awesome, thanks for the heads-up! It seems you really spent some time too within their docs haha
I'm unclear on the use of refresh tokens. When are they necessary? Currently, I have a webhook that captures the location ID and gives me the company ID, access token, and sets an expiration date 24 hours after the access token is generated. I only create a new access token when the current time surpasses this expiration date. Given that I can generate a new token whenever needed, under what circumstances should I use a refresh token?
Refresh tokens are necessary to keep the subaccount authentication alive. If you only authenticate a single subaccount, you don't need to worry about it as Make.com handles that for you, but if you want to use Agency LeveL accounts, you need to have a custom setup that handles authentication too.
@@jannismoore Awseome video, I have several scenarios built using your tutorial, I had the same question about agency level, as the "Get Access Token" body requires client id and client secret, which are given in the connection, trying to wrap my head around how this request works compared to "Get Location Access Token from Agency Token"
Great video! Was stuck on getting 400 requests but realized I need to set it to SPACES instead of COMMAS! Thanks for that. However, I'm still struggling to enable scopes because it now requires a webhook URL (a recent update?). What do I add in there?
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Awesome stuff, thanks a lot!
Sturggling with 43:02. Im gettung a Status code: 400 Invalid locationId or accessToken does not have access to following location
Any idea what could be wrong?
You might have not selected the option to automatically add new locations to your access token. Refreshing the connection might help
Hey Jannis, have you seen the (I believe recently released) "private integrations" feature in the ghl settings sidebar? On ghl support they say we can make api calls to v2 easily with this. Can you shed some light on it?
GREAT GREAT Video! Thanks!
Great!
I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
Appreciate the amazingly detailed video! I need to setup something very similar however, I am trying to create an invoice which is a POST request which requires a lot of parameters in the body. It also seems to only accept application/json instead of x-www-urlenecoded format. Are there any sources you could direct me too to help me with this issue?
Instead of sending along a JSON body, you can send x-www-urlenecoded (Within make.com, you can select that as a predefined option for the body as well)
30:35 hey guys what if my error says "You do not have access to this feature! Please contact the admin" what does this mean? What should i do?
This is awesome , thanks dude
First of all thank you for this video. It has helped me figure out this crazy API. my problem is is set everything up trying to access the social scopes. everything works and i get a
success true
statusCode 201
message Created Post
but i dont see anything posted . Any idea why this isnt working when it says that it did?
Thanks again 🔥
Good question. If the API says it worked, it probably did. Maybe it was created on a different subacc?
@@jannismoore I’ll take a look around and see. It really weird because there is no other output. Just a response saying Created. Maybe it’s not really working yet.
Great video. I created a private agency level app, and it works great in testing with postman, but how do I actually install the app on my agency?
The marketplace accounts are separate from your agency account. You just authenticate during the auth process of the app with your agency account.
I'd say this took a few tears to figure out... 😢❤
Hi, I'm currently learning GHL. Could you share some real-world examples or scenarios where you need such control in GHL that isn't possible with existing Zappier or Make integrations? I'd truly appreciate your insights.
which GHL plan do we need for this does the 297 one will be enough or should it be 497 one
That depends on what of both you want to connect. Agency level scopes require the big one, but if you only want to authenticate a single sub account, the small one is sufficient
You can use the API for most stuff on the $297 plan. But you need the $497 plan if you want to create subaccounts.
Hi, do I need to have the agency plan on GHL to be able to do this or would the pro plan suffice?
This depends whether or not you only want to authenticate single sub accounts or all sub accounts
How do you even get dev support? I am so close to completing an automation, but I keep getting a 401 (Unauthorized) code that I can not figure out. *different use case*
It's not easy, but you got to write them that you have some technical error and after quite a bit back-and-forth, you'll get connected to an actual support engineer.
Hi Jannis, how do you integrate this with go high level so that you can use it as a vapi tool to call facebook leads coming into HighLevel and then feed answers back to high level and book appointment? Is it possible?
Step 1 : Facebook leads come into automation in GHL
Step 2: this triggers call with vapi AI assistant
Step 3:vapi assistant checks and books appointment in GHL
Step 4: confirms and sends email/text reminder confirming appointment from Go high level
Thanks for any help you may be able to offer. I followed this video but not sure how to put it into a make work flow to achieve the above result
Damn man thanks for this. Question if I use the subaccount method, I don't need to worry about refreshing the token as make will take care of that right? It's only if I use the agency one with the access token that it expires every 24 hours. Did I get that correctly?
yes correct :)
Jannis is the ONLY way to go when it comes to AI Voice Assistants and Make Automations
In the next continuation of this video would it be possible to now have a VAPI request coming in to check calendar availability between a choice of 2 different calendars within the given GHL setup. And then upon the final confirmation from the caller books an appointment while saving contact information and precall qualification questions within GHL. This will complete a given intake and appointment setter scenario from start to end.
Hey Jannis, great vid. Have you seen the (I believe recently released) "private integrations" feature in the ghl settings dashboard? On ghl support they say we can make api calls to v2 easily with it. Can you shed some light on it? I really think it could save me from going through this whole marketplace fluff.
Haben't looked too deep into this, but I'm sure that integrations tackle specific things for a sub account so you'd still need some centralized way of accessing all of it.
I need help getting this to connect to the workflows. I would like to export my workflows and all of their steps, messages, triggers etc to analyze and create and SOP for each one using ChatGPT. Is this possible?
I know you can make a whole base copyable. About the single workflow, I'm not so sure.
This is super helpful. However I'm having an issue with the agency level permissions - I only see sub-accounts in the GHL auth popup. My agency doesn't show there even though I'm logged in using my main agency email. Am I using the wrong URI?
You probably didn't select the "Agency" checkbox while creating your app
I'm following the video and when I try to save the first HTTP "Make an OAuth 2.0 request," I get this {"message":"The request failed due to failure of a previous request.","code":"SC424","suberrors":[{"message":"Token URI - Service is not reachable.","name":"InvalidConfigurationError"}]}. What do I do?
I tried using another GHL account and it told me theAuthorization and token were wrong. I tried again and I only got comma as the scope separator. I need some help.
First thanks Jannis! ... unfortunately GHL tempts to change everything in a 2 month cycle does anybody here know a tutorial explaining how to configure a app for current version?
It depends what you want to achieve - single sub accounts can be managed with private tokens that you can set up in each subaccount separately
So following your video, you explain it very well pretty much. You need to be the one doing videos to explain their API 2 for them cause the docs suck and hard to follow.
My question is:
When you run the initial Authorization code URL to get that code to pass to the get access token, you can set a field with the access token and refresh token in your database or mine rather. And set the expire date based on when the expire_in runs out so when you run say createContact then you can check to see if the current date/time is passed the expire_in for the original token and if that's the case then run the refresh token and reset the token in your database then rerun the createContact API end point. Am I correct so far?
So you don't have to re-run that authorization code URL to select and account the redirect to get the new authorization code each time you want to run the createContact End point API? So you run the createContact End point API and check the expire date and if its passed then run refresh token to get new token, then rerun your createContact end point API to create a new contact in gohighlevel correct?
Now what happens when the refresh token expires? It says it expires once a year. Do you have to re-run that authorization code thing again at the end of the one year mark or what? THat's the part that is unclear to me is how often you run the authorization code uri then when or at one point do you run the refresh token part.
yes ,you basically have to refresh the authentication token then. It's a bit annoying.
@@jannismoore yes extremely annoying. Not alot of tutorials out for this platform to teach novices like me. v1 was simple to use and may go to it for the time being until I have to bit the bullet to convert to v2. API 2 sucks bigtime. not very friendly or easy to learn. Now I have an issue with the get Contacts and passing the exact same stuff and same format as the docs say with the correct version number and my setup is exactly as they have in the docs example and it comes back as unauthorized: version header was not found but again its the exact same format as the example minus using my locationId and the correct access token for authorization Bearer.
I have followed these steps 3x and still get 404 error so I am trying to think where I could be wrong. What's the discord group link, please?
Hiii Thank you so much for this video get report of campaigns from
GHL
I'm curious is it possible to
Superb Brother did the same thing few days back in Node Js ,also added the refresh token mechanism and everything works perfect , just need to clear one thing from your side and that is regarding the redirect uri provided by GHL itself i think i use use the white label redirect uri ,at many times for standard account it gives error or doesn't work , can you confirm it.
What's the error message you get? I've tried it with standard accounts and it worked at my end. Not sure if they changed something
How do I use this API to upload an image to a custom contact field in GHL? I found a way to pull all of the fields using this video but my final step is uploading an image I've dynamically created to a custom field for a contact.
Hey, it was not clear, but seems like marketplace is not part of the GHL subscription plan. I had to create a separate developer account that has nothing to do with our agency account,
so how do these come together?
The marketplace is separate from your normal GHL account - everyone can create one, even without having an active subscription
thank you, this makes sense and is good news. your video is invaluable for anyone starting the GHL journey.
@@syberkitten1 Appreciate the feedback!
Can we do this in Zapier, I'm just wondering, our client wants to do similar thing but using Zapier instead of Make.
I assume you can. We don't really work with Zapier
I tried, and I assume you can as well, but in Zapier you need to use developer tools to make your own app, the connection part in this video, its a lot more complicated and Zapier is really a pain to do this stuff. I have Zaps that dont work and I will copy/paste the exact data into make or the test request on HL Integrations API and it works first try. I have burned many hours trying to get V2 API requests to work on Zapier when it takes minutes to get it to work on Make.
The Goat 🐐
When I get to the step for the HTTP request in Make, I've set up everything exactly as you have, but when I click save and it tries to pull my HighLevel accounts, it gives a ""Authorization denied" error. Any idea why this may be? I'm on the 497/m high-level plan and setup the same things you did in my test to see if I could get it to work
I had something similar happen to me. Try clearing your cookies and browsing data.
It still gives me the error "Request failed with status code 400". I followed all the steps described up to minute 25 to authenticate😢
I’m trying to add the Google api key to my go high level so the address can auto populate in the address part of the form/survey the codes I have seen on UA-cam aren’t working for me can you please help me?
How do you turn the make json file blueprint into a hyperlink?
on your resource hub
It's a standard HTML anchor tag:
Your's won't work?
@@jannismoore I'm trying to do it inside of a google doc. Should I use something else?
@@tommychryst I think you can only turn a whole cell into a hyperlink
@@jannismoore how do I do that?
I'm getting a 422 status code when trying to run the authorization token request and not sure why. It's saying company id cannot be defined but it should be since i followed all previous steps to find it and added it to my variables. Any thoughts?
For anyone else having a similar issue after going back and forth with makes customer service I figured out that the keys in the 2nd OAuth 2.0 request need to be labeled locationId and companyId as per ghl's documentation. No underscore and with a capital I.
Jannis, I did the simple version, and when I run the scenario it shows that it works, but when I call the Vapi agent it does not actually book the appointment. What am I missing here?
I suggest to try the run once manually with an actual call - you will then see the response request for reach of the http calls, which contains more details whether it worked or not
@@jannismoore Ok, so I ran the scenario and made a call. I get the status code 200, but it still did not actually book the appointment in GHL
@@PegasusMediaAgency You shouldn't only look at the status code but the actual data that's in the request too - all of that contains details that help
@@jannismoore I ran the agency setup, which is the longer setup. It came back with all the appropriate information of the right calendar I am attempting to book an appointment on, but it does not book the appointment. The Vapi agent says the appointment is booked, but when I check the calendar there is nothing there.
Is it right that its not necessary to create an app nowadays? I heard they made it easier now?
how do you overcome the stupid 400 code that you mention happens half way through the video
they're nonstop changing things. The stuff shown in the tutorial still works so you might have been missing a thing.
You can also share some more detials about it here or in our Discord channel
For some reason the app shows that it is a Agency/Sub-account but it only gives me the sub-account option when I make the connection. Has anyone else had this problem?
Did you make sure you’re logged in as the admin?
Another question I see that you are not using or creating any GHL Api Key. so it means that the marketplace app actually works around needing an API key? (ps. api keys availability with GHL is only in the 297$ subscription and not in the basic one)
API keys are the v1 version of the API - My video focuses solely on v2.
I've explained as well within the video when you need which subscription (Based on the scopes available)
Have you got the endpoint documentation??
It's listed in the resource hub or when you google it. Just search for GHL API v2 spotlight
Hi man, how can i get into contact? I would like to set up a custom Make App for pulling outbound dials in from GHL. Let me know!
Hey, you'll find more details here: integraticus.com/links/
This is insane. Does this need to be done for each sub account then?
That depends on your setup. Within my agency, we've created a framework that authenticates all subaccounts via the agency account. However, that requires you to run on their bigger plan.
God Bless You! ❤
have a video on how to book into ghl calendar? and trigger api calls?
Not yet but soon :)
How do I make the Make App run Immediately as data arrives
You schedule it at the bottom left of the screen inside of the Make.com scenario
@@jannismoore It doesn't give me the option to run as data arrives I think because neither of the modules you used are triggers...
Bro I'm trying to combine your video with this video from the GHL devs. All I want is to be able to create custom workflow triggers within GHL (Add Contact to Workflow when we send an SMS to them, Add Contact to workflow when we call them) How do we do this?
ua-cam.com/video/5Ii6NM4iCI8/v-deo.html&ab_channel=HighLevel
ua-cam.com/video/5Ii6NM4iCI8/v-deo.html&ab_channel=HighLevel
@@nicoschneider27 Pray to the GHL devs do implement proper error handling. :)
My vid shows the authentication part - you can connect that to any of the API endpoints
Invalid Authorization when I try and add Agency
Ensure you have the right GHL plan. Agency accounts can only be selected with their higher plan.
@@jannismoore ah yes! Really appreciate the follow up Jannis!
Thank you!!!!!!!!!
I clicked on the link to get the setup but it takes me to a login page and wants my username and password. :)
There is a little link to register below the form :)
How can i get conversation id
I assume via the API endpoints? Check out their docs - payloads are usually well documented
the fact you have to use an external service to use the GHL api is pretty crazy. defeats the entire purpose. with API1.0 you just post to and endpoint with api key and you're done. i don't know why oAuth2 is a thing. it's a huge headache.
It is. Their infrastructure wasn't well designed - I guess because they started scaling too fast.
@@jannismoore Since I posted that I figured out how to do it with php/mysql without a third party. was a huge headache. let me tell you.
you did not demonstrated the demo you should be putting the demo of it showing it by calling it on phone
The video is about the GHL auth process - If you want a full voice agent example, I have plenty of videos solely about that.
You’re welcome to ask for any specifics if you have any.
@@jannismoore Bro, is there a way we can make live video call customer agent?
Also, is the vapi only best platform for making the customer call assistant (without video here). If I want to make the assistant on my own without using will i be able to do that as all other apis are free and give free trial.
Hi... I am getting a Status 401, following through what you did. But I was doing it for an app install instead of a demo calendar. What do I do? @jannis moore
the status code appears during authentication of the oauth flow or the HTTP module call?