Eleven data sources in one dashboard — and stale numbers labelled stale
The CEO reviewed every social account separately and read marketing performance off spreadsheets someone rebuilt by hand each week. Website, social and sales now sit in one dashboard and one mobile app, with every source reporting its own freshness.
The client
US medical-device manufacturer. Published anonymously at the client’s request — no company name and no person’s name appears in this entry.
The problem
Six social accounts were reviewed one platform at a time, in six different interfaces, each with its own idea of what a good week looks like.
Marketing numbers lived in spreadsheets updated by hand every week. By the time a figure reached a decision it was days old, and nobody could say how old without asking whoever built the sheet.
There was no single view of the business. Website performance, social reach and the sales pipeline were three separate conversations.
What was built
- An all-in-one dashboard in Next.js — one place for website, social and sales.
- A sync engine pulling 11 external APIs: six social platforms, Search Console, Analytics, Clarity, the CRM and the website itself. Each runs on a schedule and can be refreshed on demand.
- Per-source sync status, so a feed that stops updating is shown as stale instead of quietly serving an old number as a current one.
- Role-based access, with audit and sync logs recording who changed what and which pull last succeeded.
- A drag-and-drop sales pipeline, lead capture, an editorial calendar and report generation.
- A mobile app, so the same numbers are reviewable away from a desk.
Before and after
| Before | After |
|---|
| Marketing reporting | Spreadsheets rebuilt by hand every week | One dashboard, refreshed on schedule and on demand |
|---|
| Platform review | Each social account opened and read separately | Six platforms in one view, plus a mobile app |
|---|
| Connected data sources | None — everything arrived by hand | 11 APIs on a sync schedule |
|---|
| Silent data failure | A stale number was indistinguishable from a live one | Stale sources are labelled stale |
|---|
How each figure was measured
- Marketing reporting
- Description of the process before and after. No hours figure was recorded for the manual version, so none is claimed here.
- Platform review
- Count of accounts consolidated into the dashboard.
- Connected data sources
- Count of integrations in the sync engine.
- Silent data failure
- Every source records the outcome and time of its last pull, and the dashboard shows that state next to the figure rather than only the figure.
What is deliberately not here
No time-saved figure appears in this entry. The manual process was never timed, and a number invented for it would be the easiest claim on this page to disprove.
The other engagements
- A seven-day reporting cycle became a scheduled evening job
- A 40-node content pipeline that runs without supervision
- Eight contract sources consolidated — and the silent data loss stopped