Forum Discussion
Standardized succession planning process in Microsoft 365?
Yes, you can absolutely build this in Microsoft 365. For a hybrid environment, the recommended approach is to use Entra ID for identity/org data, SharePoint (or Dataverse) for succession data, and Power Automate for the automation. Here’s a reliable, working design.
High-level architecture
Entra ID / AD (people & basic org)
│
│ Microsoft Graph
▼
SharePoint / Dataverse (succession database)
│
▼
Power Automate (tenure checks, reminders, approvals)
│
├── Microsoft Forms / Power Apps (manager review)
│
└── Power BI (HR dashboard)
Key design principles
- Separate Position from Employee
A position has its own ID, criticality, and history. When the current holder changes, the position record stays the same. - Do not store succession plans directly in Entra ID
Entra is not an HR database. Use SharePoint/Dataverse for successors, readiness, reviews, and history. - Track role tenure, not just company hire date
Use a dedicated RoleStartDate per position assignment. This is what triggers tenure-based reviews. - Keep review history and audit trail separate
Never overwrite previous reviews or candidate lists.
Recommended data model (SharePoint lists)
List | Purpose |
Positions | Master record for each role: PositionID, PositionName, Department, CurrentHolder, RoleStartDate, Criticality, NextReviewDate |
Candidates | Many-to-many: which employees are possible successors for which positions, readiness, priority |
Reviews | Historical review records: position, date, reviewer, risk, decision, comments |
Rules | Configurable thresholds: first review after X years, interval, reminder days, escalation days |
Audit | Append-only log of every automated action and user change |
This structure avoids hardcoding successor fields like Successor1, Successor2 in Entra or a single list.
Power Automate flows
Create four focused flows instead of one large flow:
- Position Sync – Read users from Entra ID via Graph, map them to positions, update CurrentHolder and RoleStartDate.
- Review Engine – Daily check: is a review due based on RoleStartDate and rules? If yes, create a review record and send a form link to the manager.
- Review Processing – When a manager submits the form/app, update candidates, position status, and notify HR.
- Reminder/Escalation – Daily check for outstanding reviews; send reminders at 14 days, escalate at 28 days.
All flows should log actions to the Audit list.
Tenure-based trigger example
- Store RoleStartDate on the position assignment.
- In Power Automate, trigger when:
RoleStartDate <= addDays(utcNow(), -1825) // 5 years
- Check if a review already exists for that position in the current cycle.
- If not, create review and send notification.
Potential successor “attribute”
You have two options:
- Recommended: Store candidates in the Candidates SharePoint list. This supports multiple successors, readiness levels, and history.
- Optional: Use Entra ID custom security attributes (requires P1/P2) for lightweight flags like PotentialSuccessorFor = ["IT Manager"]. This is not a substitute for the SharePoint data model.
Security & permissions
Succession data is highly confidential. At minimum:
- HR and senior management: full read access.
- Managers: see and edit only their own position.
- Employees: no access to succession records.
With SharePoint, use item-level permissions or restricted views. For more granular field-level security and better relational performance at scale, Dataverse is the stronger long-term choice.
Next step
Start by defining:
- Where RoleStartDate comes from (HR system, AD extension, or manual).
- SharePoint or Dataverse for the database.
- The exact columns for the five lists.
Once the data model is locked, the Power Automate flows become straightforward.
*To structure the response appropriately and make it as well-founded and helpful as possible based on the information available, several AI systems were also consulted for additional input and assessment.
My answers are voluntary and without guarantee!
Hope this will help you.