Current status
Live state of the GHL sync running behind the site visit form.
Checking…
Paste your GHL credentials
From GHL: Settings → Private Integrations → create token (Contacts + Opportunities + Notes scopes). Location ID is in Settings → Business Profile.
How to find these in GoHighLevel
- Log into app.gohighlevel.com
- Switch to The Poly B Guys sub-account
- Token: Settings → Private Integrations → Create new integration → enable scopes:
contacts.write,contacts.readonly,opportunities.write,locations.readonly→ copy thepit-…token - Location ID: Settings → Business Profile → "Location ID" near the top, OR copy from the URL after
/location/ - Paste both above → tap Connect & Test
This page calls ghl-setup which validates the token by hitting /locations/{id}, then stores both credentials in Supabase Vault and disables sandbox mode. Nothing is stored client-side.
Sandbox test
Fire a fake site visit through ghl-sync. When sandbox mode is on this writes to ghl_sandbox_log; when live it pushes to real GHL.
All requests use the public Supabase anon key. Tokens never live in this page — they go straight to the vault via the edge function.