Managing user progress and certifications

Loading

Managing user progress and certifications in Power Pages portals is a powerful way to track training completion, issue credentials, and build engagement. Whether you’re running an internal training program, an external educational platform, or compliance certification tracking, you can achieve this by combining Power Pages, Dataverse, Power Automate, and optionally Power BI.

This guide outlines how to set up a system to track user learning progress, issue certificates, and enable access to training history.


Goals

  1. Track which modules or quizzes a user has completed
  2. Display progress visually on the portal
  3. Automatically generate and issue a certificate upon completion
  4. Maintain certification records for compliance or proof
  5. Let users view and download earned certificates

Step 1: Design the Dataverse Tables

1. Training Module Table

  • Title (Text)
  • Description (Multiline Text)
  • Module Type (Choice: Video, Quiz, PDF, etc.)
  • Duration (Number – Minutes)
  • IsActive (Yes/No)

2. User Training Progress Table

  • User (Lookup to Contact)
  • Training Module (Lookup)
  • Completion Status (Choice: Not Started, In Progress, Completed)
  • Completion Date (Date & Time)
  • Score (Optional, Number)
  • Certificate Issued (Yes/No)

3. Certificate Table

  • User (Lookup)
  • Training Module (Lookup)
  • Certificate File (File Column or Note Attachment)
  • Issued Date (Date & Time)
  • Certificate Number (Auto-generated string)

Step 2: Set Up Permissions

Create a Web Role for “Authenticated Users” and ensure permissions for:

  • Read access on Training Module table
  • Read/Write on User Training Progress table
  • Read access to their own Certificate records

Enable Entity Permissions and associate with appropriate Web Roles.


Step 3: Track Progress

When a user visits a training module, update their progress.

Method 1: Client-side JS

Use Web API to create/update progress as the user completes the module.

Xrm.WebApi.online.createRecord("new_usertrainingprogress", {
"new_userid@odata.bind": "/contacts(GUID)",
"new_trainingmoduleid@odata.bind": "/new_trainingmodules(GUID)",
"new_completionstatus": "In Progress"
});

Method 2: Power Automate

Use a Power Automate Flow triggered by a form submission or quiz result.


Step 4: Display Progress on Portal

Use a custom web template to fetch and render progress:

{% assign progresses = entities.usertrainingprogress | where: "user.id", user.id %}
{% for progress in progresses %}
<div>
<h4>{{ progress.trainingmodule.title }}</h4>
<p>Status: {{ progress.completionstatus }}</p>
<p>Completed on: {{ progress.completiondate | date: "%d-%m-%Y" }}</p>
</div>
{% endfor %}

You can visually represent progress using progress bars, icons, or percentage values.


Step 5: Automate Certificate Generation

Once all modules are completed, trigger certificate creation.

Option 1: Power Automate Flow

  • Trigger: When training progress = “Completed”
  • Actions:
    • Generate a certificate PDF (using Word Template or HTML to PDF conversion)
    • Create record in Certificate table
    • Upload PDF as a file or note
    • Send confirmation email to user

Word Templates can use user/module fields to dynamically fill certificate text.


Step 6: Display and Download Certificates

Allow users to see and download their certificates from the portal:

{% assign certs = entities.certificate | where: "user.id", user.id %}
{% for cert in certs %}
<div>
<p>Certificate for {{ cert.trainingmodule.title }}</p>
<p>Issued: {{ cert.issueddate | date: "%Y-%m-%d" }}</p>
<a href="/_entity/file/certificate/{{ cert.id }}/certificatefile">Download</a>
</div>
{% endfor %}

Step 7: Progress Visualization (Optional)

Use Power BI or embedded charts to show:

  • Completion percentage
  • Module-wise progress
  • Certification stats

You can embed a Power BI report inside a secure portal page using iframe or Power BI embedding.


Step 8: Certification Expiry and Re-certification (Advanced)

Add expiry logic:

  • Add Expiry Date column in Certificate table
  • Set Valid Period (in days) in Training Module
  • Power Automate Flow to calculate and update expiry
  • Send reminders when a certification is near expiry

Allow users to reattempt expired certifications using new quiz versions.


Step 9: Admin View and Export

Create a separate Power Pages area (or a model-driven app) for admins/trainers to:

  • View user progress across modules
  • Download/export certification records
  • Filter by date, department, score

Step 10: Branding and Accessibility

  • Style certificates with your organization’s logo and brand colors
  • Add screen-reader support to progress bars and buttons
  • Ensure users can navigate training and certificates via keyboard

Use Cases

  • Internal compliance training for employees
  • Educational platforms issuing certificates to students
  • Product training portals for customers
  • Partner onboarding and training

Leave a Reply

Your email address will not be published. Required fields are marked *