Senior Living Operations Dashboard: Unifying Six Multi-Site Facilities
How AccellionX replaced manual daily reporting for a multi-site senior care operator — connecting an EHR with no API, consolidating three disconnected systems, and adding an AI query layer — in 12 days.
Business Impact
Key Takeaways
- No API is not a blocker — resilient browser automation with retry logic and session recovery extracted clean data from an EHR that offered no official export, cycling through six facility subdomains in one scheduled run.
- People as the pipeline is the real cost — manual daily reporting wasn't just slow, it was fragile and unrepeatable. Automating it twice a day freed staff hours and made the data trustworthy.
- Historical snapshots matter as much as live data — storing month-over-month history from day one meant leadership could immediately compare performance across periods without any manual lookups.
- AI queries change how operators use data — asking 'how many long-term-care residents do we have right now?' in plain English and getting a structured answer is a different experience than pulling a spreadsheet.
- Milestone-by-milestone delivery builds trust — the client verified each stage before the next began, which is the right model for operators who are rightly cautious about touching live care data.
- A scalable foundation matters more than features — building around a normalized schema means new facilities and data sources plug in without rebuilding the pipeline.
Why This Matters
Speak to almost any multi-site senior living operator and the same pattern emerges. Each community runs its own electronic health record, its own occupancy and CRM tools, and its own version of 'the daily report.' The systems rarely talk to each other, so the only way to get a portfolio-wide picture is for someone to manually gather, re-key, and reconcile numbers from every building.
That manual layer is expensive in three ways. It consumes staff time that should go to residents. It introduces errors, because hand-keyed reconciliation across six buildings is fragile. And it delays decisions — by the time leadership sees a census dip or an outstanding-invoice spike, it's already old news.
The instinct is to buy an all-in-one platform. But off-the-shelf senior living software assumes you'll adopt its data model and workflows, and frequently can't reach the systems you already depend on. This operator needed a layer that connected to what they already ran, reflected their exact reports, and turned scattered data into a single, current, queryable source of truth.
Strategic Challenge
A growing senior care group operated six assisted living facilities with no single place to see the state of the business across all communities at once. The core EHR had no official API. Each facility ran on its own subdomain and login, and earlier scraping attempts had failed on session drops and inconsistent report rendering. The CRM tracked leads and at-risk residents through an API whose figures didn't always match the interface. The only consolidated view was a daily report assembled by staff every morning — no historical snapshots, no trend lines, and no way to query it conversationally.
Engineered Solution
A three-milestone platform: (1) resilient browser automation with retry logic and session recovery to extract EHR data across all six facility subdomains; (2) a unified PostgreSQL pipeline merging the EHR, CRM, and historical snapshots with twice-daily automated syncs; (3) corporate and community-level dashboards with an AI query layer built on Claude via RAG, letting leadership ask operational questions in plain English against live data.
Security & Compliance
Scalability & Growth
The pipeline is built to absorb new facilities and data sources without rebuilding. Adding a community requires only a new subdomain credential — the multi-site cycling logic handles the rest. New data sources plug into the existing normalized schema.
Measurable Outcomes
Data Pipeline · Dashboard · AI Layer
- Playwright — browser automation with session recovery and multi-site URL cycling
- PostgreSQL — normalized schema with latest snapshots and full historical record
- Node.js & Python — custom parsers and pipeline automation
- n8n — scheduled orchestration with manual sync trigger and kill-switch
- Claude (Anthropic) via RAG — plain-English AI query layer over live data
- REST API integration — CRM with month-to-date and prior-month filtering
- Role-based access control — community-level and corporate dashboard tiers
- Cloud deployment — twice-daily automated sync with manual override
Project Milestones
- 1
Stable Data Extraction from an EHR with No API
PlaywrightSession recoveryMulti-site cyclingData normalizationThe foundation, and the hardest part. A browser-automation scraper with session stability at its core — retry logic, automatic re-authentication on session drop, and a cleanup layer before anything touched the database. One scheduled run cycles through all six facility subdomains and returns clean, normalized data every time.
- 2
A Unified Data Pipeline Across Every Source
PostgreSQLCRM integrationScheduled + manual syncHistorical snapshotsWith extraction stable, the CRM was connected and every source merged into a single PostgreSQL schema — storing both the latest snapshot and a full historical record, so month-over-month comparisons need no manual lookup. Syncs run automatically twice daily, with a manual 'Sync now' trigger and a kill-switch.
- 3
Dashboards and an AI Query Layer
Corporate + community viewsCalculated metricsAI query layer (RAG)Role-based accessTwo dashboard tiers — community-level views with drill-down, and a corporate dashboard aggregating every facility. On top sits an AI assistant, built with retrieval-augmented generation, that lets leadership query live operational data in plain English — with role-based access throughout.
Before & After
| Before | After |
|---|---|
| Daily reports compiled by hand and emailed each morning | Automated twice-daily sync — zero manual compilation |
| Each facility's data siloed in its own system | Six facilities in one corporate dashboard |
| No history; no way to compare to last month | Full historical record with month-over-month comparison |
| Questions answered by stopping to pull a spreadsheet | Plain-English AI queries answered in the dashboard |
| No portfolio view across communities | Side-by-side, drill-down portfolio view |
System Architecture
| Layer | Implementation Detail |
|---|---|
| Extraction | Playwright with retry logic, session recovery, and multi-site URL cycling across six environments. |
| Pipeline | n8n automation flows plus custom Node.js/Python parsers, normalizing each source before ingestion. |
| Database | PostgreSQL — normalized schema holding latest snapshots and full history for month-over-month queries. |
| CRM | REST API integration with month-to-date and prior-month filtering, reconciled against EHR figures. |
| AI Layer | Claude (Anthropic) via retrieval-augmented generation (RAG) over the live PostgreSQL database. |
| Infrastructure | Cloud deployment with twice-daily scheduled sync, a manual 'Sync now' trigger, and a kill-switch. |
| Interface | Custom dashboard with role-based access — community-level drill-down and a corporate rollup view. |
Frequently Asked Questions
Ready to Achieve Similar Results?
Let's engineer your strategic solution. Book a free strategy call and see what's possible.
Trusted by regulated industries
