A living, self-updating partner account intelligence dashboard.
Hosted via GitHub Pages · Auto-refreshes daily at midnight CT via GitHub Actions.
Your SFDC Export (.xlsx)
↓
GitHub Actions (runs daily at 05:00 UTC / midnight CT)
↓
scripts/generate_data.py → docs/data.json
↓
docs/index.html fetches data.json and renders the dashboard
- You upload a new SFDC export to this repo (as
data/accounts.xlsx) - GitHub Actions runs the Python script to regenerate
docs/data.json - GitHub Pages serves the updated dashboard automatically
git clone https://github.com/dreday12/quest-dashboard.git
cd quest-dashboard- Go to Settings → Pages
- Source: Deploy from a branch
- Branch:
main· Folder:/docs - Save — your dashboard will be at
https://dreday12.github.io/quest-dashboard/
- Go to Settings → Actions → General
- Set "Workflow permissions" to Read and write permissions
Place your exported .xlsx file at:
data/accounts.xlsx
Commit and push — Actions will auto-generate the data.
Go to Actions → Generate Dashboard Data → Run workflow to regenerate on demand.
Option A — Push a new export:
cp ~/Downloads/your_new_export.xlsx data/accounts.xlsx
git add data/accounts.xlsx
git commit -m "Update accounts data $(date +%Y-%m-%d)"
git pushActions fires automatically, dashboard updates within ~2 minutes.
Option B — Manual trigger: Go to Actions tab → "Generate Dashboard Data" → "Run workflow"
quest-dashboard/
├── .github/
│ └── workflows/
│ └── generate_data.yml # Daily scheduler + on-push trigger
├── data/
│ └── accounts.xlsx # Your SFDC export (you update this)
├── docs/
│ ├── index.html # The dashboard (static, served by Pages)
│ └── data.json # Auto-generated by Actions (don't edit)
├── scripts/
│ └── generate_data.py # Data extraction script
└── README.md
The script expects your SFDC export to contain these columns (header row 12):
| Column | Description |
|---|---|
| SFDC Account ID | Account identifier (Act-xxxxx) |
| Account Name | Full account name |
| Product Description | License product name |
| Quantity | License count |
| Maint. End Date | Renewal date |
| Asset Number | Asset identifier |
| Asset : Contact : Email | Primary contact |
| Quest Product Family | Product family grouping |
| Business Unit | IM / PM / UEM |
| Order Product: Total Amount | Revenue figure |
| Partner Status | Active / Inactive |
| Asset : Order Product : Order : Opportunity : Quest Primary Partner | Partner name |
pip install pandas openpyxl
python scripts/generate_data.py
# Open docs/index.html in your browser