Leads Contacted
—
—
Open Rate
—
—
Reply Rate
—
—
Interested
—
—
Calls Booked
—
—
Campaign Status
Opens by Day
Engagement
Sent—
Opened—
Clicked—
Replied—
Interested—
Booked—
Top Steps by Open Rate
| Step | Sent | Opens | Replies |
|---|
Summary
Campaigns Running
—
Active this week
Emails Sent
—
Total sent
Open Rate
—
Selected campaign
Interested
—
Email + call combined
Deliverability
—
Delivery rate
Engagement Funnel
Campaign Health
| Metric | Value | Status |
|---|
All Campaigns
Send Report via Email
Download Data
Booked This Week
—
Booked Today
—
Show Rate
—
No-Shows This Week
—
Upcoming Appointments
| Time (AEST) | Name | Company | Type | Status |
|---|---|---|---|---|
| Loading... | ||||
Week Summary
Attended
—
No-Show
—
Cancelled
—
Updated: —
GHL Pipeline
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
Leads by Source
| Name | Company | Source | Status | Campaign | Last Activity |
|---|
Open Opportunities
—
New This Week
—
Won This Month
—
Pipeline Value
—
GHL Opportunities
Loading…
Updated: —
Booked This Week
—
Booked Today
—
Show Rate
—
No-Shows This Week
—
Upcoming Appointments
| Time (AEST) | Name | Company | Type | Status |
|---|---|---|---|---|
| Loading… | ||||
Week Summary
Attended
—
No-Show
—
Cancelled
—
Updated: —
Active Workflows
—
Runs (7d)
—
Success Rate
—
Errors (7d)
—
Recent Run History
| Workflow | Status | Triggered | Duration | Items |
|---|
Insights Generated
—
From latest data
High Priority
—
Action required
Opportunities
—
Positive signals
Last Analysed
—
AEST
Report Templates
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.
Recent Exports
| Report | Type | Period | Generated | |
|---|---|---|---|---|
| No exports yet | ||||
Integrations
API connection status for all connected platforms
Lemlist
Cold email campaigns and analytics
GoHighLevel
CRM, pipelines, and appointments
n8n
Automation workflows (self-hosted, KVM2)
Clay
Lead enrichment and email validation
Google Sheets
Temp data storage and client reports
Team
Team members and roles
Edeline Go (Eds)
automation@syncstudios.com.au
Mina
Sales & Business Development
Daniel
Client Success & Campaigns
Dashboard
Data and notification settings
Dashboard Port
Flask server port (env: DASHBOARD_PORT)
Auto-refresh
Trigger n8n webhook on manual refresh
Report Destination
Email address for automated reports
Timezone
All scheduling and display times
Stats Diagnostics
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
Pipeline cache
—
GHL pipeline deals (live)
appointments.json
—
GHL appointments
Automations cache
—
n8n automations (live)
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
| Symptom | Most Likely Cause | Fix |
|---|---|---|
| Outreach shows all zeros | LEMLIST_API_KEY missing or wrong | Set the env var and restart the server |
| Campaign missing from Outreach | Campaign status is stopped/ended/completed — filtered by server | Reactivate 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 old | Delete data.json and click Refresh, or wait for 30-min cache expiry |
| Some stats are 0, campaign is active | Lemlist API field names changed — field mapping mismatch | Check raw data.json vs emailsSent/emailsOpened field names in _build_lemlist_dash_data() |
| Aircall stats all zero | Call data under different API keys (callsCreated vs other variants) | Inspect raw /campaigns/reports response for actual field names |
| Pipeline board empty | pipeline.json missing — n8n GHL sync hasn't run | Trigger the n8n GHL pipeline workflow or POST to /pipeline/update manually |
| Appointments tab empty | appointments.json missing or outdated — n8n sync failing | Check n8n appointment workflow, POST to /appointments/update |
| Leads tab shows 0 | GHL_API_KEY or GHL_LOCATION_ID missing | Set both env vars and restart |
| Refresh button does nothing | LEMLIST_WEBHOOK_REFRESH_URL not set or n8n not running | Confirm 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 |