
GoHighLevel Custom Menu Links: Agency Setup (2026)
By Dr Priya Jaganathan, GoHighLevel Certified Admin · HL Growth Partner, Australia · Updated 19 September 2026 · 10 min read
Some links below are affiliate links — if you sign up through them, HL Growth Partner may earn a commission at no extra cost to you. It never changes what we recommend. Full disclosure.
GoHighLevel Custom Menu Links are the agency-level setting that lets you add your own items to the left sidebar of a sub-account — a client dashboard, an SOP library, a support form, a booking page, a white-labelled tool. They sit alongside Conversations, Calendars and Opportunities, and to the client they look like part of the platform.
Most agencies add three links in an afternoon and never touch the feature again. Used properly, HighLevel custom menu links are how you make a generic CRM feel like your software, and how you cut the "where do I find…" support tickets that quietly eat your delivery margin.
Quick Facts
| Where it lives | Agency level — Settings > Custom Menu Links, then Create New |
| Who can create them | Agency users with the Manage Custom Menu Links permission (Settings > Team). Sub-account admins cannot create their own |
| Opening methods | Embedded Page (iFrame), New Browser Tab, Current Browser Tab |
| Sidebar preference | Agency sidebar, Sub-Account sidebar (choose specific sub-accounts), or both |
| Role visibility | All, User only, or Admin only |
| URL rules | Must begin with http:// or https://; supports location values and custom values as merge fields |
| Ordering | Rearrange Custom Menu Links — drag, drop, save |
What GoHighLevel custom menu links actually do to the sidebar
A custom menu link is a navigation item you define once at agency level and then choose where it appears. The client sees an icon and a label in the same left-hand menu as every native tool, and clicking it either loads your page inside the HighLevel shell or sends them out to it.
Its power is in the placement, not the technology — you are borrowing the credibility of the platform's own navigation and pointing it at something you control.
Where agencies get real value
- Client dashboard — an embedded report view, so nobody asks for a monthly PDF.
- SOP and training library — your Notion, course platform or help site, framed inside the app.
- Support request form — proper intake instead of ad-hoc emails to your delivery team.
- Booking link — a strategy-call calendar one click from wherever the client is working.
- White-labelled third-party tool — a review widget, call-tracking portal or AI assistant you resell.
- Upgrade or add-on page — a quiet, permanent path to your next offer.
If you run a SaaS model, the sidebar is your product surface — every link there either reduces support load or creates revenue, and anything doing neither should go. The same discipline applies to your GoHighLevel dashboards and reporting: fewer, better views beat a cluttered menu.
How to set up a HighLevel custom menu link, step by step
Log in at agency level, go to Settings > Custom Menu Links, then click Create New. The form is short, but each field carries a decision.
- Link Icon — pick something visually distinct from the native icons.
- Link Title — short, in the client's language. "Your Dashboard" beats "Reporting Portal v2".
- URL — must start with http:// or https://. Location values and custom values can go straight into it.
- Opening method — embedded iFrame, new browser tab, or current tab.
- Sidebar Preference — agency sidebar, sub-account sidebar, or both. The sub-account option unlocks the account picker.
- Role-Based Visibility — All, User, or Admin.
Save it, then open a test sub-account as a client would see it and click the link for real. Half the problems in this feature only appear on a real click.
Who is allowed to build them
Custom menu links are an agency-only control. Per HighLevel's official Custom Menu Links documentation, managing them is governed by a team permission: go to Settings > Team, select the user, and confirm Manage Custom Menu Links is enabled. Sub-account admins cannot add their own — a feature, not a limitation. It pairs with how sub-account roles control visibility across the rest of the platform.
iFrame, new tab or current tab: which opening method to choose
This decision determines whether the link feels native or feels like an exit. Embedding keeps the navigation intact around your page; a new tab breaks the illusion but guarantees the page loads.
| Method | Feels native? | Main risk | Best for |
|---|---|---|---|
| Embedded Page (iFrame) | Yes — sidebar stays visible | Destination may refuse to be framed; blank panel | Dashboards, forms, course pages you control |
| New Browser Tab | No — but HighLevel stays open | Tab sprawl; client loses their place | Third-party tools, anything that blocks framing |
| Current Browser Tab | No — replaces the app | Client has to navigate back manually | One-way journeys: checkout, upgrade, external sign-up |
| Parameterised URL (any method) | Depends on method | Values are visible in the URL | Personalised dashboards and per-client views |
My default is embed first, fall back to new tab the moment the frame misbehaves. Current tab is for deliberate one-way trips only.
Passing user and location data into the link
What turns a static link into something closer to SSO is merge-field support in the URL. HighLevel replaces the variables at click time with the current user's and sub-account's details, so one link serves the whole portfolio.
A URL like https://yourapp.com/dashboard?loc={{location.id}}&email={{user.email}} lands on your page already knowing who arrived and from which sub-account. Supported variables include user.first_name, user.last_name, user.name, user.email, user.phone, the full location.* set (id, name, address, phone, email, website, logo_url and more), location_owner.* fields, and any custom value referenced as custom_values.your_value_name.
Treat these parameters as identification, not authentication. HighLevel's own documentation warns that values placed in a menu link URL are passed to the destination and can surface in browser history, server logs and analytics tools — so never put credentials, tokens or anything sensitive in there. If your destination needs a genuine session, match on the user or location ID and issue your own token server-side.
Custom values are where naming discipline pays off. If you already follow naming conventions for workflow folders, extend the scheme to any custom value referenced in a menu link — a rename silently breaks every link pointing at it.
Why some URLs simply will not embed
You will eventually add a link, choose iFrame, and get a blank panel. That is almost never a HighLevel bug — it is the destination telling the browser it refuses to be framed.
Two response headers do this: the older X-Frame-Options and the modern Content-Security-Policy: frame-ancestors directive. As MDN's frame-ancestors reference explains, the directive names which parent origins may embed a page, and browsers supporting it ignore X-Frame-Options when both are present. Google properties, banks and plenty of SaaS logins block framing outright.
The 30-second test before you roll anything out
- Check the destination's response headers for
X-Frame-Optionsor aframe-ancestorsdirective. - If either blocks framing, switch the link to New Browser Tab and move on.
- If you control the destination, add your white-label domain to
frame-ancestorsrather than removing the protection. - Re-test after any domain change: the embedding origin is your app domain, not gohighlevel.com.
That last point catches a lot of agencies. Your white-label domain and app branding determines the origin doing the embedding, so an allowlist built before white-labelling will fail afterwards.
Not on HighLevel yet? Start with a free 30-day trial here — long enough to build everything in this guide before you pay a cent.
Rolling menu links out across dozens of sub-accounts
One link, many destinations, is the pattern that scales. Rather than a separate menu link per client, create one link with {{location.id}} in the URL and let your destination branch on the ID. Then set Sidebar Preference to the sub-account sidebar and select the accounts that should see it.
Where the whole portfolio should get it, select all current sub-accounts — then add the assignment to your onboarding checklist, because new sub-accounts are not retrofitted into an existing selection. If you sell through SaaS plans, HighLevel lets you associate menu links with a plan so subscribing sub-accounts receive them automatically, which is the cleanest option at volume.
Custom menu links are agency-level configuration, not sub-account assets, so they do not travel inside a snapshot the way workflows and funnels do. Plan the rollout as its own step alongside your agency snapshot builds rather than assuming a snapshot push will carry them across.
Ordering and icons
Use the Rearrange Custom Menu Links button to drag items into order and save, with whatever clients need weekly at the top. More than about five custom items is a menu problem, not a linking problem.
Permissions, visibility and keeping the menu clean
Role-Based Visibility has three settings — All, User, Admin — and it is the difference between a tidy client experience and an internal tool leaking into a client's view. Set internal QA dashboards, billing pages and delivery checklists to Admin.
Adopt a naming convention that signals audience at a glance — a client-facing "Your Dashboard" versus an internal "Ops — QA Checklist" — and record an owner against every link.
- Review the list quarterly and delete anything nobody clicks.
- Record the destination owner, so a dead link has someone to chase.
- Never point a client-facing link at a personal Drive folder or trial account.
- Re-test embeds after any platform or domain migration.
Common mistakes to avoid
- Choosing iFrame without testing the headers — a blank panel looks like your software is broken, not theirs.
- Putting sensitive data in URL parameters — tokens and keys end up in logs and browser history.
- Forgetting Role-Based Visibility — internal ops pages visible to clients is an avoidable leak.
- Creating one link per client — unmaintainable past a handful of accounts; use
{{location.id}}. - Assuming new sub-accounts inherit existing links — assign them on onboarding, or via a SaaS plan.
- Cluttering the sidebar — every extra item reduces clicks on the ones that matter.
If you want your sub-account sidebars turned into a genuine, branded client portal — dashboards, SOPs, support and upsell paths, rolled out consistently across every account — book a strategy call with the HL Growth Partner team.
Or if you just need the software first: grab the 30-day HighLevel trial and book us when you're ready to scale it.
Frequently asked questions
Can sub-account admins create their own custom menu links?
No. Custom Menu Links are managed by agency users only, and only by those with the Manage Custom Menu Links permission enabled under Settings > Team. Sub-account admins can see and use the links you assign, but cannot add, edit or remove them. This keeps navigation consistent across your whole portfolio.
Where do I find Custom Menu Links in GoHighLevel?
Log in at agency level and go to Settings > Custom Menu Links in the left-hand menu, then click Create New in the top right. The same screen lists every existing link with edit and delete icons, plus the Rearrange Custom Menu Links button for ordering.
Why does my embedded page show up blank inside HighLevel?
Almost always because the destination site refuses to be framed. Sites use the X-Frame-Options header or a Content-Security-Policy frame-ancestors directive to block embedding as clickjacking protection. Either allowlist your white-label app domain on the destination, or switch the link to open in a new browser tab.
Can I show a custom menu link to only some sub-accounts?
Yes. Set Sidebar Preference to the sub-account sidebar and you can then select exactly which sub-accounts display the link. You can also layer Role-Based Visibility on top so that only Admins or only Users within those accounts see it.
Does a custom menu link log the user into my external tool automatically?
Not on its own. It can pass user and location details as URL parameters — first name, email, location ID, custom values and more — which your destination reads to identify the visitor. Real authentication still has to happen on your side; treat the parameters as a hint about who arrived, not proof of it.
Can I reorder the links in the sidebar?
Yes. On the Custom Menu Links screen, click Rearrange Custom Menu Links, drag the items into the order you want, then save. The new order applies immediately for everyone who can see those links.
Do custom menu links transfer in a snapshot?
They are agency-level configuration rather than assets stored inside a sub-account, so they are not something a snapshot carries across the way workflows, funnels and calendars are. Assign them explicitly via Sidebar Preference, or attach them to a SaaS plan so subscribing sub-accounts receive them automatically.
What happens if I rename a custom value used in a menu link URL?
The merge field will no longer resolve, and your destination will receive an empty or literal value instead of real data. Decide on a naming convention for custom values before you start referencing them in menu links, and check every link after any renaming exercise.
Related Articles on HL Growth Partner
Agency setup and white-labelling
- White Label: App, Domain & Branding
- White-Label Mobile App: Branding & Cost
- Sub-Account Permissions & User Roles
