Leads Contacted
Open Rate
Reply Rate
Interested
Calls Booked

Sent
Opened
Clicked
Replied
Interested
Booked
StepSentOpensReplies
Campaigns Running Active this week
Emails Sent Total sent
Open Rate Selected campaign
Interested Email + call combined
Deliverability Delivery rate
MetricValueStatus
Booked This Week
Booked Today
Show Rate
No-Shows This Week
Time (AEST) Name Company Type Status
Loading...
Attended
No-Show
Cancelled

Updated:

Open Opportunities
New This Week
Won This Month
Pipeline Value
Updated:
Total Calls
This Week
No Answer
Interested
Reengagement Pool
Recent Call Attempts
Date / Time Contact Phone Outcome Duration
Loading…
Reengagement Pool 3+ no-answers — ready to re-engage
Contact Campaign No-Answer Count Last Called Status
Loading…
Total Leads
New This Week
Interested
Booked Calls ↑ 2 this week
Name Company Source Status Campaign Last Activity
Open Opportunities
New This Week
Won This Month
Pipeline Value
Loading…
Updated:
Booked This Week
Booked Today
Show Rate
No-Shows This Week
Time (AEST) Name Company Type Status
Loading…
Attended
No-Show
Cancelled

Updated:

Active Workflows
Runs (7d)
Success Rate
Errors (7d)
WorkflowStatusTriggeredDurationItems
Insights Generated From latest data
High Priority Action required
Opportunities Positive signals
Last Analysed AEST
Outreach Performance
Open rate, reply rate, bounce rate, campaign funnel by period.
Lead Generation
Leads sourced, enriched, imported by campaign and source.
CRM Pipeline
Pipeline value, stage breakdown, deal velocity, won/lost.
Campaign Summary CSV
Full campaign data export in CSV format for client handover.
Email Weekly Report
Send this week's HTML campaign report to the ops inbox.
Monthly Summary
Monthly rollup: campaigns, leads, pipeline, ROI.
ReportTypePeriodGenerated
No exports yet
Integrations
API connection status for all connected platforms
Lemlist
Cold email campaigns and analytics
Connected
GoHighLevel
CRM, pipelines, and appointments
Connected
n8n
Automation workflows (self-hosted, KVM2)
Running
Clay
Lead enrichment and email validation
Connected
Google Sheets
Temp data storage and client reports
Not configured
Team
Team members and roles
Edeline Go (Eds)
automation@syncstudios.com.au
Automation Engineer
Mina
Sales & Business Development
Sales
Daniel
Client Success & Campaigns
Client Success
Dashboard
Data and notification settings
Dashboard Port
Flask server port (env: DASHBOARD_PORT)
5000
Auto-refresh
Trigger n8n webhook on manual refresh
Enabled
Report Destination
Email address for automated reports
automation@syncstudios.com.au
Timezone
All scheduling and display times
AEST/AEDT (Sydney)
Probe each stage of the data pipeline — find where stats break and fix it fast.
Data Flow
Outreach Stats
Lemlist API
/campaigns/reports
data.json cache
Outreach Tab
display
Appointments
GHL API
n8n Workflow
pipeline.json
Appointments Tab
display
Leads (live)
GHL API
/leads endpoint
Leads Tab
display
Data Files
data.json
Lemlist campaign data
Checking…
Pipeline cache
GHL pipeline deals (live)
Checking…
appointments.json
GHL appointments
Checking…
Automations cache
n8n automations (live)
Checking…
Environment Variables
LEMLIST_API_KEY
Required for Outreach stats
GHL_API_KEY
Required for Leads, Pipeline, Appointments
GHL_LOCATION_ID
Required for all GHL API calls
LEMLIST_WEBHOOK_REFRESH_URL
Required for manual Refresh button
DASHBOARD_SECRET_TOKEN
Required for protected endpoints
SMTP_HOST
Required for email notifications
N8N_API_KEY
Required for Automations tab
N8N_BASE_URL
Required for Automations tab
Known Issues & Fixes
SymptomMost Likely CauseFix
Outreach shows all zerosLEMLIST_API_KEY missing or wrongSet the env var and restart the server
Campaign missing from OutreachCampaign status is stopped/ended/completed — filtered by serverReactivate campaign in Lemlist, or remove it from the _skip set in _build_lemlist_dash_data()
Stats are stale (old numbers)Cache hit — data.json written with bad data, <30 min oldDelete data.json and click Refresh, or wait for 30-min cache expiry
Some stats are 0, campaign is activeLemlist API field names changed — field mapping mismatchCheck raw data.json vs emailsSent/emailsOpened field names in _build_lemlist_dash_data()
Aircall stats all zeroCall data under different API keys (callsCreated vs other variants)Inspect raw /campaigns/reports response for actual field names
Pipeline board emptypipeline.json missing — n8n GHL sync hasn't runTrigger the n8n GHL pipeline workflow or POST to /pipeline/update manually
Appointments tab emptyappointments.json missing or outdated — n8n sync failingCheck n8n appointment workflow, POST to /appointments/update
Leads tab shows 0GHL_API_KEY or GHL_LOCATION_ID missingSet both env vars and restart
Refresh button does nothingLEMLIST_WEBHOOK_REFRESH_URL not set or n8n not runningConfirm env var set, check n8n at port 5678 on KVM2
data.json is corrupt (parse error)Server crashed mid-write (rare — atomic write should prevent this)Delete data.json — it regenerates on next /dashboard/data request