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