Data & AI Engineering · MSA Professional Services

Teaching an ERP to
document itself.

Analysts were spending hours reverse-engineering cryptic column names and chasing subject-matter experts. We automated the entire documentation pipeline — and made updating it as easy as a chat.

Microsoft Fabric Copilot Studio Power Automate SharePoint MS Dynamics 365 T-SQL
~80%
Reduction in metadata
compilation effort
2
Automated flows keeping
data in sync 24/7
1-click
Agent access from Teams,
Outlook, or any MS tool
The problem

Data everyone has. Context no one can find.

MSA's Dynamics 365 ERP had evolved faster than its documentation. The result: analysts wasting time on trial-and-error queries, business logic locked in a few people's heads, and a data dictionary nobody trusted.

🔍
Cryptic column names
Fields renamed or repurposed over time with no record of what they actually represent — leaving analysts to guess.
🧠
Knowledge silos
Business context lived in a handful of people's heads. One departure and that knowledge was gone.
📉
Documentation drift
Manual spreadsheets fell behind schema changes immediately. Nobody had time to keep them current.
⏱️
Invisible overhead
Updating docs competed with billable work every time. It always lost.

System architecture

Five tools. One seamless pipeline.

Built entirely within MSA's existing Microsoft 365 ecosystem — no new vendors, no new platforms, no additional training overhead.

End-to-end metadata pipeline
🗄️
Dynamics 365
ERP source
🏗️
Fabric Lakehouse
Raw storage
⚙️
Fabric Warehouse
SQL + stored procs
📋
SharePoint
Data dictionary
🤖
Copilot Agent
Natural language
Fabric → SharePoint
Queries Fabric's SQL endpoint via stored procedures, then upserts every table and column record into SharePoint — technical metadata stays accurate, hands-free.
⏱ Scheduled every 24 hours
Copilot → SharePoint
When a user validates or updates a business definition through the agent, Power Automate writes it back to the matching SharePoint record in real time.
⚡ Triggered on agent action

What I built

Four components. One living data dictionary.


Agent in action

Documentation that feels like a conversation.

The agent was designed around one rule: meet users where they already work, and make contributing feel effortless. Here's a real interaction from the prototype.

Metadata Documentation Agent · M365 Copilot
👤
Actual amount
🤖
The closest match is ActualAmount.
Current definition: "Represents the actual amount recorded for the transaction."

Would you like to update this definition?
👤
Reprsents the actual amt all trans
🤖
Here's the improved version:

Updated definition: "Represents the actual amount for all transactions."

Should I save this?
👤
Save it
🤖
✅ Update complete! ActualAmount has been saved. Is there another column you'd like to look up or update?

Evaluation

Tested across three dimensions.

~80%
Automation efficiency
Refreshing hundreds of column records went from hours of manual work to a single scheduled run — an order-of-magnitude improvement.
"Lighter"
Usability
Users described the system as feeling "lighter" than a spreadsheet. The chat interface removed the blank-page friction that typically kills documentation habits.
Native
Scalability
Built entirely on Microsoft 365 — new tables or domains added by extending Fabric queries and the SharePoint schema, no architectural changes needed.
Honest limitations
  • Trial-domain restrictions (UW–Madison) prevented full Copilot Studio ↔ Power Automate integration; a manual trigger was used as a workaround for the prototype.
  • Tested on synthesized ERP data — performance at true production scale is yet to be validated.
  • AI-generated definitions were occasionally generic, reinforcing that human review remains essential.

Personal reflection
Behind the build

The technical challenge was orchestration — getting Fabric, Copilot Studio, Power Automate, and SharePoint to hand off to each other reliably, at scale, without breaking. That took careful design and a lot of iteration.

The human challenge was subtler: how do you get busy professionals to contribute to documentation without it feeling like a burden? The answer was to embed the experience inside tools they already use — and make it a conversation, not a form. That design decision shaped adoption more than any technical one.

The best AI tools don't replace human judgment. They make it easier to express, capture, and preserve it.

Interested in working together?

Get in touch