Source data
Salesforce with Certinia PSA (roster, managers, timecards and submission history), read through a Power BI model. Fixed rules give every person-week one status: not started, saved, submitted, approved or excluded.
Practice operations · Rolled out practice-wide · 2026
Late timesheets hold up billing and month-end close. I built a service that works out who still owes a timesheet and reaches each person, then their manager, in Microsoft Teams before the deadline.
RESULTS
Internal measures, reported as observed: ~93% average to 98–99% as soon as it went practice-wide; people missing each deadline fell from ~14 a week to 2–5; official operations score hit 100% in the first full week.
I designed the service and built it with AI coding agents under my gated engineering process. At runtime it applies fixed rules only: no AI model decides who is late, who is contacted or what anyone is told.
Fictional data. A private reminder first, then the manager rollup, then a final call in the team channel, then the missed list for leadership.
Nobody has to open a dashboard. The service reads the system of record, works out who owes what, and reaches each person privately in Teams before the deadline. Managers get a rollup, the team channel gets a final call, and leadership gets a short summary.
Salesforce with Certinia PSA (roster, managers, timecards and submission history), read through a Power BI model. Fixed rules give every person-week one status: not started, saved, submitted, approved or excluded.
A private Adaptive Card first, then a manager rollup, then a final call in the team channel with @mentions for those who still owe a timesheet, then a missed list for leadership. Holidays, time zones, new hires and month-end splits are handled.
Piloted with one team, then rolled out practice-wide. Only one component knows the data source, so another PSA or ERP would replace that component rather than the service.
Dry-run routing, a kill switch, stale-data checks and 219 automated tests, including a suite that checks no message reaches anyone unless the service is set to live.
Power Automate delivers every message using standard connectors only, so the service needs no premium licenses.
MY ROLE & SCOPE
I designed and built the service and led its rollout with the process owners and managers. It was built for a consulting practice. The results are internal measures, reported as observed; they are not a forecast for another organization. Names, clients and internal data are omitted, and the screen is a concept view with fictional data.
THE NEXT CONVERSATION
Building an AI practice takes client trust, capable people, and realistic commitments. That is the work I want to lead.