by Rik Groenewoud
If you’ve ever worked in as a Service Manager or similar role, you know the drill. Every two weeks, there’s another operational meeting. Every month, another steering committee meeting. And before each meeting, someone (usually you) spends hours:
Multiply this by let’s say 7 clients with both monthly and two-weekly meetings, and you’re spending over 20 hours every month on repetitive presentation work. There has to be a better way.
I built a complete automation system that transforms meeting preparation from a multi-hour manual process into a one-click operation. Here’s what it does:
Instead of manually querying Azure DevOps and calculating metrics, PowerShell scripts automatically fetch:
A Node.js script reads configuration files and generates presentation content using the Slidev framework. This means:
Everything runs automatically via Azure Pipelines with a simple UI:
Within minutes, you get:
The system supports two distinct meeting types:
Focus: Day-to-day execution and tactical updates
Automated Content:
Pipeline Parameters: Customer name, attendees, and AOB items
Focus: Strategic overview and trend analysis
Automated Content:
Pipeline Parameters: Customer name, attendees, team updates, and opportunities
{{CUSTOMER_NAME}}, {{WORK_ITEMS}})[Azure DevOps]
↓
[PowerShell Scripts] → JSON Data Files
↓
[Node.js Generator] + [Config Files] + [Template]
↓
[Generated Markdown]
↓
[Slidev] → PDF Export
↓
[Azure Pipeline Artifacts]
That’s 90%+ time savings (19 hours per month) that can be reinvested in actual client work.
The automation ensures consistency across all presentations. Every slide follows the same professional structure, metrics are always calculated the same way, and brand guidelines are enforced automatically. No more typos or formatting inconsistencies.
Since presentations are generated from live data, they always reflect the latest work item states. There’s no risk of showing outdated information - all metrics are calculated directly from Azure DevOps data at the time of generation.
All presentation source files are stored in Git, providing a complete historical record of what was presented when. This makes it easy to track changes and improvements over time, and ensures reproducible builds.
Adding new clients requires minimal configuration since templates can be reused across any number of customers. The pipeline infrastructure supports unlimited parallel runs, making it easy to scale as your client base grows.
Everything is code - Infrastructure as Code for presentations! This makes it easy to customize and extend. A local development workflow is available for quick iterations, and the system has full testing capabilities.
We began by manually creating the “perfect” presentation for one client, then worked backward to templatize it. This is much easier than trying to design templates in the abstract.
By keeping customer-specific details in JSON config files rather than hardcoded, we made the system vastly more maintainable. Adding a new customer is now a 5-minute configuration task, not a code change.
While Node.js is great for presentation generation, PowerShell excels at Azure DevOps integration. The Invoke-RestMethod cmdlet with PAT token authentication made data fetching straightforward.
We evaluated several presentation tools (Google Slides API, PowerPoint automation, LaTeX Beamer) but Slidev offered the best balance. It provides a developer-friendly workflow using markdown and Vue, produces beautiful output with minimal effort, and has excellent theming and customization options. The PDF export quality is also outstanding.
The first version of our pipeline took 4-5 minutes. By adding npm caching and optimizing dependency installation, we got it down to under 2 minutes.
Automating recurring presentations might seem like a small optimization, but the impact compounds quickly. When you’re managing 21 client meetings per month (7 customers × 3 meetings each), every minute of preparation time matters.
More importantly, automation frees yourself (or your team) to focus on high-value work: solving complex problems, building relationships, and delivering business impact. Nobody became a consultant to manually copy data between systems.
By treating presentations as code, we brought software engineering best practices (version control, testing, CI/CD) to a traditionally manual process. The result is presentations that are faster to create, more consistent, more accurate, and infinitely more scalable.
If you’re spending hours each week on repetitive presentation work, ask yourself: could this be automated? The answer is almost always yes. And the ROI is better than you think.
Want to know more see some of the actual code that makes this happen? Feel free to contact me!