User
Client Portals
Screen guide
Before you start
Use the account and workspace that own the relevant records. The feature also needs to be enabled for this installation and plan.
Open this feature
- Open /portal/client-portals on your site.
Steps
Use Enter client portal
- Open /client/login on your application domain, using the workspace account for this task.
- Find the form containing Password, Confirm password. Complete the relevant fields using the table below. Fields can appear or change after you select an option.
- Select Enter client portal. Check the current record, recipients, amount or destination before confirming when those values apply.
- If the application identifies a missing or invalid field, correct that field and submit again. If an external request or payment has an uncertain outcome, check its history before repeating it.
| Field | What to enter or choose |
|---|---|
| Password | Required. Enter the value privately from your account or the service configuration. Do not use sample credentials from a guide. |
| Confirm password | Required. Enter the value privately from your account or the service configuration. Do not use sample credentials from a guide. |
Use Update password
- Open /client/projects on your application domain, using the workspace account for this task.
- Find the form containing Required to change password / Not required for first setup. Complete the relevant fields using the table below. Fields can appear or change after you select an option.
- Select Update password. Check the current record, recipients, amount or destination before confirming when those values apply.
- If the application identifies a missing or invalid field, correct that field and submit again. If an external request or payment has an uncertain outcome, check its history before repeating it.
| Field | What to enter or choose |
|---|---|
| Required to change password / Not required for first setup | Enter the value privately from your account or the service configuration. Do not use sample credentials from a guide. The form’s example is Required to change password / Not required for first setup. Replace it with your own value. |
Use Submit request
- Open /client/projects on your application domain, using the workspace account for this task.
- Find the form containing Project, Request type, Title. Complete the relevant fields using the table below. Fields can appear or change after you select an option.
- Select Submit request. Check the current record, recipients, amount or destination before confirming when those values apply.
- If the application identifies a missing or invalid field, correct that field and submit again. If an external request or payment has an uncertain outcome, check its history before repeating it.
| Field | What to enter or choose |
|---|---|
| Project | Choose No specific project. |
| Request type | Required. Choose General request, Revision request, Campaign request, Asset request. |
| Title | Required. Enter the title for this task, using the help or example shown by the form. The form’s example is Example: Update homepage CTA before launch. Replace it with your own value. Maximum 160 characters. |
| Request brief | Required. Enter the request brief for this task, using the help or example shown by the form. The form’s example is Describe the change, goal, deadline, links, screenshots, Loom URL, or context your agency should know.. Replace it with your own value. |
| Priority | Required. Choose Normal, High, Urgent. |
| Needed by | Enter the needed by for this task, using the help or example shown by the form. |
Use Share Access
- Open /portal/client-portals on your application domain, using the workspace account for this task.
- Select the intended record or item first and review its displayed values. There is no separate input form described for this control.
- Select Share Access. Check the current record, recipients, amount or destination before confirming when those values apply.
- If the application identifies a missing or invalid field, correct that field and submit again. If an external request or payment has an uncertain outcome, check its history before repeating it.
Fields and choices
Field descriptions appear beside each task above so that separate forms are not mixed together.
Check the result
- Stay in the same account/workspace and reopen the intended record or result screen.
- For saved settings, compare the displayed values with the choices you made. For filters and previews, check the current result scope.
- For queued or external work, inspect its status/history and provider result where applicable. A successful save does not by itself prove message delivery, publication, payment completion or provider approval.
Common problems
| Problem | What to check |
|---|---|
| The screen or action is missing | Check the correct workspace account, role, enabled app and plan. A hidden action is not fixed by typing an internal endpoint. |
| A field is rejected | Read its validation message, choose from the offered options and check the relevant format or limit. Do not substitute a database ID for a displayed choice. |
| A list is empty | Check the selected workspace, search text, date range and status filters. Clear one filter at a time before concluding that records are missing. |
| A request is still pending | Check its status/history before repeating it. For messages, publishing, imports and payments, a submitted request can finish later or fail separately. |
Technical reference
Role-scoped source references
Pinned commit: 40d27448e4517301d3d8f5a27ca0c7531c51f136
- modules/AppClientPortals/Http/Controllers/ClientPortalAuthController.php
- modules/AppClientPortals/Http/Controllers/ClientPortalController.php
- modules/AppClientPortals/Livewire/ClientPortalIndex.php
- modules/AppClientPortals/resources/views/auth/accept-invite.blade.php
- modules/AppClientPortals/resources/views/auth/forgot-password.blade.php
- modules/AppClientPortals/resources/views/auth/login.blade.php
- modules/AppClientPortals/resources/views/auth/reset-password.blade.php
- modules/AppClientPortals/resources/views/livewire/index.blade.php
- modules/AppClientPortals/resources/views/portal/approvals.blade.php
- modules/AppClientPortals/resources/views/portal/deliverables.blade.php
- modules/AppClientPortals/resources/views/portal/exports.blade.php
- modules/AppClientPortals/resources/views/portal/files.blade.php
- modules/AppClientPortals/resources/views/portal/profile.blade.php
- modules/AppClientPortals/resources/views/portal/project-show.blade.php
- modules/AppClientPortals/resources/views/portal/projects.blade.php
- modules/AppClientPortals/resources/views/portal/reports.blade.php
- modules/AppClientPortals/resources/views/portal/requests.blade.php
- modules/AppClientPortals/resources/views/portal/reviews.blade.php
- modules/AppClientPortals/resources/views/portal/timeline.blade.php
Source-only route information
| Method | Source-default route |
|---|---|
| GET | /portal/client-portals |
| GET | /client/login |
| POST | /client/login |
| POST | /client/logout |
| GET | /client/forgot-password |
| POST | /client/forgot-password |
| GET | /client/reset-password/{token} |
| POST | /client/reset-password |
| GET | /client/access/{token} |
| GET | /client/invites/{token} |
| POST | /client/invites/{token} |
| GET | /client/projects |
| GET | /client/profile |
| POST | /client/profile/password |
| GET | /client/search |
| GET | /client/projects/{project} |
| GET | /client/timeline |
| GET | /client/deliverables |
| GET | /client/requests |
| POST | /client/requests |
| GET | /client/reviews |
| GET | /client/approvals |
| POST | /client/reviews/{review}/comments |
| POST | /client/approvals/{approval}/decision |
| GET | /client/files |
| GET | /client/files/{file}/download |
| GET | /client/reports |
| GET | /client/exports |
| GET | /client/exports/{export}/download |
| GET | /client/{portalSlug} |
| GET | /portal/client/login |
| POST | /portal/client/login |
Unmapped fields — not user instructions
These fields belong to this role’s source handler, but their screen labels were not confirmed.
| Source key | Handler |
|---|---|
| modules/AppClientPortals/Http/Controllers/ClientPortalAuthController.php | |
| due_date | modules/AppClientPortals/Http/Controllers/ClientPortalController.php |
| body | modules/AppClientPortals/Http/Controllers/ClientPortalController.php |
| annotation_type | modules/AppClientPortals/Http/Controllers/ClientPortalController.php |
| marker_x | modules/AppClientPortals/Http/Controllers/ClientPortalController.php |
| marker_y | modules/AppClientPortals/Http/Controllers/ClientPortalController.php |
| video_timestamp | modules/AppClientPortals/Http/Controllers/ClientPortalController.php |
| pdf_page | modules/AppClientPortals/Http/Controllers/ClientPortalController.php |
| thread_key | modules/AppClientPortals/Http/Controllers/ClientPortalController.php |
| parent_id | modules/AppClientPortals/Http/Controllers/ClientPortalController.php |
| decision | modules/AppClientPortals/Http/Controllers/ClientPortalController.php |
| notes | modules/AppClientPortals/Http/Controllers/ClientPortalController.php |