Agent Lifecycle Admin Portal — Build Guide¶
Overview¶
A canvas app for the governance team to manage agent lifecycle operations. This is NOT an exported app — build it manually in Power Apps Studio following the instructions below.
Note: This guide describes how to construct the app from scratch. No Power Apps package is included in this solution.
Data Sources¶
Connect to the following Dataverse tables:
| Table | Logical Name | Purpose |
|---|---|---|
| Agent Lifecycle Record | fsi_agentlifecyclerecord |
Master lifecycle state |
| Sponsor Assignment | fsi_sponsorassignment |
Sponsor history |
| Access Review | fsi_accessreview |
Access review records |
| Deactivation Request | fsi_deactivationrequest |
Deactivation approvals |
| Lifecycle Compliance Event | fsi_lifecyclecomplianceevent |
Compliance event log |
Adding Data Sources¶
- Open Power Apps Studio
- Select Data from the left panel
- Click Add data → Dataverse
- Search for and select each table listed above
- Verify all five tables appear in the Data panel
Screens¶
Screen 1: Agent Dashboard¶
Purpose: Overview of all agent lifecycle records with filtering and status indicators.
Components:
- Gallery showing all agents from
fsi_agentlifecyclerecord - Filter controls:
- Dropdown: Governance Zone (Zone 1 (Personal) / Zone 2 (Team/Departmental) / Zone 3 (Enterprise/Customer-Facing))
- Dropdown: Lifecycle Stage (Onboarding / Active / Under Review / Inactive / Deactivated / Deleted)
- Dropdown: Access Review Status (Not Started / In Progress / Completed / Overdue) — values must match the
fsi_ALG_accessreviewstatusoption set used byfsi_agentlifecyclerecord.fsi_accessreviewstatus. The "Pending"/"Escalated" labels exist only onfsi_ALG_reviewstatus(used byfsi_accessreview.fsi_reviewstatus); use a separate dropdown when binding to that table. - Gallery columns: Agent Name, Zone, Stage, Sponsor, Inactivity Days, Next Review Due
- Color coding:
- Green: Active
- Yellow: Under Review / Inactive
- Red: Pending Deactivation
Gallery formula example:
// Note: fsi_governancezone and fsi_lifecyclestage are choice (option set) columns.
// In Power Apps, compare against the choice record (e.g. ddZone.Selected) directly,
// not against .Value. If you use a static dropdown with text Items, compare to .Value.
SortByColumns(
Filter(
fsi_agentlifecyclerecords,
(IsBlank(ddZone.Selected) || fsi_governancezone = ddZone.Selected),
(IsBlank(ddStage.Selected) || fsi_lifecyclestage = ddStage.Selected)
),
"fsi_agentname",
SortOrder.Ascending
)
Screen 2: Agent Detail¶
Purpose: Full lifecycle view for a selected agent with history and actions.
Components:
- Display form showing the full lifecycle record for the selected agent
- Sponsor history gallery — filtered
fsi_sponsorassignmentrecords for the selected agent, sorted byfsi_assignmentdatedescending - Access review history gallery — filtered
fsi_accessreviewrecords for the selected agent - Deactivation request history — filtered
fsi_deactivationrequestrecords - Button: "Request Manual Deactivation" — navigates to a deactivation request form or triggers Flow 4
Navigation: Set OnSelect of gallery items on Screen 1 to navigate here with context:
Screen 3: Compliance Events¶
Purpose: Audit trail of all compliance events for regulatory review.
Components:
- Gallery showing recent events from
fsi_lifecyclecomplianceevent - Filter controls:
- Dropdown: Event Type
- Dropdown: Compliance Impact (None / Low / Medium / High / Critical)
- Date picker: Date Range (start/end)
- Export functionality: Button to export filtered gallery data to CSV
Export formula example:
// Use a collection to stage data, then export
ClearCollect(colExport, Filter(fsi_lifecyclecomplianceevents, ...));
Note: Canvas app CSV export requires a Power Automate flow or the
Downloadfunction. See Power Apps documentation for current export options.
Screen 4: Sponsor Management¶
Purpose: Monitor sponsor coverage and manage reassignments.
Components:
- Gallery of current sponsor assignments where
fsi_iscurrent = true - Highlight indicator for agents with inactive sponsors (
fsi_sponsoractive = false) - Button: "Reassign Sponsor" — opens an edit form to update the sponsor assignment
- Sponsor coverage metric — count of agents with active sponsors vs. total
Security¶
App Sharing¶
- Share the app with the governance team security group only
- Do not share with all users in the organization
- Use Dataverse security roles to restrict row-level access where applicable
Data Access¶
- Use Dataverse row-level security to restrict access by business unit or zone
- Audit all app interactions via Dataverse audit logging
- Do not store sensitive data in app-level variables or collections
Connection Context¶
- The app runs in the context of the signed-in user's Dataverse permissions
- Verify that governance team members have appropriate Dataverse security roles
Design Recommendations¶
| Setting | Recommendation |
|---|---|
| Theme | Use organization branding colors |
| Layout | Responsive layout for tablet and desktop |
| Loading | Add loading spinners for gallery data refresh |
| Error handling | Display user-friendly error messages for failed operations |
Agent 365 Lifecycle Governance v1.1.3