We've been running Power Platform at Julius Silvert for almost two years now. 2024 was the year it went from "promising experiment" to "critical business infrastructure." Here's an honest review of what worked, what didn't, and what I'd do differently.
The Numbers
Let me start with raw metrics:
| Metric | Jan 2024 | Dec 2024 | Change |
|---|---|---|---|
| Active Power Apps | 12 | 47 | +292% |
| Power Automate Flows | 34 | 156 | +359% |
| Power BI Reports | 8 | 31 | +288% |
| Citizen Developers | 4 | 18 | +350% |
| Dataverse Storage (GB) | 2.1 | 14.7 | +600% |
| Monthly API Calls | 45K | 890K | +1,878% |
Those numbers look great until you realize what they actually mean: we're now dependent on Power Platform for daily operations, and our Dataverse storage costs are starting to hurt.
What Worked: Automating the Boring Stuff
The biggest wins came from Power Automate flows that eliminated manual work nobody wanted to do anyway:
Invoice processing: We built a flow that reads incoming vendor invoices from a shared mailbox, extracts key data using AI Builder, creates draft AP entries in D365, and routes them for approval. Processing time dropped from 15 minutes per invoice to under 2 minutes.
Customer onboarding: New customer setup used to require entries in 4 different systems. Now a sales rep fills out one Power App form, and flows handle the rest: D365 customer record, credit application workflow, Adobe Commerce account, and welcome email sequence.
Daily operations reporting: Every morning at 6 AM, a flow compiles yesterday's picking accuracy, delivery performance, and inventory exceptions into a Teams message for the leadership team. No more "can someone run the morning numbers?" emails.
Exception alerting: When a customer's order exceeds their credit limit, when inventory for a key item drops below safety stock, when a truck is running late - flows catch these conditions and alert the right people immediately.
These aren't glamorous. They don't make demo reels. But they're saving 30+ hours per week across the organization.
What Worked: Power BI Democratization
Before Power BI, reporting was an IT function. Someone would request a report, we'd queue it, build it in SSRS or Excel, deliver it a week later, and then field change requests for another month.
Now, department heads build their own reports. Our sales director has a pipeline dashboard she updates weekly. Our operations manager has real-time picking metrics. Our CFO built his own cash flow visualization.
Are all of these reports perfect? No. Some have questionable data modeling choices. Some have too many visuals on one page. But they're useful to the people who built them, they get updated, and IT isn't a bottleneck.
The key was training. We invested in a 3-day Power BI workshop for 12 people earlier this year. Four of them now build reports regularly. That's a 33% conversion rate from training to active usage - better than industry average.
What Didn't Work: Copilot (Mostly)
I wanted to love Copilot in Power Platform. The demos were compelling. "Describe what you want and Copilot builds it!" Reality is messier.
Copilot for Power Apps: It can generate simple apps from descriptions, but the apps it generates are mediocre. The UI is clunky. The data model is often wrong. You spend as much time fixing what Copilot built as you would have spent building from scratch.
Where Copilot does help is formula writing. Describing what you want a formula to do and having Copilot generate the Power Fx is genuinely faster than looking up syntax. That's a productivity boost, but it's incremental, not transformational.
Copilot for Power Automate: Similar story. Simple flows work okay. Anything with branching logic, error handling, or complex data transformations still requires manual construction. The "describe your flow" feature is good for getting started, then you rebuild most of it.
Copilot for Power BI: The Q&A feature for natural language queries has improved, but our users still prefer clicking through slicers to typing questions. Habits are hard to change.
Bottom line: Copilot is a productivity enhancement, not a paradigm shift. It hasn't changed who can build solutions - it's just made existing builders slightly faster.
What Didn't Work: Governance at Scale
When you have 4 citizen developers building apps, governance is easy. You know who's building what. You can review everything. When you have 18 citizen developers and 47 apps, things get messy.
Problems we encountered:
Shadow Dataverse tables: Someone created a custom table for tracking equipment maintenance. Someone else created a different custom table for tracking equipment maintenance. Neither knew the other existed. Now we have duplicate data.
Flow failures nobody noticed: A flow that processed customer returns started failing silently in March. Nobody noticed until June because the person who built it left and nobody was monitoring it.
Performance degradation: Several canvas apps were loading slowly because makers didn't understand delegation and were pulling entire datasets into memory. User complaints piled up before we identified the cause.
Licensing surprises: Premium connectors triggered unexpected license requirements. A citizen developer used the HTTP connector (premium) in a flow that was widely shared. Suddenly we needed premium licenses for everyone using that flow.
How We're Fixing Governance
We implemented the Center of Excellence (CoE) Starter Kit in Q3. It's not perfect, but it gives visibility we didn't have before:
- Weekly inventory of all apps, flows, and connections
- Identification of orphaned resources (owner left the company)
- Detection of premium connector usage
- Usage analytics to identify abandoned vs. active solutions
We also established mandatory practices:
Environment strategy: Three environments - Dev, Test, Production. Citizen developers build in Dev. Anything going to Production gets reviewed by IT. This adds friction but prevents chaos.
Naming conventions: All apps start with department prefix. All flows include the creator's initials. Sounds bureaucratic. Makes finding things possible.
Documentation requirements: Every app or flow going to Production must have a one-page document explaining what it does, what data it touches, and who owns it. This takes 20 minutes to write and has saved hours of archaeology later.
Monthly review meetings: IT meets with each department's citizen developers monthly. What are you building? What problems are you solving? What do you need help with? This surfaces issues before they become emergencies.
If you're deploying Power Platform beyond pilot scale, install the CoE Starter Kit immediately. The setup takes a few hours. The visibility it provides is essential. You cannot govern what you cannot see.
The Dataverse Storage Problem
Our Dataverse storage grew from 2.1 GB to 14.7 GB this year. At current pricing, that's meaningful cost. And we're not even close to done migrating processes onto the platform.
What's consuming storage:
- Audit logs (required for compliance)
- Flow run history (default retention is generous)
- File attachments in canvas apps
- Large text fields that should probably be in SharePoint
What we're doing about it:
Archiving old records: Data older than 2 years gets moved to Azure Data Lake. Still accessible for reporting, not consuming premium Dataverse storage.
Reducing audit verbosity: We don't need to audit every field change on every table. We tuned audit settings to capture what compliance requires and nothing more.
Redirecting file storage: New apps store attachments in SharePoint with links in Dataverse. Same user experience, 90% less Dataverse storage consumption.
Flow history cleanup: Automated cleanup of flow run history older than 30 days for non-critical flows.
Licensing Lessons
Power Platform licensing is complex. I won't pretend to fully understand it, and I work with it daily. Here's what I've learned:
Per-user vs. per-app: Per-user licenses make sense if someone builds and uses many apps. Per-app licenses make sense for apps with many occasional users. We use a mix.
Premium connectors are everywhere: HTTP, custom connectors, Dataverse, certain AI Builder features - all premium. A citizen developer can accidentally make a "free" app require premium licenses very easily. Education and DLP policies help.
D365 licenses include entitlements: Our D365 F&O licenses include certain Power Platform rights. Understanding exactly what's included saved us from buying licenses we already had.
Annual reviews are essential: We review license assignments quarterly. People leave, roles change, apps get deprecated. Unused licenses are wasted money.
2025 Plans
What we're planning for next year:
Model-driven apps: We've focused heavily on canvas apps for their flexibility. But model-driven apps are better for data-intensive scenarios with complex relationships. Our equipment maintenance system (yes, we're consolidating those duplicate tables) will be model-driven.
Copilot Studio: We want to build a customer-facing chatbot for order status inquiries. Copilot Studio (formerly Power Virtual Agents) looks promising for this use case.
AI Builder expansion: Document processing has worked well for invoices. We'll extend it to customer purchase orders and proof-of-delivery documents.
ALM improvements: We're implementing Azure DevOps integration for solution deployment. Manual solution exports and imports don't scale.
Would I Do It Again?
Absolutely. Power Platform has fundamentally changed how we approach automation and reporting at Julius Silvert. Problems that would have been IT projects taking months are now solved by the people who have the problems, taking days or weeks.
Is it perfect? No. Governance is hard. Licensing is confusing. Copilot is overhyped. Storage costs add up. But the net value is overwhelmingly positive.
If you're considering Power Platform and worried about citizen development chaos: the chaos is manageable with the right guardrails. The alternative - IT as bottleneck for every automation request - is worse.
Planning an ERP modernization?
6 SAP-to-Dynamics conversions with zero business disruption. Let's discuss your project.
ERP Services Book a Call