Price Manager
Set buy prices by model, carrier group, and condition
Select a category above to set prices
Dashboard
Analytics overview of your trade-in pipeline
Lead Management
Track and manage trade-in inquiries
| Date ▼ | Customer | Device | Condition | Timing | Offer ▼ | Notes | Status | Actions |
|---|
Device Manager
Add or remove device categories, models, and storage options
Add New Model
Current Devices
Appointments
Manage upcoming trade-in appointments
| Appt Date | Time | Customer | Device | Offer | Notes | Status | Actions |
|---|
Offers
Track SMS offers sent to leads
| Date | Lead | Device | Offer | Status | Viewed | Appointment | Decline Reason |
|---|---|---|---|---|---|---|---|
| Loading offers... | |||||||
All Automations
Everything that runs automatically — cron jobs, follow-ups, reminders, and webhooks. Click any card to expand.
Reminder Log
| Sent | Customer | Appt Date | Appt Time | Reminder |
|---|---|---|---|---|
| Loading... | ||||
New Lead Diagram
Visual flow of how a new trade-in lead moves through the system
Trade-In Lead Flow
Technical Details
Cancelled if user completes "More Info" step before timer fires.
Runs every 2 min via pg_cron. Queries leads where sms_followup_at ≤ now AND condition IS NULL AND sms_followup_sent = false.
Ad Setup Guide
Step-by-step instructions for Facebook & Google Ads tracking
f Facebook Ads Setup
Install the Facebook Pixel
- Go to Facebook Events Manager → business.facebook.com/events_manager
- Click Connect Data Sources → Web → Facebook Pixel
- Name it "BuyCellCleveland Pixel" and create it
- Copy your Pixel ID (looks like
123456789012345) - Add this code to the
<head>of your trade-in page:
<!-- Facebook Pixel -->
<script>
!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){
n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;
s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}
(window,document,'script','https://connect.facebook.net/en_US/fbevents.js');
fbq('init', 'YOUR_PIXEL_ID');
fbq('track', 'PageView');
</script>
Add Conversion Events to the Form
Add these event calls to your trade-in form so Facebook can track what matters:
| When | Code to Add |
|---|---|
| Contact info submitted | fbq('track', 'Lead'); |
| Offer shown | fbq('track', 'ViewContent', {content_name: 'Trade-In Offer'}); |
| Appointment booked | fbq('track', 'Schedule'); |
Set Up UTM Parameters on Your Ads
- Go to Ads Manager → Edit your ad
- Scroll to "Tracking" section at the bottom of the ad
- Click "Build a URL Parameter"
- Fill in these fields:
| Field | Value to Enter |
|---|---|
| Campaign Source | facebook |
| Campaign Medium | paid_social |
| Campaign Name | {{campaign.name}} |
| Campaign Content | {{ad.name}} |
| Campaign Term | {{adset.name}} |
{{campaign.name}}, {{ad.name}}, and {{adset.name}} are Facebook dynamic parameters — they auto-fill with the actual names from your campaigns. No need to type them manually for each ad.
Enable Auto-Appended Parameters
Facebook automatically adds fbclid to your URLs — this is the most important parameter for conversion tracking. Make sure it's not getting stripped:
- Go to Events Manager → your Pixel → Settings
- Scroll to "Automatic Advanced Matching" and turn it ON
- Enable at least: Phone Number and Name
Create a Custom Conversion for "Appointment Booked"
- In Events Manager, click Custom Conversions (left sidebar)
- Click Create Custom Conversion
- Set the rule to: Event = Schedule
- Name it "Trade-In Appointment Booked"
- Set category to Schedule
- Click Create
Verify Your Domain
- Go to Business Settings → Brand Safety → Domains
- Click Add → enter buycellcleveland.com
- Choose DNS Verification (easiest) or Meta Tag
- Follow the instructions to verify
Configure Aggregated Event Measurement
After domain verification, you need to prioritize which events Facebook tracks for iOS users (you get 8 max):
- Go to Events Manager → Aggregated Event Measurement
- Click Configure Web Events → select your domain
- Add and prioritize your events (highest priority first):
1 Schedule (appointment booked)2 Lead (contact info submitted)3 ViewContent (offer viewed)4 PageView
G Google Ads Setup
Install Google Tag (gtag.js)
- Go to Google Ads → Tools & Settings → Conversions
- Or go to Google Tag Manager (recommended)
- Get your Conversion ID (looks like
AW-123456789) - Add this to the
<head>of your trade-in page:
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-YOUR_ID"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'AW-YOUR_ID');
</script>
Create Conversion Actions
- In Google Ads, go to Goals → Conversions → + New conversion action
- Choose Website
- Create these conversion actions:
| Conversion Name | Category | Code to Add |
|---|---|---|
| Trade-In Lead | Submit lead form | gtag('event', 'conversion', {send_to: 'AW-YOUR_ID/LABEL'}); |
| Appointment Booked | Book appointment | gtag('event', 'conversion', {send_to: 'AW-YOUR_ID/LABEL'}); |
send_to value looks like AW-123456789/AbCdEf — the part after the slash is your label. Each conversion action has a unique label.
Enable Auto-Tagging (gclid)
- In Google Ads, go to Admin → Account Settings
- Find "Auto-tagging"
- Check "Tag the URL that people click through from my ad"
- Click Save
gclid=xxxx to every click URL. Your trade-in form already captures this and stores it with the lead — this is how you tie a lead back to the exact keyword and ad that generated it.
Set Up UTM Parameters on Your Ads
- Edit your ad → expand "Ad URL options"
- In the "Tracking template" field, paste:
{lpurl}?utm_source=google&utm_medium=cpc&utm_campaign={campaignid}&utm_content={creative}&utm_term={keyword}
| Parameter | What It Auto-Fills |
|---|---|
{campaignid} |
Your campaign ID number |
{creative} |
The ad creative ID |
{keyword} |
The keyword that triggered the ad |
{lpurl} |
Your landing page URL (auto) |
Link Google Ads to Google Analytics
- In Google Ads, go to Tools & Settings → Linked accounts
- Find Google Analytics (GA4) and click Link
- Select your GA4 property and confirm
✓ What Your System Already Captures
Your trade-in form automatically grabs these parameters from the URL when someone lands on it. No extra setup needed — this is already live.
fbclid — Facebook Click IDfb_ad_id — Ad IDfb_adset_id — Ad Set IDfb_campaign_id — Campaign ID_fbp / _fbc — Pixel cookiesgclid — Google Click IDgbraid / wbraid — iOS click IDsgad_source — Ads sourcedclid — DoubleClick ID_gcl_aw / _gcl_dc — Google cookiesutm_source — facebook / googleutm_medium — paid_social / cpcutm_campaign — Campaign name/IDutm_content — Ad name/creativeutm_term — Ad set / keywordQuick Checklist
Settings
Admin configuration
Change Admin Password
GHL Webhook Integration
Connect GoHighLevel workflows to automatically update trade-in lead statuses. Set up a Custom Webhook action in your GHL workflow and point it to the URL below.
- Go to Automation → Workflows in GHL
- Create or edit a workflow with the trigger "Pipeline Stage Changed" or "Deal Won"
- Add a Custom Webhook action
- Set method to POST
- Paste the URL above
- Set the body to send the contact's phone number (see example below)
{
"phone": "{{contact.phone}}",
"name": "{{contact.name}}"
}
Data Management
Export or reset your data. Be careful with reset - it cannot be undone.