Prerequisites
- HighLevel account with API access
- Form(s) configured in HighLevel
- Webhook access enabled
Step 1: Connect HighLevel Account
You do NOT need to create your own OAuth app. The WisePilot platform provides shared OAuth credentials that all users can connect with.
- Go to Integrations → HighLevel
- Click “Connect HighLevel”
- You’ll be redirected to HighLevel to authorize
- Select your location/company
- Authorize the app
- You’ll be redirected back to WisePilot
How OAuth Works
- Platform OAuth App — WisePilot has a pre-configured OAuth app in HighLevel Marketplace
- User Authorization — Each user authorizes their own HighLevel account
- User-Specific Tokens — Your access/refresh tokens are stored securely per account
For Platform Administrators
If you’re setting up WisePilot for the first time, you’ll need to:- Create an OAuth app at HighLevel Marketplace
- Configure redirect URI:
https://your-domain.com/api/integrations/highlevel/callback - Add the required environment variables
Step 2: Configure Webhook
- Go to HighLevel Marketplace
- Navigate to My Apps → Select your app
- Go to Advanced Settings → Webhook section
- Add webhook URL:
https://your-domain.com/api/integrations/highlevel/webhook - Subscribe to events:
- ContactCreate (required) — Triggers on new form submissions
- ContactUpdate (recommended) — Triggers on existing contact updates
- Save the webhook configuration
This is a one-time setup per OAuth app. All users connecting with this app use the same webhook endpoint.
Step 3: Create cr_attrib Custom Field
Option A: Automatic Creation (Recommended)
- Go to the HighLevel integration page in WisePilot
- Click “Check & Create Custom Field” in the “Custom Field Setup” section
- The system checks if
cr_attribexists and creates it if needed
Option B: Manual Creation
- In HighLevel, go to Forms → [Your Form] → Settings
- Add a custom field named
cr_attrib - Add a hidden field in the form builder
- Configure it to read from URL parameter
cr_attrib
Step 4: Test Attribution
- Visit a page with a CTA that includes
cr_attribin the URL - Click the CTA
- Submit the HighLevel form
- Check the Data Quality Console to verify attribution
What Gets Synced Automatically
Once connected, WisePilot syncs HighLevel data on two cadences: Real-time (via webhook):- New form submissions with attribution data arrive immediately
- Conversations — full message history with outcome classification
- Appointments — booking status, show rates, linked to conversations
- Opportunities — pipeline stage, monetary value, won status
- Agent prompt versions — detects when AI agent prompts change
- Contacts — anonymized metadata (tags, lifecycle stage, custom fields — no PII stored)
- Daily performance snapshots — per-agent metrics aggregated for trend tracking
Next Steps
Once connected, set up your HighLevel features:- Conversations — Track AI agent conversations and outcomes
- Agents — Configure AI agent prompts and knowledge bases
- Sequences — Build email/SMS nurture sequences
Troubleshooting
Form submissions not showing attribution_id
- Verify
cr_attribcustom field exists in HighLevel - Verify form hidden field is reading from URL parameter
- Check webhook payload in HighLevel logs
- Verify webhook is enabled and receiving events
Low join coverage
- Check Data Quality Console → Coverage By Source
- Verify CTA links include
cr_attribparameter - Verify attribution script is loaded on all pages
- Check if forms are arriving from other sources (not CTAs)