Chrysalis Health logo
Chrysalis Health
Community Liaison CRM Β· Where people come first.

Community Liaison CRM

πŸ“Š Real sample, not the full dataset: seeded from your actual 2026 Florida clinic/community outreach tracker and 2026/2027 School Outreach Campaign tracker β€” 5 territories (Broward, Central Florida, Central Gulf Coast, Panhandle West, Tampa Bay), ~70 of your 10,000+ tracked contacts and schools, with real org names, counties, contacts, and notes. Insurance type isn't tracked in your source sheets, so it's estimated by referral-source type β€” flagged "(est.)" everywhere it appears, worth a quick review.

Dashboard

Snapshot of visit activity, follow-ups, and payer mix across your visible accounts.

Ask the CRM

πŸ’¬ This is a rules-based assistant β€” it matches your question against the data already loaded on this page (accounts, visits, tasks, touches, referrals) and answers instantly, with no external calls. A full AI-powered assistant that can reason over open-ended questions and your live Microsoft 365 data would need backend and API wiring in a production build β€” happy to help spec that next.

Accounts by county

Primary insurance mix (estimated)

Leaderboard β€” touches by CL Rep

Weekly activity goal

Counts every visit and email logged in this app against each rep's weekly goal, set in Admin β†’ Users (prorated for periods longer than a week). Goes up in real time as reps log activity here.

Referral budget vs. received β€”

πŸ”Œ "Received" totals your logged referral entries (still sample data pending HL7). Budgets are illustrative starting targets β€” set your real numbers in Admin β†’ Referral Budgets.

Year over year β€” monthly touches

2026 2025
Built from your real 2025 and 2026 outreach logs for these 5 territories. Gaps mean no rep was reporting in that territory that month (e.g. Broward's 2026 CL Rep started in June); months after today have no data yet. Broward's 2025 line is the territory's prior rep, not Carolyn Hudson herself β€” a same-rep comparison isn't possible until she has a full year on file.

Referral volume (sample)

πŸ”Œ Referral counts aren't in your source trackers today. The entries below are a small illustrative sample so you can see how this will look β€” once your HL7 interface feeds referrals into this system, insurance type, date, and source will populate here automatically.

Visits due in the next 10 days

FacilityCountyAssigned RepLast VisitNext VisitStatus

Accounts

Referral sources, partner organizations, and schools tracked by county, state, and assigned Community Liaison Representative.

Quick views:

πŸ“ View on map
Additional contacts
      Drop a file here or choose one β€” stored on this account's record.
      πŸ”Œ Fed via HL7 once connected. Today these are logged manually below (or via CSV import β€” see Admin); once your HL7 interface or Power BI feed is wired up, referral events for this account will land here automatically with insurance type, date, and referral source already filled in. For patient-level intake lookups by name or DOB, see the new Referral Lookup tab.

      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.

      Enter either field, or both to narrow results. Nothing searches until you click Search.

      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

      Touch = a real, in-person conversation with a decision-maker, office manager, or referral coordinator about referrals or services. Attempt = a locked door, a closed office, or materials dropped with no one to talk to β€” logged, but it doesn't count toward the floor. Non-negotiable minimum: 45 touches/week across 3–4 field days (15+ touches/day) β€” Friday is a protected non-field office day. Stretch target: 75+ touches/week.

      By CL rep

      Marketing Materials

      Upload brochures, one-pagers, and program flyers here so any CL rep can download them or send them as an email attachment.

      Upload a document β€” stored in this browser session/page only (see note below).
      πŸ“ Prototype storage note: uploaded files live in this page's memory (and this browser's local storage so they survive a reload here), not a shared server β€” in production these would live in SharePoint so every rep on the team sees the same library instantly. Materials uploaded on one device won't appear on another until this is wired to SharePoint/Dataverse.

      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.

      Webhook URL
      β€”
      Shared secret β€” send it as an X-Webhook-Secret header
      β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’β€’
      Treat this like a password β€” anyone with it can post records here. Regenerating breaks any automation still using the old one until you update it there too.

      Payload 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.

      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.

      Restoring replaces everything currently in this browser with what's in the backup file β€” there's no undo, so download a fresh backup first if you're not sure.

      Integrations

      This prototype uses local sample data. Here's how each connection will work once we move to a production build.

      βœ‰οΈ

      Outlook Email & Calendar Sync

      Today: the "βœ‰οΈ Email" button on any account opens your default mail app (Outlook, if that's set as default) with the message drafted, and logs it to that account's activity timeline manually. Once connected via Microsoft Graph: every email you send and receive from a contact syncs to that account's timeline automatically β€” both directions, no manual logging β€” and visits/next-visit dates create Outlook calendar holds. Requires a Microsoft Entra ID app registration and each rep granting Mail.Read/Mail.Send/Calendars.ReadWrite permission.

      ● Manual compose works now β€” auto two-way sync needs setup
      πŸ“

      SharePoint / 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 tenant
      πŸ”

      Sign-in with Microsoft (Entra ID)

      Today: reps and managers log into this app with a password set up here (hashed, server-checked, session-based). Signing in with their existing Microsoft work account instead β€” and enforcing territory-based access from security groups already set up in your tenant β€” is a future SSO integration, not yet wired up.

      ● Real login works now β€” not yet federated to Entra ID
      πŸ“Ž

      Teams notifications

      Optional: post a Teams message to a rep's channel when a visit becomes overdue or a follow-up task is assigned.

      ● Not connected β€” prototype mode
      πŸ”—

      Zapier / Power BI referral sync

      The goal: as referrals show up in your Power BI reports, a Zap pushes the new counts into this app automatically, one direction only, so each CL rep sees their up-to-date monthly referral count here without anyone re-typing it. This app now has a real server and database β€” the same kind of webhook receiver the new Referral Lookup feature uses (see Admin β†’ EHR Connection) β€” so this specific sync is a small, buildable follow-up whenever you want it, not blocked on anything anymore. It just hasn't been built yet. In the meantime, Admin β†’ Data Tools β†’ Import referral counts is a manual stand-in: export the same numbers from Power BI as a CSV and bring them in here in a couple of clicks.

      ● Not built yet β€” the backend to support it already exists; manual CSV import available today
      🩺

      Referral 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 data

      What it takes to turn this on

      Register an app in Azure AD / Entra admin center, grant Microsoft Graph permissions (Mail.Send, Calendars.ReadWrite, Sites.ReadWrite.All or Dataverse equivalent), pick a real hosting target for the app (Azure App Service, or embed as a Power Apps / SharePoint page), stand up the small API endpoint Zapier would call for the referral sync, and decide who the "Manager" security group is for cross-territory visibility. Happy to help spec any of these next.