EHR CRM Integration (2026): What to Sync, Patient Matching, HIPAA and Architecture
CTO & Co-Founder
CTO & Co-Founder at Nirmitee.io. Architects healthcare integrations across FHIR, SMART on FHIR, ABDM and NHCX, writing from production experience taking hospital software from sandbox to go-live.

EHR CRM integration connects your electronic health record (EHR) to your customer relationship management (CRM) system, so the CRM knows who became a patient, who booked, who showed up and who needs follow-up, without staff typing it in twice. Done well, it moves only the data each side needs, matches patients carefully, and keeps clinical detail in the EHR where it belongs.
Updated October 2026. This guide is for US providers, specialty groups and digital health companies connecting an EHR such as Epic, Oracle Health, athenahealth or eClinicalWorks to a CRM such as Salesforce Health Cloud or HubSpot. It covers what belongs where, patient identity matching, scheduling and referral sync, consent and HIPAA, the three sync patterns, and how to handle failures. For the EHR side of the build, see our EHR integration services.
https://res.cloudinary.com/dahyfknrf/image/upload/f_auto,q_auto/v1791986436/ehr_crm_integration_guide_4fd3e94f54.webp
Why integrate an EHR with a CRM?
Teams integrate an EHR with a CRM so that marketing, intake and patient outreach work from real visit data instead of guesses. The common goals are:
- Close the referral loop. See which referrals turned into booked and completed visits, by referral source.
- Measure what marketing produces. Tie a campaign or a lead to a first appointment, not just a form fill.
- Cut no-shows and gaps in care. Trigger reminders and recall from real appointment and visit status.
- Stop double entry. Intake staff stop retyping demographics from one system into the other.
- Give the contact center one view. Agents see upcoming appointments and the last visit date while on the call.
What belongs in the CRM and what stays in the EHR?
The EHR stays the legal medical record and the owner of clinical data. The CRM owns the relationship: leads, referral sources, campaigns, communication preferences and tasks. Sync the minimum the CRM needs to do its job, and pick one owner for each field.
| Data | Owner | Sync to the other side? |
|---|---|---|
| Name, date of birth, phone, email, address | EHR after registration; CRM before it | Yes, both ways with rules on which wins |
| EHR patient ID (MRN) | EHR | Yes, to the CRM, as the match key |
| Appointment date, type, status (booked, arrived, no-show, cancelled) | EHR | Yes, to the CRM |
| Referral source and referring provider | CRM | Often, to the EHR referral record |
| Lead source, campaign, marketing consent | CRM | No |
| Diagnoses, medications, results, notes | EHR | Usually no. If a care program needs a flag, send the flag, not the record |
| Communication preferences and opt-outs | CRM, with EHR portal settings | Yes, so no system contacts a patient who opted out |
How do you match patients between the EHR and the CRM?
Match on the EHR patient ID once you have it, and use a careful rule before you do. Most integration bugs that reach patients are matching bugs: two people merged into one contact, or one person split into two.
- Store the EHR patient ID on the CRM contact as soon as the patient registers. From then on, match on that ID only.
- Before registration, match a lead to a patient on several fields together: name, date of birth, and phone or email. Never on name alone.
- Send unsure matches to a review queue. A person decides. Do not auto-merge.
- Handle EHR merges. When the EHR merges two patient records (an HL7 A40 merge event, for example), update the CRM so it follows the surviving ID.
- Keep family members apart. Shared phones and emails are common; they are not proof of identity.
How do scheduling and referral sync work?
Scheduling sync usually flows from the EHR to the CRM, because the EHR or its practice management system owns the schedule. Booking from the CRM back into the EHR is possible but depends on what the EHR vendor allows.
- EHR to CRM: appointment booked, rescheduled, cancelled, arrived, no-show. These arrive as HL7 v2 SIU scheduling messages or by reading the FHIR Appointment resource.
- CRM to EHR: a booking request or a referral. Many EHRs accept these through a scheduling API, a referral interface or a work queue rather than a direct write into the schedule. Check your vendor's API catalog before you design around it.
- Referral loop: the CRM records who referred the patient; the EHR records the visit; the integration links the two so you can report referral to completed visit.
Three ways to connect an EHR and a CRM
https://res.cloudinary.com/dahyfknrf/image/upload/f_auto,q_auto/v1791986438/ehr_crm_integration_sync_patterns_cb04503c3c.webp
| Pattern | How it works | Good for | Watch for |
|---|---|---|---|
| HL7 v2 event feed | The EHR sends ADT (patient registration and visits) and SIU (scheduling) messages through an interface engine, which maps them into CRM API calls | Near real-time status in hospitals and large groups | Needs an interface engine and the hospital's interface team |
| FHIR API sync | An integration service reads Patient, Appointment and Encounter through the EHR's FHIR API on a schedule or on notification | Ambulatory EHRs with good FHIR APIs; read-mostly use | Write-back is limited; rate limits; per-site approval |
| Managed connector or iPaaS | A prebuilt connector or platform such as Redox carries the data and calls the CRM | Fast start across several EHRs | BAA, cost per message, field coverage |
Most production builds combine an event feed for status changes with FHIR reads for details. For the trade-offs between engines, managed platforms and direct APIs, see how to choose a healthcare integration platform.
What does the sync look like end to end?
https://res.cloudinary.com/dahyfknrf/image/upload/f_auto,q_auto/v1791986441/ehr_crm_integration_sync_flowchart_8c27ce33b3.webp
One event, such as a patient arriving for a visit, moves like this: the EHR emits the event, the integration layer maps it and drops fields the CRM does not need, the matching step finds the contact or sends an unsure match to review, and the CRM write is retried on failure and logged for audit.
Salesforce Health Cloud, HubSpot or another CRM?
The CRM choice changes how much of the integration you build yourself. These are the questions to ask, not a ranking.
| Question | Salesforce Health Cloud | HubSpot | Healthcare-specific CRMs |
|---|---|---|---|
| Healthcare data model built in? | Yes: patient, care team, care plan objects, with FHIR-aligned data structures | No; you model patients as contacts with custom properties | Usually yes |
| BAA available? | Yes, for covered services | Enterprise plans with Sensitive Data turned on; some features excluded | Usually; confirm per vendor |
| Prebuilt EHR connectors? | Through MuleSoft and partners; still needs mapping per EHR | Few; most teams use an iPaaS or custom service | Often for a short list of EHRs |
| Best fit | Health systems and payers with Salesforce skills in house | Practices and digital health companies focused on growth marketing | Specialty groups that want a ready-made workflow |
Whichever you pick, the EHR side is the same work: the route into the EHR, patient matching and the consent rules do not change with the CRM.
What drives the cost of an EHR CRM integration?
The cost depends more on the EHR side than on the CRM. As a planning range, an EHR integration typically falls between $15,000 and $50,000, confirmed as a fixed price after discovery. These factors move it up or down:
- Number of EHRs. Each EHR, and often each health system running it, adds its own access approval and mapping.
- Direction. Read-only sync into the CRM costs less than writing bookings or referrals back into the EHR.
- Route. An existing HL7 feed or connector is cheaper than a new interface request in a hospital queue.
- Matching and consent rules. Complex families, merges and sensitive-data rules add design and testing time.
- Run costs. Connector fees per message or per connection, hosting, and the time someone spends on the review queue.
Consent and HIPAA in an EHR CRM integration
Once a CRM holds data about a patient's care, such as appointments and visit status, it holds protected health information (PHI). That brings it under HIPAA, and it changes what you can do with marketing.
- Sign a business associate agreement (BAA) with the CRM vendor and any connector vendor. Salesforce signs a BAA for its covered services, including Health Cloud. HubSpot offers a BAA as part of its Sensitive Data Terms on Enterprise plans with the Sensitive Data setting turned on; some HubSpot features are not covered. Check the vendor's current covered-services list before you sync PHI into a feature.
- Treat marketing separately. Under HIPAA, using PHI for marketing needs the patient's written authorization, with narrow exceptions. Communications about your own treatment and services are generally not marketing unless a third party pays you to send them. Have your privacy officer review campaign rules.
- Apply minimum necessary. Filter clinical detail out in the integration layer, not in the CRM.
- Respect opt-outs everywhere. An opt-out in one system must stop messages from both.
- Watch sensitive categories. Behavioral health, substance use disorder records (42 CFR Part 2), reproductive health and minors' records have extra rules. Keep them out of the CRM unless counsel approves.
- Log access. Keep an audit trail of what the integration read and wrote.
For a comparison of Salesforce Health Cloud and Epic's own tools, see Salesforce Health Cloud vs Epic.
How do you handle failures?
Every sync fails sometimes. The CRM API is down, a field is too long, a contact is locked. Plan for it from day one:
| Failure | What to do |
|---|---|
| CRM or EHR API unavailable | Queue the message and retry with back-off |
| Message keeps failing | Move it to a dead-letter queue and alert a named owner |
| Same event arrives twice | Make writes idempotent: key them on the EHR event or appointment ID |
| Events arrive out of order | Compare timestamps and keep the newest status |
| Unsure patient match | Send to the review queue; never guess |
| Silent drift between systems | Run a nightly reconciliation of appointment counts and statuses |
EHR CRM integration checklist
- Write down the use cases and the reports you need.
- List the fields per use case and pick one owner per field.
- Confirm the EHR route: HL7 feed, FHIR API or connector, and what write-back the vendor allows.
- Sign BAAs with the CRM and connector vendors.
- Agree the patient matching rule and the review queue owner.
- Set consent and marketing rules with your privacy officer.
- Build with retries, dead-letter alerts and audit logging.
- Test with real message variety: merges, cancellations, duplicates.
- Reconcile nightly for the first weeks after go-live.
Build your EHR CRM integration with us
We build EHR integrations for providers and digital health companies, including the CRM side, with a BAA and a fixed price agreed after a short discovery. Talk to our EHR integration team.
Ready to scale?
Talk to our healthcare engineering team about building, integrating, and shipping faster.
Frequently Asked Questions
What is EHR CRM integration?
What data should sync from the EHR to the CRM?
Is a CRM covered by HIPAA once it holds patient data?
Does HubSpot sign a BAA?
How do you match patients between an EHR and a CRM?
Can a CRM book appointments into the EHR?
Should I use HL7, FHIR or a connector?
How much does EHR CRM integration cost?


