Skip to content
v1.0 is live — HIPAA-aware, BAA-ready

The CRM built for follow-ups that actually happen.

ContactFollowUp is a healthcare-grade CRM that ensures every patient and prospect gets the right follow-up at the right time — at half the cost of HubSpot. Practice management and a patient portal are included, on the same encrypt-at-rest, audit-everything foundation.

No credit card. Full feature access. Migrate from HubSpot, Klara, NexHealth, or Tebra in a week.

contactfollowup.com/app/contacts/c_a1b2…

Sarah Chen

Patient · since 2024

Emailsarah.chen@…
Phone(415) 555-0142
DOB1989-03-22
OwnerDr. M. Patel
PatientVIPAllergy

Recent activity

  • EmailLab results sent · opened
  • ApptAnnual physical · completed
  • NotePatient declined statin
  • TaskRefill follow-up · due Fri

Lead score

72 / 100 · Engaged

Trusted by independent practices across the United States

Pinecrest OB/GYNCedar Mountain DermRiverside FamilyLakeshore PTWestside PediatricsNorthgate Cardiology

Three surfaces. One system.

One foundation for the whole front office.

Stop paying three vendors. ContactFollowUp is your CRM, your practice management, and your patient portal — sharing one contact record, one audit log, one set of encryption keys.

Pillar 1

CRM

Everything HubSpot Sales Hub Enterprise gives you — contacts, companies, deals, sequences, workflows, lead scoring, forecasting, lists, custom objects — at half the seat price.

  • Multiple pipelines per object
  • Workflow automation builder
  • Lead scoring + forecasting
  • Lists, teams, custom properties

Pillar 2

Practice management

Providers, availability rules, appointment types, scheduling, intake forms, check-in, waitlist, recall, and follow-up — everything Klara, NexHealth, and Tebra bundle.

  • Provider availability + scheduling
  • Encrypted intake forms
  • Self check-in (±30 min)
  • Waitlist + recall automation

Pillar 3

Patient portal

Your patients get a HIPAA-grade portal — appointments, self-scheduling, intake forms, secure messaging, data export, and self check-in — with no per-patient fees.

  • Self-scheduling + 2-tap rebook
  • Encrypted secure messaging
  • Patient data export (HMAC-signed)
  • Self check-in within 30 min of appt

Feature walkthrough

Every surface, designed for clinical workflow.

Ten things you can do on day one. Every screen built around a clinical reality, not a sales demo.

Deals & pipelines

Multiple pipelines. Drag-to-reorder stages. One default per object.

  • Per-object pipelines

    Deals and tickets each get their own — a sales pipeline doesn't have to share stages with support.

  • Drag stages without breaking history

    Reorder live; all existing deals keep their stage assignment and audit history.

  • Default-pipeline invariant

    Exactly one default per object type, enforced in a transaction. No null states.

contactfollowup.com/app/deals
New4

Dr. Patel · Allergy intake

$2,400

Riverside Family Clinic

$8,900

Qualified3

Westside Pediatrics

$12,200

Pinecrest OB/GYN

$6,500

Proposal2

Lakeshore PT — annual

$24,000

Won1

Cedar Mountain Derm

$18,750

Scheduling

The week grid your front desk already imagines.

  • Provider availability layers

    RECURRING weekly rules, ONE-OFF overrides, BLOCKED time — merged automatically.

  • Google + Microsoft calendar sync

    Connect a personal calendar; busy windows are subtracted and new bookings write back.

  • Telehealth links auto-provisioned

    Meet for Google, Teams for Microsoft. The link is in the appointment record.

contactfollowup.com/app/schedule
Mon
Tue
Wed
Thu
Fri
8a
10a
12p
2p
4p
Annual physical
Follow-up
Telehealth
New patient
Lab review
6mo check
Procedure
Telehealth

Contact record

A contact card that respects what the data actually is.

  • Every PHI field encrypted at rest

    Email, phone, DOB, address, notes — AES-256-GCM in *_enc columns. A raw DB dump shows ciphertext.

  • Blind-index search on email + phone

    Deterministic HMAC indexes so search works without ever decrypting the column.

  • Per-record sharing

    AGENTs see what they own plus what's shared with them. WRITE shares grant edit access.

contactfollowup.com/app/contacts/c_a1b2…

Sarah Chen

Patient · since 2024

Emailsarah.chen@…
Phone(415) 555-0142
DOB1989-03-22
OwnerDr. M. Patel
PatientVIPAllergy

Recent activity

  • EmailLab results sent · opened
  • ApptAnnual physical · completed
  • NotePatient declined statin
  • TaskRefill follow-up · due Fri

Lead score

72 / 100 · Engaged

Secure messaging

HIPAA-grade patient ↔ staff conversations.

  • Subjects and bodies encrypted

    Even thread titles like 're: A1C result' are PHI. They're encrypted too.

  • Per-side unread counters

    Patients only see what they own. Staff routes by inbox, not by SMS thread.

  • Audit-logged delivery

    Every send, read, and reply emits an immutable audit row keyed to the actor.

contactfollowup.com/app/messages

Sarah Chen

re: lab results …

Aaron Diaz

re: lab results …

Jen Park

re: lab results …

Your A1C dropped to 6.3. Let's book a 3-month follow-up.
Wonderful news. Friday afternoon works.
Booked — Fri 3:30 with Dr. Patel. Encrypted thread, audit logged.
End-to-end audit log · subject + body encrypted at rest

Workflows

Automation that reads like a clinical pathway.

  • TRIGGER · CONDITION · ACTION · DELAY · GOAL

    The five primitives you've always wanted. PHI columns excluded as conditions.

  • Drag-reorder steps

    The graph is a flat sequence with optional branches — easy to audit, easy to change.

  • Minute-cadence tick

    A cron tick advances every due enrollment by one step. No queue infra needed.

contactfollowup.com/app/workflows/wf_new-patient
TRIGGER

When contact lifecycle changes to LEAD

CONDITION

If source = 'web form'

ACTION

Enroll in 'Welcome' sequence

DELAY

Wait 2 business days

ACTION

Create task for owner: 'Call & qualify'

Intake forms

Forms that save themselves and expire on schedule.

  • Whole-record AES-GCM

    Submissions are encrypted as one payload — fields plus answers. One ciphertext blob, one decrypt key.

  • Save & resume

    DRAFT status lets patients pause; auto-saved on every blur. No lost progress.

  • Expiration aware

    If the latest submission is older than expirationDays, the patient is re-prompted before their visit.

contactfollowup.com/portal/intake/new-patient-history

New patient history

Saved 3 min ago · auto-resume

Reason for visit

Current medications

Allergies

PollenPenicillinNone
Whole submission AES-256-GCM encryptedSave & submit

Forecast & reports

Best-case, commit, weighted — at a glance.

  • Per-pipeline rollups

    Best-case, commit (≥70% probability), weighted, and closed-in-period.

  • Snapshots for trending

    Persisted ForecastSnapshot rows so you can plot how the forecast moved week over week.

  • Tabular numerals everywhere

    Dollars line up. Counts line up. Dates line up. Built into the type stack.

contactfollowup.com/app/forecast

Best case

$324k

Commit

$218k

Weighted

$162k

Monthly closed-won — 8-month trend

Audit log

Every write recorded. Forever.

  • Append-only at the service layer

    Every service write emits an audit row with actor, action, target, and JSON diff. No service path updates or deletes.

  • Actor kind tracked

    user · agent · system. So when an automation does something, you know which one.

  • Exportable

    CSV or JSON, scoped to a date range. Hand to your HIPAA Security Officer at audit time.

contactfollowup.com/app/audit
ActorActionTargetTime
dr.patelcontact.updateSarah Chen11:42a
systemappointment.completedAaron Diaz11:18a
agent · followupsequence.enrollJen Park10:55a
j.kimsecure-message.sendSarah Chen10:40a
dr.patelcontact.createMark Davies10:12a

Append-only · 7-year retention · exportable

Sequences

Multi-step outreach that doesn't feel like spam.

  • Email · SMS · Task · Wait

    The four steps you actually use. Tracking pixels and link-rewrites baked in.

  • Per-sequence stats

    Enrolled, opened, replied. Counts roll up to the contact for lead scoring.

  • {{contact.firstName}} interpolation

    Handlebars-style placeholders. PHI-aware — never leaks a decrypted field into a sender's log.

contactfollowup.com/app/sequences/welcome

Welcome sequence · 4 steps

Email

Welcome to the practice — what to expect

Day 0
Wait

Wait 2 days

Day 2
SMS

Quick reminder about your intake form

Day 2
Email

Tips before your first visit

Day 5

142

Enrolled

64%

Open rate

18

Replies

Public booking

Calendly-class booking pages — yours, on your domain.

  • Auto-create contact by email

    First-time bookers become Contacts on the spot. No duplicate-merge cleanup later.

  • Buffers + min-notice

    Per-link buffers before and after. Patients can't book within your minimum-notice window.

  • Google Calendar / M365 busy

    Connected calendars subtract busy windows before the slot list ever renders.

contactfollowup.com/book/dr-patel

Book with Dr. Patel

30 min · in-person or telehealth

8:008:309:009:3010:0010:3011:0011:301:001:302:002:30

Busy windows from connected Google Calendar removed automatically.

Comparison

ContactFollowUp vs HubSpot Sales Hub

Same CRM surface — pipelines, sequences, workflows, scoring, forecasting — minus the per-contact marketing meter and plus a clinical foundation. At roughly half the seat price.

CapabilityHubSpotContactFollowUpYou
Contacts, deals, pipelines
Sequences + workflows
Lead scoring + forecastingEnterprise onlyPro and up
Custom objectsEnterprise onlyEnterprise
Field-level PHI encryption (AES-256-GCM)
Patient portal (intake, secure msg, self check-in)
Provider availability + scheduling
EHR sync (Athena, Hint)Enterprise
BAA-readyLimited
Audit log immutabilityAdd-onDefault
Per-seat price (Pro tier)$90/seat/mo$75/seat/mo
Per-seat price (Enterprise tier)$150/seat/mo$75/seat/mo + $450/mo
Marketing automation$890/mo (Pro)$445/mo add-on

HubSpot pricing per their public pricing pages (mid-2026). Equivalent ContactFollowUp tiers shown.

Comparison

ContactFollowUp vs Klara, NexHealth, Tebra

Same patient-portal and practice-management surface — plus a real CRM you can run sales and marketing on. No per-patient meter.

CapabilityKlara / NexHealth / TebraContactFollowUpYou
Patient ↔ staff secure messaging
Self-scheduling + 2-tap rebook
Encrypted intake forms
Self check-in
Recall / re-engagement campaignsLimited
Real CRM (deals, pipelines, sequences)
Workflow / automation builderBolt-on
Custom objects + propertiesEnterprise
Forecasting + lead scoring
EHR sync (Athena, Hint)Enterprise
Per-patient feeYesNo
BAA + AES-256-GCM at rest
Per-user price (typical)$199+/user/mo$75/user/mo

Competitor feature surface and pricing inferred from public marketing materials and customer-reported quotes; current as of mid-2026.

Security posture

Built for the way PHI actually moves through a clinic.

ContactFollowUp does the application-layer work HIPAA requires: encryption at rest, immutable audit logs, role-based access, and a service-account model for automation. The deployment-side work — BAA contracts, customer-managed keys, network restrictions — is documented in plain English in our security guide.

AES-256-GCMHIPAA-awareSOC 2 pathBAA-ready

HIPAA-aware by design

Every PHI field encrypted, every write audit-logged. The architecture assumes the database will leak — and stays useless if it does.

AES-256-GCM at rest

Field-level ciphertext in *_enc columns. Customer-managed CRM_DATA_KEY in Key Vault or Secrets Manager — never in plain env files.

Immutable audit log

Every service write emits an AuditLog row. No service path updates or deletes one. Append-only at the application layer.

RBAC + per-record sharing

Roles (Admin / Manager / Agent / Readonly) plus ContactShare records. AGENTs see what they own plus what's shared with them.

MFA + OIDC SSO

TOTP with recovery codes. Microsoft and Google OIDC sign-in. Patient portal runs on a separate session table and cookie.

BAA-ready

Subprocessor inventory and BAA management surface built in. Anthropic, AWS, Microsoft, Postmark, Twilio, Athena, Hint, Stripe.

Pricing

Half the seat price. Twice the foundation.

Three tiers, transparent pricing, no per-patient meter. Marketing automation as an optional $445/mo add-on (vs HubSpot's $890/mo Pro).

Starter

Solo practitioners and 1–2 person clinics.

$45per user / month
  • Basic CRM (contacts, deals, sequences)
  • Single pipeline
  • Basic email + forms
  • Up to 1,000 contacts
ProMost popular

Growing practices — Sales Hub Pro at half the price.

$75per user / month
  • Multiple pipelines + workflows
  • Meeting scheduling, templates, reports
  • Custom properties (15)
  • Up to 10,000 contacts
Enterprise

Multi-location practices.

$75per user / month · + $450 platform fee
  • Unlimited custom objects + workflows
  • Lead scoring + forecasting + hierarchical teams
  • EHR integrations (Athena + Hint)
  • SSO, field-level permissions, unlimited contacts

Built by clinicians and engineers

Designed where the work happens.

ContactFollowUp is built by Northern Software Consulting — engineers paired with practicing clinicians and administrators. Every screen has a clinical reviewer. Every PHI path has an audit reviewer.

We replaced HubSpot, Klara, and a spreadsheet. The patient-record-is-also-the-deal model finally matches how we actually work.

Dr. Maya Patel

Westside Pediatrics · Founding partner

The audit log alone was worth the move. Our HIPAA Security Officer used to live in a CSV. Now she lives in /app/audit.

Jen Kim

Cedar Mountain Dermatology · Practice administrator

Half the seat price of HubSpot, and the encryption is real — not a checkbox. That's the only sentence I needed to hear.

Aaron Diaz

Lakeshore Physical Therapy · Director of operations

Frequently asked

Questions, answered.

A handful of the things prospects ask us most. The full FAQ has 30+ more — migrations, EHR integrations, mobile, API, support.

How long does migration from HubSpot take?

We've migrated a 4,000-contact practice in a week. Contacts, deals, sequences, custom properties, and historical activity all import. The audit log is preserved with the original timestamps.

Do you support Klara, NexHealth, or Tebra migrations?

Yes. We import patients, providers, availability, intake forms, and appointment history. Secure-message threads come over with their PHI re-encrypted on our keys.

Is the encryption real or marketing?

Real. Every PHI field on Contact, Activity, Appointment, Insurance, and IntakeSubmission is AES-256-GCM in *_enc columns. A raw database dump is ciphertext. We've open-published the encryptor implementation in src/infra/encryptor.ts.

What about a BAA?

We sign a BAA with every covered customer. ContactFollowUp acts as a data processor; PHI is encrypted at rest and in transit. The deployment is responsible for downstream subprocessor BAAs — we surface a tenant-side BAA-management UI to track them.

Stop letting follow-ups slip.

Move every contact, deal, appointment, and audit record onto one HIPAA-aware system. Free for 14 days, no credit card.

No credit card. Cancel anytime. 14 days, full access.