When the internal team needs a client decision (sign off a deliverable, accept a change order, approve an invoice, confirm a milestone), Project Manager creates an approval requests row: picks Type, requested from client (a named client user with role Approver), related document if applicable, source table + source record for the callback, optional requires signature and expires at. The new request creates a magic links row with Purpose: Approval action and expires at matching the request. The notification service delivers the branded approval template with the rendered Subject + Description and the magic-link URL to the confirmation page. The named client user opens a confirmation page, verifies their session and explicitly picks Approved / Rejected / requested changes, optionally adds Comments and a captured signature blob, and on a confirmed submission against the current request an approval decisions row writes (Sequence, Decision, Comments, signature blob if captured, from IP, user agent, signed at). The request Status flips to the matching enum and decided at stamps.
Record a decision on the exact request revision
Updates Approval requests, Approval decisions
ApprovalA person approves before the work moves on.
Reconcile the callback Project Manager
When the pending request is approved or rejected, the system reads source table + source record, resolves the appropriate integration endpoint (Project Management Tasks for Deliverable / Milestone types, Project Billing Invoices for Invoice type, an org-defined change orders endpoint for change order), and posts the decision back to the source — typically setting a client approval status enum and a client approval at date on the source record. The notification service notifies the internal requested by Project Manager + the project’s Account Manager with the decision, the comments captured on approval decisions, and the link back to the request thread. A re-decision (e.g. Approver flips Rejected → Approved after a resubmit) writes a new approval decisions line with a higher Sequence and stamps the prior line Superseded: true.
Track source acknowledgment separately from local consent
Updates Approval decisions
Preserve the evidence Portal Manager
Every client-side action — login, login-failed, magic-link redemption, document download, approval submission, comment post, profile update, reminder sent — writes a client activities row with occurred at, from IP, and user agent. The Client Activity Audit view + the Approvals Decision Audit report give Portal Manager, Account Manager, and Admin an auditable ledger that answers “what did this client see, when, and from where” for any external data-subject request. Client activity logs remain internal; client users cannot read them.
Retain the authorized decision trail
Updates Client activities, Approval decisions
Checks built in
What Client Collaboration Portal enforces at each step.
A GET request or link preview must never approve work.
Reject expired, cancelled, reassigned or stale-revision decisions.
Keep failed and unknown callbacks pending reconciliation under the original idempotency key.
Internal Project owner. Publishes document shares, approval requests, and status updates for own projects; reads client user engagement on own projects.
Owns the client users list and access grants for one or more portal sites. The day-to-day operator of the external user lifecycle — invitations, role changes, suspensions, access reviews.
Set up Client Collaboration Portal your way.
Start free, then use Proto to change fields, steps and approvals before your team goes live.
We use essential cookies to run the site and optional cookies for features, analytics, and relevant content.
See Cookie policy
Manage Your Cookie Preferences
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.
Your browser's Global Privacy Control signal is honored: advertising cookies are off.
These 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.