Automation Name
P+ Migration Sheet Generator — From Live System Inspection
This automation navigates a live P+ instance, discovers the full component hierarchy from the admin Level Management page, opens every creation form to extract exact field names, types, and required/optional status, then inspects all sub-item (log) creation forms within projects, and produces a professionally formatted Excel migration workbook — one sheet per component type AND one sheet per sub-item type, with columns matching the system's actual import fields.
Why this matters: Every P+ instance has a different hierarchy and different enabled fields. Manually documenting each creation form across 4-10 component types plus 10-16 sub-item log types, then building an Excel template by hand, takes hours and is error-prone. This automation does it in minutes and guarantees the migration sheet matches what the system actually accepts.
How It Works
The automation follows a four-phase process:
┌─────────────────────────────────────────────────────┐
│ Phase 1: Discover Hierarchy │
│ Navigate to /admin/level-managment │
│ Map parent→child relationships for all components │
├─────────────────────────────────────────────────────┤
│ Phase 2: Inspect Level Creation Forms │
│ Open each component's "Add" form via Quick Actions │
│ Record every field: label, type, required status │
├─────────────────────────────────────────────────────┤
│ Phase 3: Inspect Sub-Item (Log) Creation Forms │
│ Navigate into an existing project │
│ Open each log's "Add" form from the sidebar │
│ Also check Admin > Manage Logs for complete list │
├─────────────────────────────────────────────────────┤
│ Phase 4: Generate Excel Workbook │
│ One sheet per level type + one per sub-item type │
│ Headers = exact field labels from forms │
│ Row 2 = data type hints for users │
│ Parent columns = "Contributes to (Parent Name) *" │
│ Save .xlsx to Downloads folder │
└─────────────────────────────────────────────────────┘What You Need
| Requirement | Description |
|---|---|
| Claude Code | Anthropic's CLI agent with browser automation (Claude in Chrome MCP) |
| Browser Access | Chrome with the Claude in Chrome extension installed |
| Live Instance | The target P+ instance URL + admin login credentials |
| Reference Template (optional) | An existing migration .xlsx to match formatting |
The Prompt
Copy and paste this prompt into Claude Code. Replace the placeholders with your actual values.
Required Attachments
Before running the prompt, attach these files in the Claude Code conversation:
- Reference migration sheet (optional but recommended) — any existing migration
.xlsxto use as a FORMAT REFERENCE - Reference template (optional) — an existing migration
.xlsxfor style matching
The Full Prompt
@{{path-to-reference-sheet}}/Data_Migration_Sheet.xlsx
@{{path-to-template}}/Migration_Template.xlsx
Using the attached migration sheet as a FORMAT REFERENCE, go through the
following P+ instance and create a migration sheet for
importing data INTO this system.
Structure URL (to see the model hierarchy):
{{INSTANCE_URL}}/admin/level-managment
Example: https://my-instance.masterteam.sa/admin/level-managment
Follow these steps exactly:
1. DISCOVER THE SYSTEM HIERARCHY
a. Navigate to the Level Management page
b. On the "Level Management" tab, identify ALL component types in the
hierarchy diagram
c. Record the hierarchy — which component is the parent of which
2. NAVIGATE TO THE HOME AND INSPECT EVERY CREATION FORM
a. Go to the Home page
b. Click the "+" (Quick Actions) button
c. For EACH component type listed in Quick Actions, open its creation form
d. Record every field: label, whether it has a * (required), field type
(text, dropdown, date, rich text, etc.)
e. Scroll down to capture ALL fields — don't miss fields below the fold
f. Go back and repeat for the next component type
THEN INSPECT ALL SUB-ITEM (LOG) CREATION FORMS:
g. Navigate into an existing project (click on any project card)
h. In the project sidebar, visit EACH sub-item section:
Tasks, Deliverables, Milestones, Progress Update, Team Members,
Stakeholders, Risks, Issues, Contracts, Payment Plan
i. For each section, click the "+ Add" button and record all fields
j. Also go to Admin > Level Management > Manage Logs to confirm
the complete list of available log types for each level
3. GENERATE THE MIGRATION EXCEL WORKBOOK
CRITICAL REQUIREMENTS:
- Match the EXACT format of the attached reference template
- Create ONE sheet per component type, named after the component
- Create ONE sheet per sub-item type (Task, Deliverable, Milestone, etc.)
- Column headers must match the exact field labels from the creation forms
- Required fields should have " *" appended to the column header
- Add a "Contributes to ([Parent Name]) *" column showing the parent
relationship for child components
- Sub-item sheets get a "Contributes to (Project Name) *" column
- Row 2 should contain data type hints: (Text), (dd-MM-yyyy),
(Text (Full Name)), (Select from dropdown ↓), (Number), etc.
- Add a "_Lookup" sheet with columns for all parent entity names
- Style: dark green header row (#2E7D32) with white bold text,
centered headers, thin borders, appropriate column widths
4. SAVE the final Excel file to the Downloads folder
5. IMPORTANT NOTES:
- You are creating a template for IMPORTING data INTO this system
- The fields must match what the system's creation forms accept
- Do NOT invent fields — only include fields visible in the creation dialogs
- Exclude "Attachments" sections — those cannot be bulk-importedStep-by-Step Walkthrough
Phase 1: Discovering the Hierarchy
The automation navigates to {{INSTANCE_URL}}/admin/level-managment and reads the visual hierarchy diagram. This diagram shows the parent-child relationships between all component types.
Example hierarchy from a PIF P+ instance:
Portfolio (top level)
└── Initiative
├── Strategic Project
└── Other ProjectEvery instance is different. The automation reads whatever hierarchy exists — it doesn't assume a fixed structure.
Phase 2: Inspecting Level Creation Forms
For each component type found in the hierarchy, the automation:
- Clicks the "+" Quick Actions button on the Home page
- Selects the component (e.g., "Add Portfolio")
- Screenshots and reads every field on the creation form
- Scrolls down to capture fields below the fold
- Records the field metadata:
| What to Capture | How It Appears | Example |
|---|---|---|
| Field label | Text above the input | "English Name" |
| Required status | Red * before the label | * English Name → required |
| Field type | Input element type | Text input, dropdown, date picker, rich text editor |
| Date format | Placeholder text | dd-MM-yyyy |
| Parent selector | Dropdown labeled with parent type | * Portfolio with "Select Portfolio" placeholder |
Example: What the automation captures from a Strategic Project form:
| Field Label | Required | Type |
|---|---|---|
| English Name | Yes | Text |
| Arabic Name | Yes | Text |
| Initiative | Yes | Dropdown (parent link) |
| English Project Description | No | Rich Text |
| Arabic Project Description | No | Rich Text |
| Project Manager | Yes | Dropdown (user) |
| Project Owner | Yes | Dropdown (user) |
| Project Sponsor | Yes | Dropdown (user) |
| Project Classification | Yes | Dropdown |
Phase 3: Inspecting Sub-Item (Log) Creation Forms
After capturing level forms, the automation navigates INTO an existing project and inspects all sub-item (log) creation forms:
- Clicks into an existing Strategic or Other Project
- Uses the sidebar navigation to visit each sub-item section
- Clicks the "+ Add" button within each section
- Records every field from each sub-item creation form
- Also visits Admin > Level Management > Manage Logs to confirm the complete list
Standard P+ logs for a Strategic Project:
| Log Type | Where to Find |
|---|---|
| Tasks | Sidebar + Quick Actions |
| Deliverables | Sidebar + Add button |
| Milestones | Sidebar + Add button |
| Progress Update | Sidebar + Add button |
| Team Members | Sidebar |
| Stakeholders | Sidebar + Quick Actions |
| Risks | Sidebar + Quick Actions |
| Issues | Sidebar + Quick Actions |
| Contracts | Sidebar |
| Payment Plan | Sidebar |
| Phase Gate | Sidebar |
| Closure | Sidebar |
| Deliverable Acceptance | Sidebar |
| Change Status Request | Sidebar |
| Project Charter | Sidebar |
| Project Change Request | Sidebar |
| Project Handover | Sidebar |
Example: Task creation form fields:
| Field Label | Required | Type |
|---|---|---|
| Name | Yes | Text |
| Assigned To | Yes | Dropdown (user) |
| Planned Start Date | Yes | Date (dd-MM-yyyy) |
| Planned Finish Date | Yes | Date (dd-MM-yyyy) |
| Details | Yes | Rich Text |
Example: Risk creation form fields:
| Field Label | Required | Type |
|---|---|---|
| English Risk Title | Yes | Text |
| Arabic Risk Title | Yes | Text |
| Description | Yes | Text |
| Mitigation Plan | Yes | Text |
| Impact | Yes | Dropdown (Low/Medium/High) |
| Probability | Yes | Dropdown (Low/Medium/High) |
| Category | Yes | Dropdown |
| Due Date | Yes | Date (dd-MM-yyyy) |
| Assigned To | Yes | Dropdown (user) |
Example: Milestone creation form fields:
| Field Label | Required | Type |
|---|---|---|
| Name | Yes | Text |
| Weight | Yes | Number (0-100) |
| Planned Start Date | Yes | Date (dd-MM-yyyy) |
| Planned Finish Date | Yes | Date (dd-MM-yyyy) |
Phase 4: Generating the Excel Workbook
The automation creates a professionally styled .xlsx workbook with:
One sheet per component type + one sheet per sub-item type:
Each sheet is named after its component (e.g., "Portfolio", "Task", "Risk").
Column headers from form fields:
- Required fields get
*appended:English Name * - Parent relationships become:
Contributes to (Portfolio Name) * - Sub-item parent relationships become:
Contributes to (Project Name) * - Attachments fields are excluded (can't be bulk-imported)
Row 2 contains data type hints:
| Hint | Meaning | Example Value |
|---|---|---|
(Text) | Free text string | "Sea Ports" |
(Text (Full Name)) | Person's full name | "Ahmed Al-Rashid" |
(dd-MM-yyyy) | Date in day-month-year format | 15-03-2026 |
(Select from dropdown ↓) | Must match a parent entity name | "Sea Ports" |
(Number) | Numeric value | 11000000 |
(Number (0-100)) | Weight percentage | 25 |
(Low / Medium / High) | Severity/probability level | Medium |
(Email) | Email address | user@company.com |
(Phone Number) | Phone number | +966501234567 |
_Lookup sheet:
A helper sheet listing all parent entity names as column headers (e.g., "All Portfolio Names", "All Initiative Names", "All Project Names").
Real-World Example: PIF P+ Instance
Hierarchy discovered:
Portfolio → Initiative → Strategic Project / Other ProjectLevel sheets generated (4):
| Sheet Name | Columns | Parent Column |
|---|---|---|
| Portfolio | English Name*, Arabic Name*, English/Arabic Portfolio Description, Portfolio Manager* | — (top level) |
| Initiative | English Name*, Arabic Name*, English/Arabic Initiative Description, Start Date*, Finish Date*, Initiative Manager*, Initiative Owner* | Contributes to (Portfolio Name)* |
| Strategic Project | English Name*, Arabic Name*, English/Arabic Project Description, Project Manager*, Project Owner*, Project Sponsor*, Project Classification* | Contributes to (Initiative Name)* |
| Other Project | English Name*, Arabic Name*, English/Arabic Operational Project Description*, Start Date*, Finish Date*, Manager* | Contributes to (Initiative Name)* |
Sub-item (Log) sheets generated (10):
| Sheet Name | Columns | Parent Column |
|---|---|---|
| Task | Task Name*, Assigned To*, Planned Start Date*, Planned Finish Date*, Details* | Contributes to (Project Name)* |
| Deliverable | Deliverable Name*, Weight*, Planned Start Date*, Planned Finish Date* | Contributes to (Project Name)* |
| Milestone | Milestone Name*, Weight*, Planned Start Date*, Planned Finish Date* | Contributes to (Project Name)* |
| Progress Update | Completed Activities (Previous Cycle), Planned Activities (Next Cycle) | Contributes to (Project Name)* |
| Team Members | Member Name* | Contributes to (Project Name)* |
| Stakeholders | Name*, Role*, Email*, Phone*, Stakeholder Type*, Entity Name, Communication Type*, Communication Method*, Responsibilities | Contributes to (Project Name)* |
| Risk | English Risk Title*, Arabic Risk Title*, Description*, Mitigation Plan*, Impact*, Probability*, Category*, Due Date*, Assigned To* | Contributes to (Project Name)* |
| Issue | English Issue Title*, Arabic Issue Title*, Details*, Resolution Plan*, Impact*, Due Date*, Assigned To* | Contributes to (Project Name)* |
| Contracts | Contract Name*, Vendor*, Contract Value*, Start Date*, End Date*, Status* | Contributes to (Project Name)* |
| Payment Plan | Date*, Amount*, Status*, Notes | Contributes to (Project Name)* |
Total: 15 sheets (4 levels + 10 sub-items + 1 _Lookup)
Adapting for Different P+ Instances
P+ instances use project management hierarchies. Common component types include:
- Entity, Portfolio, Program, Project
- Strategic Project, Other Project
- Custom levels (Sector, Department, etc.)
Just change the URL to match the target instance:
Structure URL: https://my-pplus-instance.masterteam.sa/admin/level-managmentInstances with Custom Levels
Some instances have custom component types (e.g., "Sector", "Department") added via the Level Templates panel. The automation handles these automatically — it reads whatever hierarchy exists in Level Management, regardless of what the components are called.
Common Variations
When forms have conditional fields
Some forms show/hide fields based on dropdown selections. The automation captures the default state of the form. If you need conditional fields included, specify in the prompt:
After opening each form, also try selecting each option in dropdown fields
to check if additional fields appear.When you need the template to match an existing file exactly
Attach the reference file and add:
Match the EXACT formatting, column order, and naming conventions from the
attached reference file. Use the same color scheme, fonts, and cell styles.Troubleshooting
Login page appears instead of Level Management
The instance requires authentication. You need to log in first:
- Navigate to the instance manually in Chrome
- Log in with admin credentials
- Then run the automation (it will use the existing session)
Quick Actions button doesn't show all component types
Some component types can only be created from within a parent context (e.g., you must be inside a Portfolio to create an Initiative under it). If Quick Actions doesn't list all types:
Navigate into an existing parent entity (e.g., click into a Portfolio),
then check the Quick Actions menu again for child component creation options.The hierarchy diagram is complex or has multiple branches
The automation reads the visual diagram. If it has many levels or unusual branching, add:
Take a screenshot of the Level Management hierarchy diagram and describe
every component type and every parent-child relationship you can see.
List them as: "Parent → Child" pairs.Sub-item "+ Add" button redirects to admin pages
Some sub-item add buttons may redirect to approval workflow pages instead of creation forms. In this case:
If clicking "+ Add" redirects to an admin page instead of a creation form,
go back and try clicking directly on the "+" floating action button
(bottom-right gold circle) instead of the section "+ Add" button.
Also check Admin > Level Management > Manage Logs to see all available
log types and their field configurations.Date format doesn't match
Different instances may use different date formats. The automation reads the placeholder text from date picker fields (e.g., dd-MM-yyyy, yyyy/MM/dd). If you need a specific format:
Use (yyyy/MM/dd) as the date format hint instead of whatever the form shows.Output Specifications
The final .xlsx file will have:
| Property | Value |
|---|---|
| File format | .xlsx (OpenXML) |
| Sheets | One per level type + one per sub-item type + one _Lookup sheet |
| Header row | Row 1 — field names with * for required |
| Data type row | Row 2 — format hints in gray text |
| Data rows | Row 3+ — empty, ready for user input |
| Styling | Dark green headers, white text, thin borders |
| Column widths | Auto-sized, max 35 chars |
| Font | Arial 11pt (headers), Arial 10pt (hints) |
Resources
| Resource | Link |
|---|---|
| Reference migration template | Provided by your project team |
| Claude Code | claude.ai/claude-code |
| Claude in Chrome Extension | Required for browser automation |
Read more
P+ Notification Configuration Automation
Configure every notification on a live P+ instance from a single Claude Code prompt — point Claude at the client URL, paste the prompt, optionally drop in a branded HTML email template, and the script discovers all notification scopes (Levels, Logs, Manage Approvals, Process Builder), creates templates for every event, and wires receivers automatically.
P+ Report BRD from Report Design
Automatically generate a complete Arabic or English BRD from any P+ report design — PMO reports, executive reports, or project exports — by navigating the live system to map every element to its data source with embedded screenshots.
Getting Started: PPlus MCP Setup Guide (From Zero to Running)
A complete beginner-friendly guide to setting up Claude Code and the PPlus Knowledge MCP server — from downloading your first tools to running your first AI-powered query. No prior experience needed.
