michaelcaligner.run○ running
Website
App
CRM
AI
Connecting the front door000%

Michael Caligner

Click to skip
← All work

SERVPRO franchise group · Client follow-up

Who to call today, already worked out.

Key account managers get a call list every morning, built from open jobs and QuickBooks data. Each call they log counts on their scorecard.

Client
A SERVPRO franchise group (freelance)
Role
Freelance Full Stack Developer & AI Automation Developer
Timeline
May 2026 to now
Stack
React, Supabase, Google BigQuery, QuickBooks data

Command Center

Customer names, job numbers and dollar figures are blurred.

The problem

Account managers had to piece together who to call from job statuses and AR reports kept in different places. The calls happened, but they didn’t always get written down.

What I set up and built

01

Command Center

Each morning, open jobs turn into lists: new jobs to welcome, active jobs to check in on, and finished jobs that haven’t been billed yet.

02

Logging a call

Pick what happened, add a note, save. The job moves to Handled and the call shows up in Records and on the scorecard. A payment can’t close a job without proof attached.

03

AR and exceptions

Managers see the AR balance and how much of it is past 60 days, pulled from QuickBooks. When a KAM asks for an exception on an audit, the manager approves or denies it right there.

04

Connected and launched

Open jobs come from Google BigQuery and AR from QuickBooks. I tested the app and launched it inside the portal, so account managers sign in the same way they do for everything else.

Handover and adoption

  • Nobody builds call lists by hand anymore.
  • Every call is tied to a job and to the person who made it.
  • Managers see AR and follow-up load on one screen.
  • I walked account managers and their managers through it, and a help center inside the app covers the rest.