Contact ↔ Parent ↔ Child structures). Unfortunately, Power Pages doesn’t handle indirect relationships (like Contact → Parent → Child) automatically, so yes — it feels like it should just work… but it needs a bit of wiring.
Contact → Parent (1:1)
Parent → Child (1:N)
User is logged in as a Contact
If You want:
Show the Parent record associated with the logged-in Contact ✅
Show the list of Child records related to that Parent record ❌
Allow creating new Child records auto-associated to the correct Parent record ❌
Solution
Step 1: Ensure Table Relationships
You probably already have:
Parent has a lookup to Contact (1:1 setup)
Child has a lookup to Parent
Step 2: Table Permissions Setup
Here’s the key.
You want to allow the logged-in Contact to see and edit Child records related to their Parent record.
Configure Table Permissions for Child:
Create a new Table Permission (Dev > Power Pages Management app)
Table: Child
Scope: Parent
Related Table: Parent
Parent Relationship: Child.Parent
Then, on Parent, create another Table Permission:
Table: Parent
Scope: Contact
Relationship: Parent.Contact
“Allow the user to access Child records if their associated Parent is related to their Contact.”
Step 3: Filter the Child Entity List on the Parent Page
You're showing the Parent record (e.g., via an Entity Form or Web Template). Under it, place an Entity List of Child records.
This will automatically filter to just show the Child records that match the Parent (based on permissions above) IF the Parent ID is passed properly.
However, if it doesn’t auto-filter, you can also pass the Parent record’s ID in the query string and filter the list via FetchXML or JavaScript
Step 4: Link New Child Record to Parent Automatically
You have a form for creating a new Child record. Here’s how to auto-populate the Parent lookup field:
Use a Web Page URL Parameter + Metadata
When user clicks “Add New Child”, link them to /create-child/?parent={{ parent_record.id }}
In the Child create Entity Form, go to Form Metadata in Power Pages Studio:
Add a Set Value for the Parent lookup field
Set the value source to Query String
Key: parent
This will automatically link the new Child record to the correct Parent.