Custom JS is a setting in the agency account that lets you add your own JavaScript to the GoHighLevel app. It sits next to Custom CSS in the agency's Settings, under Company, in the whitelabel custom code section (as of October 2026). Whatever you paste there loads in the app for agency and sub-account users, which makes it the standard way agencies add chat widgets, analytics, and small interface changes across every client account.
HighLevel describes custom JS and CSS as powerful but unsupported. Platform updates can change the page structure your code relies on, so scripts need maintenance.
In practice
The common pattern is a single <script> tag that loads a file hosted elsewhere, rather than pasting large blocks of code into the setting. That way you can update the hosted script without touching GoHighLevel again, and a broken update can be rolled back in one place.
Things to watch:
- Custom JS runs for everyone who uses the white-labeled app, so test changes before you save them.
- Because the code is agency-wide, a script that should only affect some clients has to check which sub-account it's running in.
- It doesn't run in the mobile app, and it can't change parts of the page that GoHighLevel draws without stable selectors.
Where it shows up in RGS Tools
Power-Ups run inside GoHighLevel through one loader line pasted into Custom JS. That one line adds Contact Peek, File Preview, Dark Mode and Duplicate Contact. You switch each on or off and choose which sub-accounts see it, and updates reach GoHighLevel without reinstalling.