Master Team
Back to all articles
PPlusData Migration

P+ Migration Sheet Generator from Live System

Automatically generate a complete, form-accurate data migration Excel workbook by inspecting any live P+ instance — extracting the exact hierarchy, level creation forms, and all sub-item (log) field definitions so clients can fill and import data without guesswork.

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

RequirementDescription
Claude CodeAnthropic's CLI agent with browser automation (Claude in Chrome MCP)
Browser AccessChrome with the Claude in Chrome extension installed
Live InstanceThe 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:

  1. Reference migration sheet (optional but recommended) — any existing migration .xlsx to use as a FORMAT REFERENCE
  2. Reference template (optional) — an existing migration .xlsx for 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-imported

Step-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 Project

Every 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:

  1. Clicks the "+" Quick Actions button on the Home page
  2. Selects the component (e.g., "Add Portfolio")
  3. Screenshots and reads every field on the creation form
  4. Scrolls down to capture fields below the fold
  5. Records the field metadata:
What to CaptureHow It AppearsExample
Field labelText above the input"English Name"
Required statusRed * before the label* English Name → required
Field typeInput element typeText input, dropdown, date picker, rich text editor
Date formatPlaceholder textdd-MM-yyyy
Parent selectorDropdown labeled with parent type* Portfolio with "Select Portfolio" placeholder

Example: What the automation captures from a Strategic Project form:

Field LabelRequiredType
English NameYesText
Arabic NameYesText
InitiativeYesDropdown (parent link)
English Project DescriptionNoRich Text
Arabic Project DescriptionNoRich Text
Project ManagerYesDropdown (user)
Project OwnerYesDropdown (user)
Project SponsorYesDropdown (user)
Project ClassificationYesDropdown

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:

  1. Clicks into an existing Strategic or Other Project
  2. Uses the sidebar navigation to visit each sub-item section
  3. Clicks the "+ Add" button within each section
  4. Records every field from each sub-item creation form
  5. Also visits Admin > Level Management > Manage Logs to confirm the complete list

Standard P+ logs for a Strategic Project:

Log TypeWhere to Find
TasksSidebar + Quick Actions
DeliverablesSidebar + Add button
MilestonesSidebar + Add button
Progress UpdateSidebar + Add button
Team MembersSidebar
StakeholdersSidebar + Quick Actions
RisksSidebar + Quick Actions
IssuesSidebar + Quick Actions
ContractsSidebar
Payment PlanSidebar
Phase GateSidebar
ClosureSidebar
Deliverable AcceptanceSidebar
Change Status RequestSidebar
Project CharterSidebar
Project Change RequestSidebar
Project HandoverSidebar

Example: Task creation form fields:

Field LabelRequiredType
NameYesText
Assigned ToYesDropdown (user)
Planned Start DateYesDate (dd-MM-yyyy)
Planned Finish DateYesDate (dd-MM-yyyy)
DetailsYesRich Text

Example: Risk creation form fields:

Field LabelRequiredType
English Risk TitleYesText
Arabic Risk TitleYesText
DescriptionYesText
Mitigation PlanYesText
ImpactYesDropdown (Low/Medium/High)
ProbabilityYesDropdown (Low/Medium/High)
CategoryYesDropdown
Due DateYesDate (dd-MM-yyyy)
Assigned ToYesDropdown (user)

Example: Milestone creation form fields:

Field LabelRequiredType
NameYesText
WeightYesNumber (0-100)
Planned Start DateYesDate (dd-MM-yyyy)
Planned Finish DateYesDate (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:

HintMeaningExample 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 format15-03-2026
(Select from dropdown ↓)Must match a parent entity name"Sea Ports"
(Number)Numeric value11000000
(Number (0-100))Weight percentage25
(Low / Medium / High)Severity/probability levelMedium
(Email)Email addressuser@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 Project

Level sheets generated (4):

Sheet NameColumnsParent Column
PortfolioEnglish Name*, Arabic Name*, English/Arabic Portfolio Description, Portfolio Manager*— (top level)
InitiativeEnglish Name*, Arabic Name*, English/Arabic Initiative Description, Start Date*, Finish Date*, Initiative Manager*, Initiative Owner*Contributes to (Portfolio Name)*
Strategic ProjectEnglish Name*, Arabic Name*, English/Arabic Project Description, Project Manager*, Project Owner*, Project Sponsor*, Project Classification*Contributes to (Initiative Name)*
Other ProjectEnglish Name*, Arabic Name*, English/Arabic Operational Project Description*, Start Date*, Finish Date*, Manager*Contributes to (Initiative Name)*

Sub-item (Log) sheets generated (10):

Sheet NameColumnsParent Column
TaskTask Name*, Assigned To*, Planned Start Date*, Planned Finish Date*, Details*Contributes to (Project Name)*
DeliverableDeliverable Name*, Weight*, Planned Start Date*, Planned Finish Date*Contributes to (Project Name)*
MilestoneMilestone Name*, Weight*, Planned Start Date*, Planned Finish Date*Contributes to (Project Name)*
Progress UpdateCompleted Activities (Previous Cycle), Planned Activities (Next Cycle)Contributes to (Project Name)*
Team MembersMember Name*Contributes to (Project Name)*
StakeholdersName*, Role*, Email*, Phone*, Stakeholder Type*, Entity Name, Communication Type*, Communication Method*, ResponsibilitiesContributes to (Project Name)*
RiskEnglish Risk Title*, Arabic Risk Title*, Description*, Mitigation Plan*, Impact*, Probability*, Category*, Due Date*, Assigned To*Contributes to (Project Name)*
IssueEnglish Issue Title*, Arabic Issue Title*, Details*, Resolution Plan*, Impact*, Due Date*, Assigned To*Contributes to (Project Name)*
ContractsContract Name*, Vendor*, Contract Value*, Start Date*, End Date*, Status*Contributes to (Project Name)*
Payment PlanDate*, Amount*, Status*, NotesContributes 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-managment

Instances 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:

PropertyValue
File format.xlsx (OpenXML)
SheetsOne per level type + one per sub-item type + one _Lookup sheet
Header rowRow 1 — field names with * for required
Data type rowRow 2 — format hints in gray text
Data rowsRow 3+ — empty, ready for user input
StylingDark green headers, white text, thin borders
Column widthsAuto-sized, max 35 chars
FontArial 11pt (headers), Arial 10pt (hints)

Resources

ResourceLink
Reference migration templateProvided by your project team
Claude Codeclaude.ai/claude-code
Claude in Chrome ExtensionRequired for browser automation

Try this automation now with Claude AI

BC Automations