How a Netherlands-Based Non-Profit Transformed Certification Management with Dynamics 365 and Azure Functions
Sustainability certification is one of the most operationally demanding programs a nonprofit can run. It is not just a badge on a product, it is a multi-year, multi-stakeholder process involving manufacturers, independent assessment bodies, scoring frameworks, document issuance, and public transparency requirements. When you are managing thousands of products across global industries, the cracks in a manual, spreadsheet-driven operation show up fast.
This is exactly the situation a Netherlands-based nonprofit found itself in. The organization administers a globally recognized product sustainability certification program, assessing products across five dimensions: material health, product circularity, clean air and climate protection, water and soil stewardship, and social fairness. Products move through certification levels Bronze, Silver, Gold, and Platinum across a lifecycle that spans application, third-party assessment, issuance, and periodic recertification every three years.
As certification volumes grew, so did the operational complexity. Disconnected tools, manual document preparation, and no single place to track everything meant the team was spending more time managing the process than running it. Rather than bolt on yet another external tool, the organization made a deliberate architectural choice: build the entire certification management platform inside Microsoft Dynamics 365, extend it with Azure Function Apps for automation, and expose public APIs for ecosystem transparency.
The Goal
Build a unified, scalable certification lifecycle management system inside Dynamics 365 that automates document generation, manages logo assets, and exposes public APIs for published certification data — all without introducing new platform dependencies.
The Business Problem
To understand what was built, you first need to understand what was broken.
The organization’s operational teams were trying to answer some fairly fundamental questions every single day — What is the current certification status of a given product? Which products are approaching their recertification deadline? Which assessment body certified a product and when? Is the certificate document ready for issuance? None of these questions had a reliable, centralized answer.
Certification records lived across disconnected spreadsheets and email threads, which meant any “current” view of a product’s status was only as accurate as the last person who updated a row. Certificate documents were manually composed for every issuance a slow, error-prone process that created formatting inconsistencies and delayed the experience for certified manufacturers. Logo assets were managed informally, with no version control or consistent delivery process.
No Single Source of Truth
Certification records scattered across spreadsheets and email threads with no reliable current view.
Manual Document Creation
Every certificate composed by hand slow, inconsistent, and a bottleneck manufacturers felt directly.
Zero Public Transparency
External stakeholders relied on manually updated static pages with no programmatic access to live data.
Unscalable Operations
Growing program volumes with no automation meant every new product added to the manual workload.
The Solution Architecture
The platform was designed around one principle: build close to where the operational data already lives, and automate at the right trigger points rather than everywhere at once.
The solution runs on three deliberate layers. Critically, this architecture avoided over-engineering entirely — no separate data warehouse, no heavy ETL pipeline, no dedicated certification SaaS platform requiring its own licensing and maintenance. Everything runs inside the Microsoft ecosystem.
Data Layer — Custom Dynamics 365 Tables
Purpose-built Dataverse tables that mirror the certification domain exactly, products, certification events, assessment bodies, category scores, and logo assets all in a single relational, auditable structure.
Automation Layer — Azure Function Apps, Dynamics Plugins
Two event-driven Function Apps sit alongside the CRM one for certificate document generation, one for logo package delivery, both triggered by real state changes in the certification lifecycle, not a schedule.
Transparency Layer — Public REST APIs
Public-facing APIs expose published certification data to external stakeholders, brands, retailers, regulators, and third-party platforms without any manual data exchange with the organization.
Custom Dynamics 365 Data Model
The data model is the foundation everything else rests on. Rather than forcing certification concepts into standard CRM entities that were never designed for this domain, the team built purpose-specific custom tables inside Dataverse that mirror how the certification program actually works.
Product data
Core product records, variants, and identifiers — the foundational layer that everything else references.
Application handling
Applications, assessments, category and requirements assessments — all managed within accounts. Assessment bodies and related workflows live here too.
Public-facing entities
Public tables for products, certifications, certificates, and product variants — the data layer that powers external visibility and API exposure.
Together, these layers gave the organisation a complete, relational view of every certified product across its full lifecycle — all within a single operational platform.
Certificate Document Generation via Azure Function App
Before this system existed, every certificate document was created by hand. Someone would take a template, fill in the product details, format it, check it, and send it. For an organization issuing certificates across thousands of products, this was not just slow — it was a source of constant inconsistency and a bottleneck that manufacturers felt directly.
The Azure Function App for certificate generation eliminated this entirely. Here is how it works end to end:
How It Works
Trigger
Certification record reaches the correct status in Dynamics 365
Fetch
Pulls record + product data via Dynamics 365 Web API
Generate
Selects correct template, populates all fields, generates document
Store & Link
Saves document and links it back to the certification record
What this means in practice is that certificate issuance is now consistent, fast, and entirely hands-off for the operational team. Formatting is guaranteed every time because the template logic is defined once and applied uniformly. The function also runs independently of the CRM interface — making it resilient and reusable across multiple trigger scenarios, including bulk recertification processing.
The impact: A task that previously required manual effort for every single issuance now requires none. Eliminated entirely.
Logo Image Generation via Azure Function App
A certified product comes with more than a document — it comes with the right to use the certification mark. For manufacturers, that logo is a commercial asset. It goes on packaging, marketing materials, websites, and retail listings. Getting the wrong variant, or receiving a logo that does not meet the program’s branding standards, is a real problem.
Before this system, logo delivery was handled informally. There was no version control, no consistent process for determining which variant a manufacturer should receive, and no automated delivery mechanism. Logos were sent manually, often inconsistently, and the organization had no reliable record of what had been delivered to whom.
The second Azure Function App changed that. When a certification record is finalized, the function determines the correct logo package based on the product’s certification level, generates the appropriate format variants, and logs everything back to the Logo Asset Table in Dataverse.
Manufacturers now receive a consistently formatted, standards-compliant logo package that is directly tied to their certified product record. The organization has a full delivery trail for every logo issued. And because the logic for which variant maps to which certification level lives in the function rather than in someone’s head or a spreadsheet, there is no room for the inconsistencies that previously crept in.
Public-Facing APIs for Published Certification Data
A sustainability certification program only creates value if the outside world can trust and access the data. Brands sourcing certified materials, retailers making product claims, regulators verifying compliance, and third-party platforms building discovery tools all need to know what is currently certified — accurately, in real time, and without calling someone.
Previously, the organization relied on static web pages updated manually, lagging behind actual certification activity. There was no programmatic access, no structured data feed, and no way for external systems to integrate without building fragile workarounds.
How Publication Control Works
Every product in the data model carries a public visibility flag managed by the certification team. When a product is marked as published, its data becomes available via the API. Suspended, withdrawn, or in-progress certifications are automatically excluded no manual filtering needed.
The result is a live, structured, queryable registry that external stakeholders can consume on their own terms. A brand can verify that a material holds an active Gold certification. A retailer can pull all certified products in a category. A third-party platform can sync the registry into their own discovery tool — all without any manual data exchange with the organization.
Beyond convenience, this transparency is strategically important. It builds trust in the certification mark, enables ecosystem partnerships, and positions the organization as a credible, accessible source of sustainability data rather than a gatekeeper of information locked inside a manual process.
8. Design Principles
The architectural decisions in this project were not accidental. Four clear principles shaped every choice made along the way.
Stay inside the Microsoft ecosystem
The organization already had Dynamics 365. Its team understood it. Building the certification platform as a native extension of that environment meant lower integration risk, lower maintenance overhead, and faster adoption. Azure Function Apps were the natural complement serverless, event-driven, and deeply integrated with Dataverse.
Build a data model that matches the domain
Standard CRM entities are designed for generic customer relationships. Certification management is a different domain. Building custom Dataverse tables that reflected that domain precisely meant the system spoke the language of the certification team, not the other way around.
Automate at the right trigger points, not everywhere at once
Both Function Apps are event-driven they respond to real state changes in the certification lifecycle rather than running on a schedule. This keeps automation tightly coupled to what is actually happening in the data, making it more reliable and easier to reason about when something goes wrong.
Avoid unnecessary platform dependencies
Every new tool is a tool that needs to be licensed, maintained, integrated, and eventually replaced. This project introduced zero new external platforms. The result is a system the organization’s own team can maintain and extend without a vendor conversation for every change.
Why This Approach Worked
It would be easy to look at the capabilities delivered and assume they required a complex, multi-platform architecture. They did not. The reason this project delivered what it did is precisely because it resisted that complexity.
Building inside Dynamics 365 rather than alongside it meant the certification platform lived where the operational data already was. There was no synchronization problem to solve, no integration layer to maintain between systems, and no risk of the certification platform drifting out of sync with the organization’s source of truth.
The custom data model mattered more than almost any other decision. When your data model genuinely reflects your operational domain, everything built on top of it becomes easier. Queries are intuitive, automation triggers make sense, and the team can reason about the system without needing to translate between what the software calls things and what the business calls them.
FAQs
Conclusion
Sustainability certification is fundamentally an information problem. The credibility of a certification mark depends entirely on the accuracy, consistency, and accessibility of the data behind it. When that data lives across spreadsheets, email threads, and manual processes, the certification program itself is only as reliable as the people managing those fragments on any given day.
What this project demonstrated is that Dynamics 365 is capable of being far more than a CRM. When you build a purpose-designed data model on Dataverse, pair it with event-driven automation through Azure Function Apps, and expose structured public APIs for transparency, you have a genuine operational platform. One that handles the full lifecycle of a complex, data-intensive program without the overhead of managing multiple disconnected tools.
If your organization is running a certification, accreditation, or compliance program on tools that were never designed for it, the path forward does not have to involve a new SaaS platform or a costly infrastructure overhaul. Sometimes the right answer is already in your stack. It just needs to be built properly.
Ready to modernize your certification operations with Dynamics 365?
CloudFronts delivers purpose-built solutions on the Microsoft platform from custom data models to automated document generation and public-facing APIs.
📩 transform@cloudfronts.com