Skip to main content

Build a Career Development Plan App in Power Apps — Part 14: Recap, Production Checklist and Next Steps

· 46 min read
Jagdish Kumawat
Founder @ Dewiride

Thirteen parts planned, built, packaged and installed the Career Development Plan app. This last part walks through the finished app as an employee and as a manager, then gives you a checklist for running it for real, what it doesn't do, and every guide the series produced.

This is Part 14 of a 14-part series.

  1. Part 1: Plan the App and Set Up the Demo Organization
  2. Part 2: Create the SharePoint Site and Lists
  3. Part 3: Create the Solution, Environment Variables and Canvas App
  4. Part 4: Build the Home Screen
  5. Part 5: Build the My Plan Screen
  6. Part 6: Build the Response Screen
  7. Part 7: Share the App and Build the My Team Screens
  8. Part 8: Build the Review Screen for Manager Approvals
  9. Part 9: Let Managers Manage Competencies
  10. Part 10: Test Every Role, Joiners and Leavers
  11. Part 11: Build a Setup Flow That Creates the SharePoint Lists
  12. Part 12: Run the Solution Checker and Export the Solutions
  13. Part 13: Install the App in a New Environment
  14. Part 14: Recap, Production Checklist and Next Steps (you are here)

Nothing new is built in this part. The tour below was recorded in the development environment from Part 3, with the demo organization from Part 1. Aisha Khan, a Sales Engineer, sends a response, and her manager, Daniel Brooks, approves it.

Get the Source Code​

Get the complete source code of Career Development Plan for Power Apps on Dewiride Store →

Use it to install the finished app right away, or to compare it with yours. Every part of the series stays free.

What You Built​

PieceWhat it is
Career Development Plan appA canvas app with seven screens, for employees and managers, that needs only Microsoft 365 licenses
RoleCompetencies and CompetencyResponsesTwo SharePoint lists on a dedicated site: what each job title needs, and everyone's responses with their review status
Career Development Plan solutionThe app and three environment variables for the site and the two lists
Career Development Plan Setup solutionA flow that creates both lists on any SharePoint site, and its connection reference
Release filesBoth solutions, managed and unmanaged, at version 1.0.0.0, without this tenant's environment variable values
A tested installThe release installed in a new environment on a new site, and used by a manager and an employee

A Tour of the Finished App​

Aisha, an Employee​

When Aisha opens the app, Home greets her and shows her job title and her manager, both read from Microsoft 365 as the app opens. There's only a My plan button, because nobody reports to her:

The Home screen for Aisha Khan: Welcome, Aisha, Job title: Sales Engineer, Manager: Daniel Brooks, and a single My plan button

My plan lists the competencies for her job title and where each one stands. Customer skill was approved in Part 10; Leadership hasn't been started:

Aisha's My plan screen: The competencies for your job title, Sales Engineer, and where each one stands, with Customer skill at level Intermediate marked Approved and Leadership at level Beginner marked Not started, each with an Open button

She opens Leadership, describes what she's done at that level, and selects Send to manager. The counter keeps her within 4,000 characters:

The My response screen for Leadership at level Beginner, Not started, with Aisha's response in the text box, 344 of 4,000 characters below it, and the Send to manager button

The app confirms Your response was sent to your manager. and takes her back to her plan, where Leadership is now Waiting for review:

Aisha's My plan screen after sending: Customer skill Approved and Leadership Waiting for review

Daniel, Her Manager​

Daniel is a Sales Manager with people reporting to him, so his Home has My team as well:

The Home screen for Daniel Brooks: Welcome, Daniel, Job title: Sales Manager, Manager: Olivia Bennett, and the My plan and My team buttons

My team lists his direct reports from Microsoft 365, and Aisha's row says Waiting for review. Leo Martin, who left in Part 10, isn't listed: his account is blocked, and the app leaves out disabled accounts:

Daniel's My team screen: The people who report to you, with Aisha Khan, Sales Engineer, marked Waiting for review, and Maya Patel, Sales Engineer, each with an Open button

Opening Aisha shows what's waiting for his review, then her whole plan. Add competency and Edit change the plan for everyone with her job title:

Aisha Khan's page in Daniel's app: Job title: Sales Engineer, Waiting for your review with Leadership, level Beginner, sent on Thursday, October 29, 2026 and a Review button, then Plan for Sales Engineer with Add competency, Customer skill Approved and Leadership Waiting for review, each with an Edit button

Review opens her response. Daniel can approve it, or decline it, and a decline needs a comment so Aisha knows what to change:

The Review response screen: Leadership, Level: Beginner, Aisha Khan sent this on Thursday, October 29, 2026, her response, Daniel's comment in the box labeled Comment for Aisha Khan (required to decline), 158 of 1,000 characters, and the Approve and Decline buttons

He approves it with a comment. The app confirms You approved Aisha Khan's response., nothing is left waiting, and both competencies are approved:

Aisha Khan's page after the approval: Nothing is waiting for your review, and the plan for Sales Engineer with Customer skill and Leadership both Approved

Edit on a competency opens the screen where a manager changes its level or removes it, with a reminder of who the change affects. I only looked; nothing was saved:

The Edit competency screen: Plan for Sales Engineer, Your changes apply to everyone whose job title is Sales Engineer, Competency name Leadership, Level Beginner, and the Save and Remove buttons

Aisha Sees the Decision​

Aisha's app was still open on My plan, so she selected Refresh to see Daniel's decision: an open app doesn't notice other people's changes by itself (Part 8 explains why). Leadership said Approved, and opening it showed her response as read-only, with Daniel's comment above it:

Aisha's My response screen for Leadership: Approved, Your manager approved this on Thursday, October 29, 2026. Approved responses can't be changed., Daniel's comment, and her response below it

On a Phone​

This is the same app in a browser window the size of a small phone, 360 by 800 pixels. The header buttons shrink to icons, each row's button becomes an arrow, and the text wraps. Parts 8 and 9 built this layout:

Aisha's My plan on a 360-pixel-wide phone screen: icon-only Back and Refresh buttons in the header, Customer skill Approved and Leadership Waiting for review, each with an arrow button

Daniel's My team on a 360-pixel-wide phone screen: Aisha Khan and Maya Patel, both Sales Engineers, each with an arrow button

Every screen works the same way on a phone; only the layout changes.

The Series, Part by Part​

PartWhat it did
1: Plan the AppTurned the brief into a design that needs no premium licenses, and set up five people with job titles, managers and a security group
2: SharePoint Site and ListsCreated the site and both lists column by column, indexed the filtered columns, gave the group Contribute, and added the first competencies
3: Solution and Canvas AppAdded Dataverse to the Default environment, created the publisher, the solution, three environment variables and the app
4: Home ScreenTurned on modern controls and a theme, and read the signed-in person, their manager and their direct reports with named formulas
5: My Plan ScreenShowed the plan for the person's job title with a status for each competency, using only delegable queries
6: Response ScreenWrote, updated and resent responses with one Patch, with error handling and a read-only approved state
7: Share the AppPublished and shared the app, opened it as a manager for the first time, and built My team and the Team Member screen
8: Review ScreenLet managers approve or decline with a comment, and added Refresh to every data screen
9: Manage CompetenciesLet managers add, change or remove competencies, with a duplicate check, an accessible confirmation and a phone layout
10: Test Every RoleTested every role, a decline and resend, a promotion, a leaver and a joiner, with no change to the app
11: Setup FlowBuilt a flow that creates both lists on any site with SharePoint's REST API, safe to run again
12: Checker and ExportRan the solution checker, set version 1.0.0.0, exported four zips and took this tenant's values out with the Power Platform CLI
13: InstallInstalled the release in a new trial environment on a new site, the way a buyer would, and used it
14: RecapThis part

Production Checklist​

The demo ran in a test tenant. To run the app for real, work through this list. Each item links to the part or guide that did it, or to Microsoft's documentation where the series didn't.

Before You Install​

  • Choose the environment. Microsoft describes the Default environment as designed for personal productivity, and recommends moving important apps out of it with solutions (Manage the default environment). For production, use a production environment with Dataverse. Creating one needs at least 1 GB of available Dataverse capacity (Create an environment with a database), and the Default environment's included storage doesn't count toward it (Environments overview). Microsoft's article moves apps into managed environments, which Part 1 avoids because, from February 2027, they need premium licenses for every user. A trial environment is only for testing: it's deleted after 30 days (How to Create a Free Trial Environment).
  • Check your data policies. The app uses two connectors, SharePoint and Office 365 Users. If your admins use data policies, both must be in the same group, because connectors in different groups can't be used together in one app (Connector classification).
  • Check licenses. Everyone needs a Microsoft 365 license that includes Power Apps for Office 365, because the app's license designation is Standard (How to Check a Canvas App's License Designation, How to See a User's Licenses and Apps).
  • Check job titles and managers in Microsoft 365. The plan comes from the job title and the review goes to the manager, so a job title spelled differently from the one in RoleCompetencies gets an empty plan (How to Set a User's Manager and Job Title).
  • Create a security group for everyone who uses the app (How to Create a Security Group).

Install​

Part 13 did these in this order:

  1. Create the site and give the group Contribute (How to Create a SharePoint Communication Site, How to Give a Security Group Access to a SharePoint Site).
  2. Import the managed Setup solution and run its flow with the site's address (How to Import a Solution, How to Run an Instant Cloud Flow).
  3. Import the managed app solution and pick the site and both lists (How to Set Environment Variable Values When Importing a Solution).
  4. Outside the Default environment, give the group Basic User with a group team, so the app can read its environment variables (How to Assign a Dataverse Security Role to a Microsoft Entra Group). The role needs a second Save (Fixed: Security Role Isn't Assigned).
  5. Share the app with the group (How to Share a Canvas App with a Security Group).
  6. In a trial environment, add people to the environment before you send the link (How to Add a User to a Power Platform Environment).
  7. Send the link. Everyone allows the app's connections the first time (How to Open a Shared Canvas App for the First Time).

Security​

  • Decide whether SharePoint permissions are enough. The app shows people only their own plan and their own team, but everyone in the group can open both lists in SharePoint. Hiding other people's responses at the data level needs Dataverse tables and premium licenses (Part 1).
  • Keep the group at Contribute. The site's Members group can also change the lists themselves (Part 2).
  • Keep responses out of search, with version history on. The setup flow sets both on new lists (Part 11).

Day to Day​

  • Ask people to reopen the app after their job title or manager changes. An open app keeps what it read from Microsoft 365 when it started (Part 10).
  • For leavers, sign them out of all sessions, then block sign-in. The app then leaves them out of their manager's team (How to Block Sign-In for a User).
  • For joiners, set a job title and a manager. Their plan appears with no change to the app (Part 10).
  • Tell managers what a level change does. Everyone with that job title starts that competency again at Not started, and the earlier approval stays in the list (Part 9).
  • Show people the Refresh button. It's how an open app picks up someone else's change (How to Add a Refresh Button to a Screen).

Releasing a New Version​

  • Change the unmanaged solution in your development environment and publish the app (How to Publish a Canvas App).
  • Raise the version when you export, for example from 1.0.0.0 to 1.0.1.0. Microsoft's rule is that an update must have a higher version number than the installed one (Upgrade or update a solution).
  • Run the solution checker. The 12 medium findings on the screen headings are expected, and Part 12 explains why they stay.
  • Export managed and unmanaged, then remove the environment variable values from both zips, every time. The Export value setting doesn't keep them out (How to Keep Environment Variable Values Out of an Exported Solution).
  • Test the new zips in a trial environment (Part 13).
  • Import the managed zip where the app runs. Microsoft's import recognizes it as an update to the installed solution, and Upgrade is the default action (Apply the upgrade). Variables that already have a value in that environment show it, labeled as the target environment's value, so you don't pick the site and lists again (Enter new values while importing solutions).
note

The series released only version 1.0.0.0, so it never imported an update. The last two items follow Microsoft's articles; try them in a trial environment before you rely on them.

What the App Doesn't Do​

These are the limits of the app as built, all deliberate or stated in the part that met them:

  • No email or Teams notifications. Managers see what's waiting when they open My team; employees see decisions in My plan.
  • One level of managers. Managers see their direct reports, not the people further down.
  • One site per environment. Each environment holds one value per variable, so one installation reads one site's lists (Part 13).
  • SharePoint is the security boundary, as described under Security.
  • Microsoft 365 changes arrive when the app opens, not while it's open.
  • Fixed lengths. Competency names stop at 25 characters, so they fit on a phone; responses at 4,000; manager comments at 1,000.
  • The current job title only. After a promotion, My plan shows the new job title's competencies. Earlier responses stay in the list and come back if the title changes back (Part 10).

Next Steps​

Ideas for building on the app. None of them is part of this series:

  • Email managers when a response arrives. A Power Automate flow that starts when an item in CompetencyResponses is created or modified, and emails the manager, uses only the standard SharePoint and Office 365 Outlook connectors, which Microsoft 365 licenses include (Power Automate seeded licenses).
  • Open the app in Microsoft Teams. Power Apps can add a canvas app to Teams as a personal app (Embed a canvas app as a personal app in Teams).
  • Move the data into Dataverse if people mustn't be able to read each other's responses, and budget for the premium licenses that needs.

Every Guide in the Series​

Every part linked the guides it relied on, and the problems met along the way got posts of their own. Here they all are by topic, in the order they were written:

Microsoft 365, Microsoft Entra ID and SharePoint (12)
Power Platform admin center and CLI (7)
Power Apps: solutions, sharing and releases (18)
Power Apps Studio: screens and controls (38)
Power Apps: SharePoint data (12)
Power Apps: Power Fx formulas (36)
Power Automate (20)
Fixes for the problems met on the way (43)

Power Apps

Power Automate

Power Platform admin center and CLI

Microsoft 365 and Microsoft Entra ID

Clean Up​

If you followed the series in a test tenant, these are left over:

  • The trial environment from Part 13: Microsoft deletes it 30 days after it's created, or delete it sooner (Part 13: Clean Up).
  • The test site from Part 11 and the demo site from Part 13 (Part 11: Clean Up the Test Site).
  • The demo people and group from Part 1, once you don't need them for testing.

The Default environment keeps its Dataverse database: Microsoft documents no way to remove it (How to Add a Dataverse Database to the Default Environment).

Common Mistakes​

MistakeWhat happensDo this instead
Keeping the production app in the Default environmentIt sits where everyone in the organization makes their own appsInstall it in a production environment
Sharing a release with this tenant's values in itThe import fills in your site and lists instead of asking for theirsRemove the value files from every release
Sending the link before adding people to a trial environmentTheir first try failsAdd them first
Giving the group the site's Members permissionThey can change the lists, not just the itemsGive the group Contribute
Changing a job title and expecting an open app to followThe app reads Microsoft 365 when it opensReopen the app

Troubleshooting​

SymptomLikely causeFix
You can't open apps in this environment for a member of the groupTrial environments don't add people automaticallyFixed: "You Can't Open Apps in This Environment"
A plan is emptyNo competencies for that job title, or the title is spelled differentlyCompare the title in Microsoft 365 with RoleCompetencies
Someone's decision doesn't showThe app was already openRefresh (Fixed: Power Apps Doesn't Show Changes Other People Made)
People still see the old app after you publishTheir app was open, or loaded the old versionReopen it (Fixed: Users Still See the Old Version After You Publish)
The import didn't ask for a site and listsThe zip still holds valuesFixed: Environment Variable Export Value Switches Back to Yes

FAQ​

Which licenses does everyone need?​

A Microsoft 365 plan that includes Power Apps for Office 365, such as E5. The app uses only standard connectors, and Daniel and Aisha used it with nothing else.

Where is the data stored?​

In the two SharePoint lists on your site. Dataverse holds the solutions: the app, the flow and the three variables.

What happens to a leaver's responses?​

They stay in CompetencyResponses. The app never deletes responses, and once the leaver's account is blocked, they no longer appear in their manager's team.

Can I change the app?​

Yes. Change it in your development environment and release a new version with the checklist above. The unmanaged zip from Part 12 is for anyone who wants their own copy to change.

Conclusion​

Over 14 parts you planned, built, packaged and installed a Power Apps app that:

  • shows each person the competencies their Microsoft 365 job title needs;
  • sends their responses to their current manager to approve or decline;
  • lets managers change the plan for a job title;
  • copes with joiners, leavers and promotions with no change to the app;
  • runs on SharePoint with Microsoft 365 licenses only;
  • installs in another environment from its release files.

Every step was done live, and the problems met along the way are written up with their fixes. When you take it to production, start with the checklist above.

If you'd rather start from the finished app, or want a clean copy to compare with yours, Career Development Plan for Power Apps is available on Dewiride Store, with the release files that Part 13 installs.

← Previous: Part 13: Install the App in a New Environment

Back to the start: Part 1: Plan the App and Set Up the Demo Organization, or see every part on the series page.

Additional Resources​

Stay Updated

Subscribe to our newsletter for the latest tutorials, tech insights, and developer news.

By subscribing, you agree to our privacy policy. Unsubscribe at any time.