The problem

The product already handled quotes, data agreements, onboarding packs and invoices well, but it had no memory of relationships. The same person could appear as three unrelated records. Deals lived in my head, nothing answered "what happened with this trust, in order?", and the portal's engagement data never turned into a warning that a customer was going quiet.

What I built

A CRM inside the product rather than bought in, because the product's own data is exactly what an off-the-shelf CRM cannot see.

It has accounts, contacts, deals on a pipeline board, an append-only activity timeline and tasks. One page per account brings together the timeline, contacts, deals, finance documents, portal engagement, health and follow-ups. A health score is recalculated every night from real signals, including logins, tool use, audit progress, improvement plan uploads, payment status and days to renewal, and a daily nudge lists the tasks due and the deals that have gone quiet.

It grew in phases: first the core records and a one-off backfill of existing history; then an oversight dashboard with live and test business kept apart; then customer control, with owned follow-ups and reviewed school payments; then free-tool usage tied to recorded consent, withdrawals and do-not-contact. The social posting plan now lives inside it too.

The Social tab in the CRM: a two-week calendar of X and LinkedIn posts, each with a thumbnail, time and Approved or Draft status, and a theme on each Monday. (opens the full-size screenshot in a new tab)
The Social tab, where the posting plan now lives inside the CRM.

Design decisions

The constraint was zero loss. Every database change was additive, the backfill was read-only on its sources and safe to run again, and nothing was switched off. Activity is captured after each business step succeeds, whether a quote sent, an agreement signed or an invoice paid, and a logging failure can never fail or slow that step. Removing the CRM would leave the original system exactly as it was. The CRM tells activity apart from real adoption, and a signed document apart from verified revenue, because conflating those is how small companies fool themselves.

What you can see

The pipeline board, the account page and the oversight dashboard, all inside the SGAF admin.

The result

"What is the state of this school?" is answered by one page. Every commercial document appears on a timeline, and pipeline value and renewal exposure are visible numbers rather than guesses.