Dashboard
Snapshot of visit activity, follow-ups, and payer mix across your visible accounts.
Team routing & encounter compliance
Ask the CRM
Accounts by county
Primary insurance mix (estimated)
Leaderboard — touches by CL Rep
Weekly activity goal
Referral budget vs. received —
Year over year — monthly touches
Referral volume (sample)
Visits due in the next 10 days
| Facility | County | Assigned Rep | Last Visit | Next Visit | Status |
|---|
Accounts
Referral sources, partner organizations, and schools tracked by county, state, and assigned Community Liaison Representative.
Referral Lookup
Search EHR intake/referral records by last name or date of birth — where a patient is in the pipeline, what stage, and any notes.
Tasks & Follow-ups
Every open follow-up across your visible accounts, grouped by urgency.
Weekly Route
Plan which accounts to visit each day this week, drawn from who's due on the follow-up list. Mark a stop visited to log it straight to that account's history.
Auto-fill by area — going to be in a certain city? Pull in every due account there
Due for a visit — not yet on this week's route
This week's route
Weekly Scorecard
Accountability against the Field Engagement Playbook: a 45-touch/week floor across 3–4 field days, plus the outreach essentials that go with it.
What counts
By CL rep
Marketing Materials
Organize brochures, one-pagers, and program flyers into folders — brochure, poster, flyer, or however your team sorts them — so any CL rep can browse, download, or email them.
Admin
Access, regions & goals, the user roster, your data, and backups — organized into tabs below.
Admin access
This section has its own password on top of your regular login — a simple extra gate, stored server-side alongside everything else, not a real credential vault (no rotation policy, no audit log).
Regions
Create the regions your team is organized into, then link each CL rep (and Regional Leader) to one from the Users tab. Region referral totals below are summed automatically from their linked CL reps — nothing to fill in for a region directly.
Referral budgets
Monthly referral goals. Toggle the year to build out future months ahead of time — these are illustrative starting numbers, not real Chrysalis Health targets.
By region — derived from CL rep goals, read-only
By CL Rep
Each CL rep covers specific counties, so set the goal at that level and it rolls up into their linked region automatically.
Users
Reassigning a rep's counties here doesn't move their existing accounts — that's the bulk reassign tool in Data Tools, or edit a single account directly.
Priority specialties by county
Specialty alone doesn't establish referral potential — a specialty that's a strong prospect in one county can have limited value in another. Flag which specialties matter most in each county here; accounts tagged with a priority specialty for their own county get a small boost in the due-list ranking on the Dashboard and Weekly Route.
Duplicate accounts
Scans every account for likely duplicates — same name and city/county, or the same street address. Pick which record to keep in each group; visits, tasks, referrals, documents, contacts, and route stops move over to it, and it's backfilled with anything it's missing from the ones merged in.
Export data
Downloads a snapshot of everything currently in this prototype. The CSV exports work here and from a hosted preview link; the combined .xlsx workbook needs its spreadsheet library, which only loads when this file is opened directly.
Bulk reassign accounts
Move a batch of accounts to a different CL rep at once — for when someone leaves, or you're redrawing territories.
Import referral counts
A manual stand-in for automatic Power BI sync (see Integrations for why this app can't pull that in on its own yet). Export referral counts from Power BI as a CSV with the account name, month, and count, and bring them in here — matches by exact account name, so make sure names line up with what's in Accounts.
EHR Connection
Referral Lookup searches a local copy of your EHR's intake/referral records, kept in sync by whatever POSTs to the webhook below — a Zapier automation, or an HL7 interface engine's (Mirth, Rhapsody, etc.) outbound HTTP step. This app doesn't speak raw HL7v2 itself; whatever sends data here needs to translate it to the plain JSON shape documented below first.
X-Webhook-Secret headerPayload to POST
Point your Zapier automation (or your interface engine's outbound step) at the URL above with header X-Webhook-Secret: <the secret> and a JSON body shaped like this:
{
"externalId": "12345",
"firstName": "Jordan",
"lastName": "Rivera",
"dateOfBirth": "1990-04-12",
"status": "Active in Treatment",
"notes": "Intake completed 8/1. Assigned to outpatient program.",
"sourceSystem": "Zapier"
}
lastName is the only required field. Send the same externalId again later (e.g. when status changes) and it updates that same record instead of creating a duplicate — omit it and every POST creates a new one. sourceSystem just labels where a record came from in the search results; use whatever name means something to your team.
Not built yet
This app doesn't listen for raw HL7v2 (MLLP/TCP) directly — most real deployments put an interface engine in front of the EHR for that anyway, and this webhook is what it (or Zapier) would call. If you specifically need native HL7v2 support with no interface engine in between, that's a separate, larger piece of work — let us know and we'll scope it.
Where each connection to the outside world stands
The ones marked "Built and working" are live right now — the panels further down this page are where you turn each one on, and nobody needs code or server access for any of it.
Outlook Calendar sync
Each rep connects their own Microsoft account from 🔒 Security → "Connect Microsoft account" — a real one-click sign-in, not a URL to paste anywhere. Once connected, their Weekly Route stops are written straight onto their real Outlook calendar automatically (created, updated, and removed as the route changes), using their own Microsoft Graph permission — nobody else can see or use that connection. Anyone who'd rather not connect an account can still use the subscribe-by-link .ics feed underneath it, which works with any calendar app.
● Built and working — needs a Microsoft app registration below firstSign-in with Microsoft (Entra ID)
Once the same Microsoft app registration is in place, a "Sign in with Microsoft" option appears right on the login screen. The first time someone uses it, it links automatically to whichever existing CRM account has a matching email — nobody is auto-created, and a person with no matching account is told to ask their manager rather than getting signed into the wrong place. Password login keeps working exactly as it does today either way.
● Built and working — same setup step as Outlook Calendar sync aboveSending Outlook email from the app
The "✉️ Email contact" button on any account sends for real, right from that rep's own connected Outlook account (same connection as Calendar sync above — same one-time setup), and logs it to that account's activity timeline automatically. It's deliberately send-only: nothing here ever reads, lists, or opens anything already in a mailbox. Anyone who hasn't connected an account yet still gets the mailto: fallback (drafts in their default mail app, logs it manually).
● Built and working — needs the same Microsoft app registration as Outlook Calendar sync aboveReading / auto-logging incoming email
Automatically matching emails a contact sends back to the right account, and logging them without a rep doing it by hand, is a separate, larger build on top of the connection above — it needs a broader mailbox-read permission and a way to match incoming messages to accounts, which is why it's deliberately not requested by the send-only setup above. Ask if you'd like this scoped next.
● Not built yet — outbound sending above doesn't need or request thisTeams notifications
Posts to a Teams channel automatically when a new follow-up task is created. A daily summary of overdue accounts is also available — point any scheduled task you already run (cron, Windows Task Scheduler, a scheduled Power Automate flow) at the URL further down this page, once a day. Setup is a Teams "Incoming Webhook" connector, added from inside Teams itself — no Microsoft app registration needed for this one.
● Built and working — paste a Teams webhook URL belowZapier / Power BI referral sync
As referral counts show up in your Power BI reports, a Zap (or a scheduled Power Automate flow) can POST them straight into this app instead of anyone re-typing them — same webhook pattern as EHR Connection, with its own independent secret. Further down this page has the URL, the secret, and the exact payload shape. Admin → Data Tools → Import referral counts is still there too, as a manual CSV stand-in for anyone not ready to automate this yet.
● Built and working — needs the Zap/flow set up on your end to actually send dataReferral Lookup (EHR intake data)
Search a patient by last name or date of birth and see where they are in your intake pipeline, what stage, and any notes — fed by a webhook a Zapier automation or your HL7 interface engine (Mirth, Rhapsody, etc.) POSTs to. The webhook receiver, database, and search UI are all built and working today; what's missing is the automation or interface-engine step on your end that actually sends data to it. See Admin → EHR Connection for the URL, secret, and exact payload to configure.
● Built and working — waiting on your EHR-side automation to send it dataSharePoint / Dataverse Storage
Today: account records, notes, and uploaded documents live in this app's own SQLite database on your server — real, shared, and persistent across the whole team, not per-browser. Moving that into your Microsoft 365 tenant (SharePoint lists or Dataverse) instead, so IT keeps normal governance and backup alongside your other M365 data, is a separate migration this doesn't do yet.
● Persists in this app's own database — not yet in your M365 tenantWhat it takes to turn the Microsoft ones on
One thing genuinely can't happen inside this app: your Microsoft 365 admin registers an app in the Entra admin center — Microsoft doesn't offer an API for that step. The panel right below shows the exact redirect URIs and permissions to use, and is where the resulting Tenant ID / Client ID / Client secret get entered — once. From that moment on, Outlook Calendar sync, sending Outlook email, and Sign-in with Microsoft are all live, and every rep connecting their own account is entirely self-serve from their own Security screen. Teams and the referral sync webhook need no Microsoft app at all — just paste a Teams webhook URL, or point Zapier/Power Automate at the referral sync URL, both further down this page.
Microsoft 365 (Outlook Calendar, Email & Sign-in)
This is the one setup step that genuinely can't happen inside this app: Microsoft doesn't offer an API for registering an app in your tenant. Your Microsoft 365 admin does that once in the Entra admin center, and pastes the three values it gives back into the fields below. From that moment on, every rep connects their own account from their own Security screen — nobody needs code or server access for that part, ever, including you.
What to enter in Entra ID
When registering the app: add both of these as Redirect URIs (type "Web"), and grant these delegated Microsoft Graph permissions — each rep's connection still only ever reaches their own calendar and sends as themselves, never anyone else's, and it's send-only on mail (no permission to read or list a mailbox is requested).
Teams notifications
Posts to a Teams channel when a new follow-up task is created, and (on a schedule you control) a summary of overdue accounts. This uses a Teams Incoming Webhook, not the Microsoft app above — a Team owner adds that connector from inside Teams itself (⋯ on a channel → Connectors → Incoming Webhook) and gives it a name/icon; paste the URL it generates below.
Automatic overdue-visit summary
This app doesn't run its own scheduler (nothing here does — see the EHR and referral-sync webhooks above and below). Point any scheduled task you already have — cron, Windows Task Scheduler, or a scheduled Power Automate flow — at this URL once a day and it'll post a Teams summary of every account currently overdue for a visit.
X-Webhook-Secret headerZapier / Power BI referral count sync
As referral counts show up in your Power BI reports, a Zap (or a scheduled Power Automate flow) can POST them here directly instead of anyone re-typing them — same webhook pattern as EHR Connection above, with its own independent secret.
X-Webhook-Secret headerPayload to POST
Header X-Webhook-Secret: <the secret>, JSON body — either one record, or {"records":[...]} for a batch:
{
"facilityId": "fac12",
"date": "2026-08-01",
"insuranceType": "Medicaid",
"source": "Power BI sync",
"count": 4
}
Don't have the internal facilityId? Send facilityName instead — it matches on an exact (case-insensitive) account name. count is required; everything else is optional.
Backup & version — v
Everything you enter here — accounts, users, regions, referral budgets, marketing materials, referral lookup records — saves to this app's own database on your server as you go, shared by everyone on the team from any device, not just this browser. Updating the app to a newer version later doesn't touch that database at all (see your README), so there's nothing you need to do day-to-day. Use the backup below before a big change, to move data to a different server, or just for a safety copy on a schedule.