CRM and outreach

Outreach that knows who was already called

Event and patient outreach tracking joined to the real call log, so nobody gets called twice and nobody gets forgotten.

events-outreachin production
Client
Diagnostic imaging practice
Period
2026
Stack
Next.js, PostgreSQL, Telephony API, Zero-trust tunnel

The problem

Outreach lists lived in spreadsheets, call history lived in the phone system, and the two never met. Coordinators guessed at who had been reached.

What I built

A private portal with events, contacts and outreach status, behind identity-aware access, joined to the telephony call log on the last ten digits of the phone number so matching survives formatting differences. Deployed to a hardened host with a real database, not a demo mode.

Result

Calls, reached count and last contact date sit next to every contact, filled from the phone system rather than from memory.

Next.jsPostgreSQLTelephony APIZero-trust tunnel
All projects