You can absolutely do this in Power Pages, and it’s a very common pattern:
User selects one of their cases → system shows only the messages related to that case.
The key is that Power Pages doesn’t automatically “cascade” table permissions.
You need two separate table permissions, both tied to the logged‑in Contact.
Step 1 — Make sure the user can only see their cases
Create a Table Permission for the Case table:
Assign this permission to the user’s Web Role.
This ensures the list only shows their cases.
Step 2 — Create a Table Permission for the Messages table
This is the part most people miss.
Your Messages table must also have a permission that ties it back to the Case.
Example:
-
Table: Message
-
Access Type: Parent
-
Parent Table Permission: Case
-
Relationship: Case → Message (your lookup field)
-
Privileges: Read, Create (if they can send messages)
Assign this to the same Web Role.
This tells Power Pages:
“Only show messages where the parent Case is one the user is allowed to see.”
Step 3 — Use a List + Form or List + Web Template to show messages
Once permissions are correct, the UI becomes simple:
Option A — Use a List with a Filter on the Case lookup
If your Messages list is on a page like /case-messages?id={{caseid}},
set the list filter to:
Case (lookup) equals QueryString: id
Option B — Use a Web Template with Liquid
If you prefer Liquid:
{% assign caseId = request.params.id %}
{% fetchxml messages %}
<fetch>
<entity name="new_message">
<attribute name="new_text" />
<filter>
<condition attribute="new_case" operator="eq" value="{{ caseId }}" />
</filter>
</entity>
</fetch>
{% endfetchxml %}
{% for m in messages.results.entities %}
<p>{{ m.new_text }}</p>
{% endfor %}
Either approach works once permissions are correct.
Common mistake (likely your issue)
If you only set permissions on Case, the Messages table will return zero rows, even if the user owns the Case.
Power Pages never assumes child‑table access — you must explicitly configure it.
Summary
Yes, this scenario is fully supported, even in the new Power Pages experience.
Just ensure:
-
Case → Contact‑based permission
-
Message → Parent‑based permission referencing Case
-
Your list or Liquid filters by the selected Case ID
Once those three pieces are in place, everything works exactly as expected.