Role Mining Prompts
Last updated: August 24, 2026
Overview
Role mining in Albus follows a layered approach: start broad and add specificity only where the data justifies it. Each prompt uses a birthright threshold — the assignment % above which an app or entitlement should be granted automatically rather than requested. Higher thresholds mean stricter recommendations.
You'll work with two matrix types depending on the app:
An access matrix answers "which apps should this group of people get?" Use it for license-based apps where having the license is the whole story — Zoom, Slack, Notion, 1Password.
A permissions matrix answers "which roles, groups, or entitlements within an app should this group get?" Use it for apps with meaningful internal permission structures — Salesforce, Okta, AWS, GitHub, ServiceNow.
Customize the [bracketed] placeholders to match your environment — use whichever HR attribute names you actually have (Department, Business Unit, Cost Center, Team, Subsidiary, etc.). The example thresholds (80% / 70% / 60%) are a good starting point; adjust higher for stricter policies or lower if you want more apps surfaced as birthright candidates.
Attribute Recommendations
Before building any matrix, ask Albus which attributes in your identity data actually predict access. The /user-attribute-selection skill scores every grouping attribute you have configured and returns a layered birthright, pre-approved and self-service model. It proposes a plan first and waits for your approval before running.
Label | Prompt | Expected Output | Value |
|---|---|---|---|
Generate the recommendation |
| A short plan to approve, then a measured analysis of every grouping attribute in your tenant. | Grounds policy design in your own data rather than an assumption about which attributes matter. |
Approve the plan (Click Approve CTA) |
| Albus runs the full analysis and returns the recommended attribute set, a scorecard, and a coverage estimate. | The skill pauses before a long run so you can adjust the scope first. |
Add context on the scale you expect |
| A re-measure on absolute and residual contribution, showing what a finer attribute adds beyond the top anchor. | Albus tailors the analysis to the context you give it. Telling it the scale you are planning for gets you a deeper cut on the team-level layers. |
Review the recommendation |
| The recommended combinations, a diagram of how the layers stack, and the case for and against each attribute. | The reasoning is what you take into a working session, not just the answer. |
Save the analysis |
| The analysis is written to your Knowledge Hub so later threads can read it. | Future conversations reference the same report instead of rerunning the analysis. |
Check coverage before building |
| The share of existing access captured as birthright, pre-approved, and self-service. | Tells you how much a policy set covers before you build a single policy. |
Building Access Matrices (app-level)
Label | Prompt | Expected Output | Value |
|---|---|---|---|
Step 1 — the universal base |
| A single-column matrix across all active staff, showing the apps nearly everyone already holds. | Establishes the base so every layer after it only shows what it adds. |
Step 2 — the top org layer |
| The matrix for that layer across your business units. | Albus offers this at the end of the attribute overview, so you can answer in a few words. |
Step 3 — the team layer |
| The team-level matrix, showing only access the layer above did not already grant. | Without the filter each layer repeats the apps above it and you cannot see what the layer contributes. |
Step 4 — the carve-outs |
| The carve-out matrix, for example contingent workers or a region. | Completes the layered model. Albus keeps offering the next layer, so you can also just reply next. |
Layer 1 — baseline by Employee Type |
| An access matrix for FTEs across all apps, with birthright vs. self-service recommendations. | Establish the company-wide baseline every full-time employee should get on Day 1. |
Layer 2 — by department or business unit |
Optional add below:
| An access matrix scoped to the department, showing incremental apps beyond the Layer 1 baseline. | Capture team-specific apps (Engineering → GitHub, Sales → Salesforce) without duplicating the company baseline. |
Layer 3 — by team (only if needed) |
Optional add below:
| An access matrix for the team, showing only the long-tail apps unique to that team. | Add team-level granularity for specialized tooling (e.g., Security → Datadog admin) without over-fragmenting policies. |
Split by a secondary attribute |
| A matrix where rows are apps and columns are the distinct values of the secondary attribute. | Compare access patterns across subsidiaries, regions, or sub-teams in one view. |
Building Permissions Matrices (entitlement-level)
Label | Prompt | Expected Output | Value |
|---|---|---|---|
Permissions matrix — by Employee Type |
| An entitlement-level matrix showing which groups, roles, or profiles should be birthright across the FTE population. | Define the right level of access inside an app, not just whether someone gets the license. |
Permissions matrix — by department or team |
| A department- or team-scoped entitlement matrix layered on top of the Layer 1 baseline. | Handle apps like Salesforce where Sales needs profiles other departments don't, or where one engineering sub-team needs admin roles. |
Permissions matrix — filtered by entitlement name |
| An entitlement-level matrix limited to the groups matching that naming pattern. | Cuts a large app down to the entitlement family you care about instead of every group it has. |
Find the groups that actually hold the access |
| Assigned over total per cohort, at both department and cost-centre grain, ignoring groups under ten members. | Scope the matrix to teams that genuinely hold the access rather than reading a wall of self-service. |
Lower the bar on sparse access |
| The matrix re-rendered, showing which entitlements qualify at a lower threshold. | Role-specific apps rarely clear 80% in any team. Qualifying only at 20% signals pre-approval, not birthright. |
Test whether a finer attribute helps |
| A comparison showing whether the combination concentrates the cohorts or fragments them. | A finer attribute only lifts percentages when it lines up with who holds the access. Usually it does not. |
[Optional] Decision Helpers
Label | Prompt | Expected Output | Value |
|---|---|---|---|
Decide policy depth (5-user rule) |
| Two grouped trees — departments to handle at department level vs. departments to break out by team. | Avoid over-fragmenting (one policy per tiny team) and under-fragmenting (one policy hiding real variance). |
Compare attribute granularity |
| A side-by-side or summary showing whether breaking out by team surfaces meaningfully different access. | Know when to stop adding layers — if the deeper level looks the same, don't build it. |
Teaching Albus Your Environment
Label | Prompt | Expected Output | Value |
|---|---|---|---|
Teach a naming convention |
| Confirmation Albus has stored the rule; future matrices apply it automatically. | Train Albus on your conventions once instead of repeating exclusions every prompt. |
Teach a location pattern |
| Confirmation the rule is stored. | Filter out noise from location-based groups across every future matrix. |
Teach an exclusion rule |
| Confirmation the rule is stored. | Keep retired apps out of policy recommendations. |
Exclude an app entirely |
| Confirmation the app will be filtered from future matrices. | Pull noisy or out-of-scope apps (sandboxes, test environments, internal tools) out of every recommendation. |
Gap & Coverage Analysis
Label | Prompt | Expected Output | Value |
|---|---|---|---|
Identify gaps in existing policies |
| A table of apps with partial coverage, with coverage % and a suggestion for whether to promote to birthright. | Surface near-birthright apps that should be promoted, and inconsistencies in current assignments. |
Top-requested apps segmentation |
| A breakdown of the top 5 apps with proposed segmentation and reasoning grounded in request data. | Prioritize policy work where it eliminates the most tickets. |
Find apps missing access groups |
| A list of Okta apps without a backing access group. | Prep work for moving birthright orchestration off of IdP rules and into Lumos policies. |