EBNI
Work02

Sector — B2B SaaS · HealthYear — 2025Role — CRM · Custom Web AppStack — HubSpot · Next.js · Postgres · Stripe · Segment

The Brief

Halcyon sells a clinical-grade telehealth platform to mid-sized providers. Sales lived in HubSpot, billing lived in Stripe, customer data lived in five places, and nobody could answer the question "what is this account worth?"

Our job was to put the customer on one page and keep it there.

Ch. 01

One customer, one record

We rebuilt HubSpot around a clean object model — accounts, contracts, clinicians, locations — and made the deal pipeline reflect how Halcyon actually sells. Marketing automations were rewritten to respect the new shape.

A nightly Stripe sync writes MRR, churn risk, and contract value back onto the account. The CSM dashboard now opens to a single number that everyone trusts.

Ch. 02

A clinician dashboard, finally

We shipped a small Next.js app that sits in front of HubSpot for the clinical ops team. Search, filter, escalate, note — the things they did in five tabs now live in one screen, with audit logs they can hand to compliance.

Ch. 03

Stop doing it by hand

Onboarding, renewals, and overage billing used to be a Notion checklist. They're now workflows: webhooks fire when a contract is signed, the account provisions itself, billing schedules update, and the rep gets a Slack ping when something needs a human.

Our ops team got back about a day and a half a week. We didn't believe the number until we ran it twice.
Daniel Park, COO — Halcyon Health
In numbers
−70%manual ops touches per renewal
1source of truth for customer data
5 modiscovery to production
Credits
  • EngineeringEbni
  • HubSpotEbni
  • Clinical OpsHalcyon Health
Next project — 03

Northwind Logistics