Comment Thread Activity
Per PortalProject in the trailing 30 days: open threads, replies, ClientUser participants, internal participants, mean time-to-first-reply. Surfaces stalled threads and disengaged projects.
Keep feedback attached to the document, request or update the conversation is about.
| Posted At | Parent Type | Portal Project | Author Client User | Author Internal User |
|---|---|---|---|---|
| DocumentShare | PP-2886 | GK | AIU-378 | |
| ApprovalRequest | PP-4603 | LR | AIU-370 | |
| StatusUpdate | PP-1143 | WZ | AIU-379 | |
| DocumentShare | PP-5825 | NN | AIU-639 | |
| ApprovalRequest | PP-5299 | UD | AIU-496 | |
| StatusUpdate | PP-1444 | EC | AIU-571 |
ClientUsers (Approver / Collaborator tier) and internal users (Project Manager, Account Manager, Internal Collaborator) post Comments rows on a DocumentShare, an ApprovalRequest, or a StatusUpdate — the ParentType enum routes the anchor. Replies write to CommentReplies line items in chronological Sequence. On each new Comment or CommentReply, the comment-thread-notify workflow fires via the configured record event. A configured workflow service resolves thread participants (the original Comment author plus everyone who has replied plus any @email-mentioned ClientUsers parsed from the body), and notification service notifies each participant once per thread per hour (debounced) with the branded comment template and a deep-link back to the thread. Mention parsing only resolves to ClientUsers within the same PortalUserAccess scope; cross-account mentions are silently dropped.
When a client engagement winds down or a ClientUser leaves the customer side, Portal Manager flips ClientUsers.Status: Active → Suspended (temporary) or Deactivated (permanent). On Suspended, the auth handler refuses login and refuses magic-link redemption; on Deactivated, all outstanding MagicLinks flip to Status: Revoked and PortalUserAccess rows flip to Status: Revoked. Historical DocumentShares, ApprovalRequests, ApprovalDecisions, Comments, ActivityFeed, and ClientActivities retain the decision history under the configured retention policy; access is removed immediately and sensitive fields follow that policy.
A collaborator may participate in a project without being allowed to approve a deliverable. Keep these actions separate. The comment can explain a concern and mention an eligible participant, while the formal approval remains addressed to the named approver on ApprovalRequests. A favorable comment does not close that request and a negative comment does not change the recorded decision.
If a document is shared with a limited set of clients, its thread follows that same audience. A reply cannot make the discussion visible to every project member. Check the parent record and current grant when reading a thread, posting a reply or sending a notification. When a participant loses access, old notification links must no longer open the discussion for that person.
Keep replies in sequence under the original comment. Notifications should bring eligible participants back to that thread, rather than creating a second decision record. Review an interrupted submission using its original command identity so a retry does not post the same response twice. An internal collaborator can help explain the shared work within their project assignment, while a client Viewer continues to read without gaining comment permissions.
Create a recognizable client workspace with explicit access to each shared project.
Publish the right version of a document and see whether its intended recipients have acknowledged it.
Ask a named client approver for a decision with the relevant evidence and a traceable outcome.
Share a consistent project update with exactly the audience that should receive it.
Keep feedback attached to the document, request or update the conversation is about.
Find stalled approvals and inactive client accounts while preserving a useful decision trail.
Per PortalProject in the trailing 30 days: open threads, replies, ClientUser participants, internal participants, mean time-to-first-reply. Surfaces stalled threads and disengaged projects.
| Posted At | Parent Type | Portal Project | Author Client User | Author Internal User |
|---|---|---|---|---|
| DocumentShare | PP-2886 | GK | AIU-378 | |
| ApprovalRequest | PP-4603 | LR | AIU-370 | |
| StatusUpdate | PP-1143 | WZ | AIU-379 | |
| DocumentShare | PP-5825 | NN | AIU-639 | |
| ApprovalRequest | PP-5299 | UD | AIU-496 | |
| StatusUpdate | PP-1444 | EC | AIU-571 |
Owns the ClientUsers list and access grants for one or more PortalSites. The day-to-day operator of the external user lifecycle — invitations, role changes, suspensions, access reviews.
CRUD on ClientUsers, PortalUserAccess, PortalProjects (add / hide / archive), and MagicLinks (reissue)Read on PortalSites, BrandThemes, EmailTemplates, DocumentShares, ApprovalRequests, StatusUpdates, Comments, ActivityFeed, ClientActivities for owned PortalSitesView ClientUsers.Email and ApprovalDecisions.SignatureBlobTrigger the client-user-invite workflow and issue ad-hoc magic-linksInternal Project owner. Publishes DocumentShares, ApprovalRequests, and StatusUpdates for own projects; reads ClientUser engagement on own projects.
CRUD on DocumentShares, ApprovalRequests, StatusUpdates, and Comments where the PortalProject.Project is one this user owns or is assigned to in Project ManagementRead on ClientUsers and ClientActivities scoped to own projectsRead on DocumentDownloads and ApprovalDecisions for own projectsCannot CRUD PortalSites, BrandThemes, EmailTemplates, or PortalUserAccess (Admin / Portal Manager own those)Customer-success operator. Watches client engagement across an account portfolio, follows up on inactive clients, escalates disengagement risk to Project Managers and Portal Manager.
Read on ClientUsers, ClientActivities, DocumentDownloads, ApprovalRequests, ApprovalDecisions, StatusUpdates, and ActivityFeed for ClientUsers within owned accountsReceive the client-activity-digest weekly email and the inactive-user-reminder ccCRUD on Comments and CommentReplies on own-account threadsCannot modify ClientUsers (Portal Manager owns), cannot publish documents or status updates (Project Manager owns)Limited internal contributor — a designer, engineer, analyst, or specialist who needs to participate in client conversations on own projects but not publish artifacts.
Read on DocumentShares, ApprovalRequests, StatusUpdates, and ActivityFeed for own projectsCRUD on Comments and CommentReplies on own-project threadsCannot publish DocumentShares, StatusUpdates, or ApprovalRequests (Project Manager owns)Cannot view ClientUsers.Email or ClientActivities| Posted At | Parent Type | Portal Project | Author Client User | Author Internal User |
|---|---|---|---|---|
| DocumentShare | PP-2886 | GK | AIU-378 | |
| ApprovalRequest | PP-4603 | LR | AIU-370 | |
| StatusUpdate | PP-1143 | WZ | AIU-379 | |
| DocumentShare | PP-5825 | NN | AIU-639 | |
| ApprovalRequest | PP-5299 | UD | AIU-496 | |
| StatusUpdate | PP-1444 | EC | AIU-571 |
External client user with approval authority. Acts on ApprovalRequests routed to self; reads own portal content; participates in comment threads.
Read on own PortalSite's exposed PortalProjects (via PortalUserAccess), DocumentShares, StatusUpdates, ApprovalRequests where RequestedFromClient = self, and ActivityFeed scoped to accessible projectsCRUD on ApprovalDecisions for own pending requests, Comments, CommentReplies, and DocumentDownloads (write on download)View MagicLinks issued to self via the inbound URL handler onlyCannot view other ClientUsers' email, cannot view ClientActivities, cannot access projects not granted via PortalUserAccessExternal client user with comment + read access. Same scope as Viewer but can post Comments and CommentReplies.
Read on own PortalSite's exposed PortalProjects, DocumentShares, StatusUpdates, ApprovalRequests, and ActivityFeed scoped to accessible projectsCRUD on Comments, CommentReplies, and DocumentDownloads (write on download)Cannot decide on ApprovalRequests (Approver only)Cannot view other ClientUsers' email or ClientActivitiesExternal client user with read-only access. The default tier for client stakeholders who need visibility but no contribution rights.
Read on own PortalSite's exposed PortalProjects, DocumentShares, StatusUpdates, ApprovalRequests, and ActivityFeed scoped to accessible projectsWrite only on DocumentDownloads (system-recorded on download)Cannot post Comments, cannot decide on ApprovalRequests, cannot view other ClientUsers' email or ClientActivitiesMake a protected project document available to the intended client audience and record explicit acknowledgment.
3 stages · 0 approvals
Capture the named client’s decision and reconcile the result with the originating application.
3 stages · 1 approval
Keep project communications relevant and follow up using permitted engagement evidence.
4 stages · 0 approvals
Create your ERP.AI account and get started with Proto.
We use essential cookies to run the site and optional cookies for features, analytics, and relevant content. See Cookie policy
We use cookies to enhance your experience, analyze site traffic, and serve relevant content. By clicking "Accept All," you agree to our use of cookies. You can customize your preferences at any time.
Learn more about how we use cookiesThese cookies are required for the website to function properly. They ensure security, enable basic features like page navigation, and store user session data. You cannot disable these cookies.
These cookies enable additional features that enhance your experience, such as live chat, video playback, personalized content recommendations, and remembering user preferences.
These cookies help us understand how visitors interact with our site by collecting anonymous usage data. This allows us to measure performance, detect issues, and continuously improve the user experience.
These cookies allow us and advertising partners, including X, to deliver ads tailored to your interests. They track browsing habits across sites to provide relevant advertising and measure ad effectiveness.