Case Study · Retail

Defacto PAT: meeting analytics that survived the move from Teams to Meet

A dashboard producing attendance, talk-time and meeting-efficiency metrics from online meeting data. Built on Microsoft Teams' relational data; when the company moved to Google Meet, Meet's nested event data was mapped to the Teams schema and the dashboard continued unchanged. Row-level security means everyone sees only their own hierarchy.

2
Platforms

Teams, then Meet — in one schema

Daily
Refresh

SSIS package, written to the log structure

RLS
Privacy

Everyone sees their own hierarchy

2
Phases

Teams build · Meet migration

Problem

Meetings are one of a company’s biggest invisible costs. How many meetings are held, how many people attend, how long they last, whether cameras are on, whether invitees show up — until these are measured, all you have for changing meeting culture is impressions. Defacto wanted a dashboard that measures this from online meeting data and shows each manager their own team’s habits.

Phase 1 — Teams

Microsoft Teams data came as a relational structure of call records, sessions, scheduled meetings, invitees and media (camera, audio) tables. A daily SSIS package took these tables and turned them into a meeting warehouse in the DSO’s database. The critical piece was the join with HR data: who reports to whom, in which unit — and a loop that finds the current manager for an employee whose manager has left. Matching problems caused by Turkish character variations were solved by normalising user names.

Every ETL step writes to the DSO’s log structure; which step failed and when is visible in a single query.

Phase 2 — Moving to Meet

When the company moved from Microsoft Teams to Google Meet, the dashboard had two options: be rewritten from scratch, or stay the same while its data source changed. We chose the second.

Meet data looks nothing like Teams’: a nested event stream in BigQuery with hundreds of columns. The calendar block holds every calendar action and the Meet block every meeting event as a separate row. This stream was transformed into Teams’ relational meeting–session–participant schema; HR data was moved into the same project so the mapping happens in one place. In the end the two platforms’ data merged in one warehouse, in one format, and the dashboard kept working unchanged.

Privacy

Meeting data is personal data. The dashboard applies row-level security (RLS): each user sees only the hierarchy below them — an employee sees themselves, a manager their team, a director their directorate.

Outcome

PAT made meeting efficiency traceable by person, manager, unit and department, and the platform change did not break the report’s continuity. Lumtify built the data infrastructure, the ETL packages and the dashboard. The same approach — mapping data whose source changes onto a fixed schema — became a core principle in our later business intelligence work.

How the system fits together

All our work