How To · Updated 16 July 2026
How to Add AI Calling to GoHighLevel (Without Replacing Your CRM)
You add AI calling to GoHighLevel by connecting a calling layer to it over OAuth — you never replace the CRM. There are two routes: turn on GoHighLevel's native Voice AI from the sub-account's AI Agents tab, or connect a dedicated AI calling layer that syncs into GHL. In both cases GoHighLevel stays the system of record and the calls write back to it.
The short version of the whole process: choose the layer, install it on the client sub-account over OAuth (connections are per location, even when an agency bulk-installs), handle the ~24-hour access token and the single-use refresh token correctly, map every call outcome to a real pipeline stage, define what writes back to the contact record, set compliance guardrails, and pilot on one sub-account before you roll out. The hard part is not the phone call — it is the write-back contract and the token rotation. Compliance is not optional either: the FCC ruled in February 2024 that AI-generated voices are “artificial” under the TCPA, which means prior express consent is required before the dial.
This guide is published by Veera, which syncs into GoHighLevel over OAuth rather than replacing it. It sits under our hub on AI outreach CRM for agencies and our guide to AI cold calling software, under the category definition of an AI Business Aide. GoHighLevel product and API details are drawn from HighLevel's own documentation and are current as of July 2026.
The two routes, and why neither replaces GoHighLevel
GoHighLevel holds the contacts, pipelines, calendars, and workflows for every client sub-account. AI calling does one job next to that: have the phone conversation and return a structured result. Nothing about adding AI calling requires moving your CRM, and no serious option asks you to.
Route one — GoHighLevel native Voice AI. Built into the platform and configured inside the sub-account under the AI Agents tab, in the Voice AI section. It is the most native option available because it is the platform calling on its own behalf: the contact update, the workflow trigger, and the appointment booking all happen inside GHL. The trade-offs are a layered voice cost that varies per call and, below the plan's included minutes, keeps metering; the documented outbound ceilings and same-country constraint below; and no lead-discovery or verification layer — you still supply the contacts.
Route two — a dedicated AI calling layer that syncs into GHL. Chosen when you need capability the native feature does not cover. The connection is OAuth, the install is per sub-account, and the quality of the integration is measured by exactly one thing: whether the call outcome lands on the right GoHighLevel record, in the right pipeline stage, without a human re-typing it.
The deciding question is rarely which tool is best in the abstract. It is which one writes the call outcome back into your GoHighLevel the way your team already works.
What GoHighLevel native Voice AI does, and where it stops
Check the native feature against your actual campaign before you buy anything on top. HighLevel documents these limits on Voice AI Outbound, and they are the honest dividing line between “native is enough” and “add a layer”:
- 1,000 outbound Voice AI calls per location per day. The per-location daily ceiling. For a single client sub-account running reminders and reactivation, this is rarely the binding constraint.
- 10 calls per minute per location — one call every 6 seconds. The throughput ceiling, which matters when you want a list worked inside a narrow compliant calling window.
- Each phone number can be called once per day, and up to 14 times in 14 days. A per-contact frequency cap enforced by the platform rather than by your own restraint.
- Same-country domestic calling. HighLevel documents Voice AI Outbound for same-country domestic numbers. This is the constraint that decides the question for agencies dialing across borders, and it is the most common honest reason to add a dedicated layer rather than a preference for one.
- LC Phone or Twilio numbers only. Voice AI only works on accounts using LC Phone or Twilio numbers, and the number you assign cannot already be configured for another specialized function such as an IVR.
If your campaign fits inside all five, the honest answer is that GoHighLevel native Voice AI may already be enough and you should add nothing. Adding a layer is worth it when you need international or multilingual outbound, mid-call steering, or a lead-discovery and scoring step that happens before the dial.
The seven steps
This is the sequence an agency actually follows, in order. Steps two and three are where integrations break; step five is where the value is.
Step 1
Decide which layer places the call
Choose between GoHighLevel native Voice AI and a dedicated AI calling layer that syncs into GHL. Both keep GoHighLevel as the system of record, so this is a capability and cost decision rather than a CRM decision.
GoHighLevel ships its own Voice AI, created inside a sub-account under the AI Agents tab, in the Voice AIsection. Per HighLevel's documentation, a Voice AI agent answers incoming calls, initiates outbound calls for lead follow-up, appointment reminders, and reactivation, books appointments directly during the conversation, qualifies leads, transfers to a human on conditions you define, and automatically creates or updates contact records. It works only on accounts using LC Phone or Twilio numbers, and you can assign any available number provided it is not already configured for another specialized function such as an IVR.
The cost structure matters before you choose. HighLevel prices its AI products on three plans: Pay-Per-Use, which carries no monthly subscription and bills at token cost; AI Employee Growth at $50/month per enabled location, which includes 100 AI Agent minutes per month covering inbound, outbound, and widget usage combined, with anything beyond that billed at the applicable Voice AI pay-per-use rate; and AI Employee Unlimited at $97/month per enabled location, which HighLevel documents as unlimited, subject to fair use. One thing to keep separate: Agent Studio is a different product — a node-based canvas for orchestrating multi-agent flows off triggers like a form submission or a chat message, not where voice agents are built — and HighLevel documents it as excluded from every subscription plan and pay-per-use across all of them.
Whichever plan you land on, voice cost itself is layered: voice engine, then text-to-speech, then the language-model tokens spent during the call, then telephony. HighLevel notes that two calls of the same length can cost different amounts because the TTS provider, the model, token usage, and phone-system charges all move independently — and phone-system charges remain pay-per-use on every plan, including Unlimited.
A dedicated AI calling layer is added when you need something the native feature does not cover: international or multilingual outbound, a verified-lead-discovery and scoring step before the dial, mid-call steering, or per-client workspaces above the sub-account model. The AI calling tools for GoHighLevel agencies guide compares the options side by side.
Step 2
Install the calling layer on the sub-account over OAuth
Authorize the app against the client sub-account. Connections and tokens are per location — each client gets its own connection, its own tokens, and its own revocation switch — even when an agency bulk-installs the app across sub-accounts.
GoHighLevel runs on API v2 and supports the OAuth 2.0 authorization code grant. You redirect the user to the HighLevel marketplace authorization URL; after they grant access, GoHighLevel redirects to your redirect_uri and passes the authorization code in a code query parameter, which you exchange for tokens at https://services.leadconnectorhq.com/oauth/token.
Two details decide the shape of your integration. First, install scope. A sub-account install fires an INSTALL webhook carrying installType: "Location" together with a locationId and companyId. Agency-level and bulk installs also exist: an agency admin can install across selected or all sub-accounts in one operation, which yields a Company-scoped token with isBulkInstallation: true. Even then the connection is still established per sub-account — HighLevel's docs direct you to obtain a Location token from the agency token for every location where the app is installed, and to listen to the INSTALL webhook for future sub-accounts. Second, the token response carries a userType of either Location (sub-account endpoints) or Company(agency endpoints), and that value determines which endpoints the token can reach. HighLevel's documented best practice is to request the minimum number of scopes necessary for your app to function — worth honoring when the portals you are connecting belong to clients rather than to you.
Step 3
Keep the connection alive through token rotation
GoHighLevel access tokens expire after about 24 hours and refresh tokens are single-use, so the integration must rotate and re-store both in the same write on every refresh.
HighLevel documents access token expiry at approximately 24 hours; token responses carry expires_in of 86,399 seconds. Refresh tokens are valid for up to one year or until they are used — and that second clause is the one that breaks integrations. Once you use a refresh token to obtain a new access token, the original refresh token becomes invalid, and the response includes a new refresh token that you must persist in the same operation.
Store the rotated refresh token atomically, alongside the location or company id the token is scoped to. An integration that writes the new access token but drops the new refresh token will work for a day and then fail every call with 401 Unauthorized — the most common failure mode in GoHighLevel integrations, and one that surfaces a day after you stop watching.
Step 4
Map contacts, opportunities, and pipeline stages
Read the sub-account pipelines out of GoHighLevel and map every call outcome to a stage that already exists in that client’s pipeline, before the first dial rather than after.
GoHighLevel calls deals opportunities, and they live in pipelines made of ordered stages that differ per sub-account. A calling layer that syncs properly pulls the pipeline and stage list for the connected location, then maps each call outcome — booked, qualified, not interested, callback requested, wrong number — onto a stage that already exists in that client's pipeline.
Do this before the campaign, not after. Skip it and every outcome lands as an untracked note that a human has to read and re-file, which removes most of the reason to automate the call in the first place.
Step 5
Define the write-back contract
Decide exactly what lands on the GoHighLevel record after each call: the call log, a written summary, the concrete next step, and the opportunity stage change. Then test it on one real record.
This step is where the value of AI calling is created or lost. The conversation is the visible part; the write-back is the part your team actually uses tomorrow. A complete contract writes four things back to GoHighLevel: an activity or call log on the contact timeline, a written summary of what was said and decided, the concrete next step, and the opportunity stage change.
Two-way CRM sync means the AI calling layer both reads from and writes to the CRM: it reads contacts, opportunities, and pipeline stages out of GoHighLevel, and writes call outcomes, summaries, and stage changes back onto the same records — as opposed to a one-way trigger, which fires a call from a workflow and never returns the result.
Test the contract on a real record before you trust it. Place one call, then open the contact in GoHighLevel and confirm the log, the summary, and the stage move are all present without anyone typing anything.
Step 6
Set compliance guardrails before the first dial
Enforce consent, calling windows, caller identification, and opt-out before the campaign starts. An AI voice inherits the TCPA’s artificial-voice duties the moment it places the call.
AI voice calls are regulated differently from live human calls in the United States, and the rules changed in 2024. The next section covers exactly what applies and which citation it comes from. Configure these guardrails in whichever layer places the call, and verify them on a test campaign before the first real dial.
Step 7
Pilot on one sub-account, then roll out
Run the first campaign on a single client sub-account, reconcile every call against the GoHighLevel record, fix the mapping once, then repeat the install per client.
GoHighLevel connections are per location — an agency can bulk-install an app across selected or all sub-accounts, but each one still authorizes, holds its own tokens, and can be revoked on its own. So even where the install is one operation, the rollout decision is still per client. Treat that as an advantage: pilot on one client, confirm the pipeline mapping and the write-back against live records, fix the mapping once, and only then extend the install across the rest of the book. Agencies that skip the pilot generally discover a bad stage mapping after it has already written to hundreds of contacts.
What the law requires before an AI places a call
AI calling sits inside a body of law that is specific, current, and enforceable. These are the citations that govern an outbound AI call to a US or EU contact. This is guidance, not legal advice — confirm your own campaigns with counsel. Our AI calling compliance hub covers each rule in depth.
- AI voices are “artificial” under the TCPA. The FCC adopted Declaratory Ruling FCC 24-17 (CG Docket No. 23-362) on 2 February 2024, released 8 February 2024, holding that calls using AI technologies that generate human voices are “artificial” under the Telephone Consumer Protection Act, 47 U.S.C. § 227. The consequence is direct: such calls require the called party's prior express consent — prior express written consent where the call is marketing. AI does not create a lighter regulatory category; it lands the call in the strictest existing one.
- Identify yourself and offer an opt-out. 47 C.F.R. § 64.1200(b) requires an artificial-voice message to state the identity of the entity responsible for the call at its beginning, to give a working callback number for that entity, and — for telemarketing to residential lines — to offer an automated opt-out mechanism.
- Calling windows are the recipient's local time. 47 C.F.R. § 64.1200(c)(1) prohibits telephone solicitations to residential subscribers before 8 a.m. or after 9 p.m. in the called party'slocal time — not the dialer's and not your head office's. A dialer running at 8:30 a.m. Eastern is calling a California contact at 5:30 a.m. Pacific, which is a violation regardless of the operator's clock. See TCPA quiet hours, including the stricter state windows.
- The damages are per call. 47 U.S.C. § 227(b)(3) — the statute's private right of action for violations of subsection (b), which is where the artificial-voice prohibition itself sits (§ 227(b)(1)(B) for residential lines, § 227(b)(1)(A)(iii) for wireless) — lets a plaintiff recover actual monetary loss or $500 in damages for each such violation, whichever is greater. That $500 is a floor, not a cap. Where the court finds the violation willful or knowing, it may, in its discretion, increase the award to not more than three times that amount — so $1,500 per call is the discretionary ceiling, not an automatic uplift. Assessable on a class-wide basis, which is what turns a list into a balance-sheet event.
- No federal rule makes an AI announce that it is an AI. This is the most common misconception in the category. The FCC proposed such a rule in Notice of Proposed Rulemaking FCC 24-84, released 8 August 2024, and has not adopted it as of July 2026 — so the proposed disclosure is not law. What is in force is the identification duty above. Details in AI disclosure laws.
- Utah is the live US state duty for ordinary calling. The Utah AI Policy Act (SB 149 (2024), amended by SB 226 effective 7 May 2025; Utah Code §§ 13-75-101 to -106) requires disclosure of generative-AI use when a person clearly and unambiguously asks whether they are dealing with a human, with proactive disclosure in “high-risk” interactions and penalties to $2,500 per violation. California's SB 1001 is widely miscited here: it is limited to communicating online and does not reach phone calls.
- EU contacts must be told they are talking to an AI. Article 50(1) of the EU AI Act requires providers of AI systems intended to interact directly with people to ensure those people are informed they are interacting with an AI system, unless it is obvious from the circumstances. These transparency obligations apply from 2 August 2026.
- Email opt-outs are one click, and erasure is a right. The CAN-SPAM Act (15 U.S.C. § 7704) requires a functioning opt-out; RFC 8058 defines the one-click
List-Unsubscribe-Postmechanism that mailbox providers now expect. Article 17 of the GDPR gives EU data subjects the right to erasure of their personal data.
None of this is exotic for a calling layer to handle. What matters is whether the enforcement is automatic — checked per call against the contact's own time zone — or left as a setting somebody was supposed to remember.
How Veera fits this pattern
Veera is route two, and it follows the steps above exactly. It syncs into GoHighLevel — it does not replace it. You keep GHL as the CRM and agency operating system; Veera connects over OAuth, syncs contacts two-way, and places the calls.
AI voice calling is live today. Veera places outbound calls in 42 languages with native voice synthesis, supports mid-call instruction and supervisor takeover so an operator can steer or take over a live conversation, and runs the step before the dial: verified-lead discovery finds companies and checks that each email is deliverable, and AI lead scoring ranks contacts hot, warm, or cold with a written reason. After each call, Smart Notes writes the summary, the decisions, and the action items onto the contact record inside Veera, and two-way contact sync keeps contacts aligned with GoHighLevel while pipeline stages are read and mapped from it. Writing those call outcomes — the call log and the opportunity stage change — back into GoHighLevel is built and activating, not usable today.
On compliance, the guardrails from the previous section are enforced rather than documented: TCPA quiet hours are checked per call against the recipient's own time zone, one-click CAN-SPAM unsubscribe is honored with suppression applied before the next send, and erasure is honored on request. That is enforcement of specific rules, not a blanket certification claim — you remain responsible for confirming consent and local regulations for each campaign.
Building / activating
Multi-channel send on email, SMS, and WhatsApp, multi-step outreach sequences, a unified inbox, and calendar booking are built and activating — not usable today. We list them as launching soon, never as live. The one live send exception is in-call WhatsApp document delivery, which sends a requested document during a live call.
Veera is free to start. For the head-to-head against the other calling layers that connect to GHL, see AI calling tools for GoHighLevel agencies, or learn more about Veera.
Frequently asked questions
Do I have to replace GoHighLevel to add AI calling?
No. GoHighLevel remains the CRM and agency operating system, and the AI calling layer connects to it. You either turn on GoHighLevel’s native Voice AI from the sub-account’s AI Agents tab, under Voice AI, or connect a dedicated calling layer over OAuth that writes call outcomes back into GHL. Veera, for example, syncs into GoHighLevel — it does not replace it. If a vendor requires you to move your contacts, pipelines, and workflows onto their platform to get AI calling, that is a CRM migration wearing a feature’s clothes.
Does GoHighLevel already have AI calling built in?
Yes. GoHighLevel ships a native Voice AI, created inside a sub-account under the AI Agents tab > Voice AI. Per HighLevel’s documentation it answers incoming calls, initiates outbound calls, books appointments directly during conversations, qualifies leads, transfers to a human on conditions you define, and automatically creates or updates contact records. It works only on accounts using LC Phone or Twilio numbers, and the number cannot already be configured for another function such as an IVR. HighLevel prices its AI products on three plans: Pay-Per-Use, which carries no monthly fee and bills at token cost; AI Employee Growth at $50/month per enabled location, which includes 100 AI Agent minutes per month covering inbound, outbound, and widget usage combined, with overage at the applicable Voice AI pay-per-use rate; and AI Employee Unlimited at $97/month per enabled location, which is unlimited subject to fair use. Voice AI cost is layered — voice engine, then text-to-speech, then the language-model tokens spent during the call, then phone system charges — and phone system charges stay pay-per-use on every plan. Agencies add a dedicated layer when they need something native does not cover, such as international or multilingual outbound, mid-call steering, or a lead-discovery and scoring step before the dial.
How does the OAuth connection to GoHighLevel actually work?
GoHighLevel runs on API v2 and supports the OAuth 2.0 authorization code grant. You send the user to the HighLevel marketplace authorization URL, GoHighLevel redirects back to your redirect URI with the authorization code in a code query parameter, and you exchange that code for tokens at https://services.leadconnectorhq.com/oauth/token. Installs are per location unless the agency uses the agency-level or bulk install: a sub-account install fires an INSTALL webhook carrying installType "Location" alongside a locationId and companyId, while an agency bulk install yields a Company-scoped token, and HighLevel’s docs direct you to obtain a Location token from the agency token for every location where the app is installed. The token response carries a userType of either Location (sub-account endpoints) or Company (agency endpoints), which determines what the token can reach. HighLevel’s documented best practice is to request the minimum number of scopes necessary for your app to function.
Why does my GoHighLevel integration keep failing with 401 errors after a day?
Because of refresh token rotation. HighLevel documents that access tokens expire after roughly 24 hours — token responses carry expires_in of 86399 seconds — and that a refresh token is valid for up to one year, or until it is used. Once you use a refresh token to obtain a new access token, the original refresh token becomes invalid and the response includes a new refresh token. An integration that saves the new access token but drops the new refresh token works for exactly one day and then fails every call with 401 Unauthorized. Persist the rotated refresh token atomically, in the same write, alongside the location or company id it is scoped to.
Is AI cold calling legal in the United States?
It is regulated, and it is legal when you follow the rules. In Declaratory Ruling FCC 24-17 (CG Docket No. 23-362), adopted 2 February 2024 and released 8 February 2024, the FCC held that AI technologies generating human voices are "artificial" under the Telephone Consumer Protection Act, 47 U.S.C. § 227. AI calls therefore require prior express consent — prior express written consent where the call is marketing — plus the identification and opt-out duties in 47 C.F.R. § 64.1200(b). Two different remedies follow, and they are worth keeping apart. Placing an artificial or prerecorded voice call without the required consent violates subsection (b), and the statute’s private right of action at 47 U.S.C. § 227(b)(3) gives actual monetary loss or $500 in damages for each such violation, whichever is greater — a floor, which a court may in its discretion increase to not more than three times that amount where the violation was willful or knowing. Quiet hours sit under subsection (c) instead: 47 C.F.R. § 64.1200(c)(1) bars telephone solicitations before 8 a.m. or after 9 p.m. in the called party’s local time, and the matching private right of action at 47 U.S.C. § 227(c)(5) — open to a person who receives more than one violating call in a twelve-month period — gives actual monetary loss or up to $500 for each such violation, whichever is greater, with the same discretionary increase to not more than three times that amount. So a mistimed call placed with valid consent is a (c)(5) claim, where $500 is a discretionary ceiling rather than the (b)(3) floor. No federal rule requires an AI agent to announce that it is an AI: the FCC proposed one in FCC 24-84, released 8 August 2024, and has not adopted it as of July 2026. This is guidance, not legal advice.
What should an AI calling tool write back into GoHighLevel after a call?
Four things: an activity or call log on the contact timeline, a written summary of what was said and decided, the concrete next step, and the opportunity stage change. Map each call outcome to a stage that already exists in that sub-account’s pipeline before the first dial, because GoHighLevel pipelines and stages differ per sub-account. If the tool only fires from a workflow and never returns a structured result, every outcome lands as an untracked note that a human re-reads and re-files, which removes most of the reason to automate the call.
This guide is published by Veera, which syncs into GoHighLevel over OAuth. It is not affiliated with or endorsed by GoHighLevel/HighLevel. GoHighLevel product and API details are drawn from HighLevel's own documentation and are current as of July 2026; refreshed quarterly. Regulatory summaries are guidance, not legal advice. Last updated: 16 July 2026.