Launch onboarding portals for clients, track progress, manage tasks, and communicate with contacts
A portal is an onboarding made for one company from a template. This guide shows MSP staff how to create a portal, run it day to day, and finish it. Company users should read Open your onboarding portal.
Each portal is linked to a project. Open the portal’s project from Projects to manage it.
Before you start
Client Onboarding is turned on for your organization.
You need Projects & Client Onboarding Read access to view portals. Creating or changing portals needs Write access, or the Run client portals option, and an active subscription. Convert to Client needs Manage access. See Permissions.
Client Portal and its Pages, Activity, Key dates, and Portal settings sections
Preview as a client
View as in the page header
If the project has more than one portal that is not archived, switch between them with Portal at the right end of the tabs row. On a phone, open Actions first. Archived portals are not listed there; open them from Settings > Projects > Client Portals > Portals.
Start from Projects
1
Start a new project
Go to Projects and select New project.
2
Choose the template and company
Pick an onboarding template, choose the Company, enter a Project name, and set the Start date and the required End date. MSPortal fills in the end date from the template’s duration when it has one, and your change stays. Next stays off while the end date is empty or before the start date. Select Next.
3
Name the portal and add contacts
Enter the Portal name and an optional Description. Add each contact with a name, email, and role, or leave contacts empty while you prepare a draft. Select Next.
4
Create it
Review the details and select Start onboarding. MSPortal creates a Draft portal and its linked MSPortal project. Copy any invite links you want to share by hand, then select Open project.
The portal name and contacts step appears only when the template’s project type has Onboarding turned on. If your PSA owns project creation for the company, MSPortal creates the portal and tells you the project was not created. Link the portal to a PSA project when you start it. Do not run the wizard again, because that would create a second portal.Creation also runs any configured onboarding automation. Linking a project and creating tickets are real actions, even on a draft.
Create a portal from Settings
Use this path when you want to combine several template modules or set the portal language.
1
Open the portal list
Go to Settings > Projects > Onboarding Portals > Portals and select Create Portal.
2
Choose the company
Search for the company and select Continue.
3
Choose the template and name the portal
Select one or more Template Modules. Review the Portal Name, optional description, and Portal Language.
4
Add contacts
Enter each contact’s name, email, and an available role. Rows without both a name and an email are not saved, so check the contact list afterward. Select Create Portal.
5
Link a project
The portal is saved as a Draft first. On the Link Project step, choose a Project system and link or create a project, or select Skip. Copy the invite links shown, if you want to share them by hand.
If a message says a module or some configuration could not be copied, open the saved draft and check it before you try again. The portal may already exist.
Add a template to a portal
When a client takes on another service during onboarding, add that service’s template to the portal you already have instead of building a new one. You can start with a main template and add smaller service templates as the client picks them.
1
Open the MSP dashboard
Open the project and go to Overview > MSP Dashboard. Open Portal actions in Portal status. Add template is in the menu while the portal is a Draft or Active.
2
Pick the templates
Select Add template and tick one or more Template Modules. Templates the portal already has show Already on this portal and can’t be picked again.
3
Add them
Select Add to portal.
The new phases go after the portal’s last phase, and their dates count from today. Internal-only items stay hidden from the client, tasks for a team role go to the company’s holder of that role, and the template’s pages, key dates, and client actions come with it. Nothing already on the portal changes. If the portal has a linked project, the new tasks have no tickets yet: use Create tickets in the Portal actions menu to add them. See Create tickets from tasks.If a message says some settings did not copy, check the new items’ forms, emails, pages, and assignees.
Update a portal from its template
When you change a template after a portal was built from it, bring those changes into the open portal without archiving it and starting over. You pick each change before anything is written.
1
Open Update from template
Open the project and go to Overview > MSP Dashboard. Open Portal actions and select Update from template. It shows while the portal is a Draft or Active.
2
Review the changes
The preview lists every change made to the template since the portal was built, in four groups, each with a checkbox:
New in the template: new phases with their items, and new tasks, approvals and documents in existing phases.
Changed in the template: the name, details and settings of phases, open tasks, and documents that aren’t approved yet.
Removed from the template: tasks, approvals and documents deleted from the template, and phases deleted with everything in them. Items nobody has worked on are ticked for you. A task that was started or has comments is left unticked, so you can check it first.
Team role owners: open MSP tasks whose template team role has a holder at the company. Filling an empty owner is ticked for you. Replacing a different person is left unticked, in case someone reassigned the task on purpose.
3
Apply
Untick anything you want to leave as it is, or use Select all, then select Apply N changes. If any removals are ticked, a confirmation lists them first: type DELETE and select Remove and apply.
New tasks land next to their neighbors from the template, with the due dates, forms, emails, checklists, dependencies and team-role owner a new portal would give them. Items you added by hand keep their place.Progress and due dates stay as they are. Completed tasks, uploaded documents, decided approvals, sent or answered surveys, and tasks holding a client’s signature, credentials, files, form entries, checked checklist items or a linked PSA ticket are never removed, even if they were deleted from the template. Items from an archived template stay too. A deleted phase that still holds any of them, or an item you added by hand, stays with those items in it. Removals need the Manage onboarding permission; without it, the preview leaves them out. A task’s type changes only before the task starts, and a document’s source changes only before anything is uploaded. If the template was archived or deleted, there is nothing to compare, and the dialog says so. Each update is recorded as Updated From Template in the portal’s activity.
Start a portal
1
Open the MSP dashboard
Open the project and go to Overview > MSP Dashboard.
2
Select Start Portal
Start Portal shows while the portal is a Draft. If the portal has no linked project, the first screen is Link Project. Link or create a project, or select Skip. If a project is already linked, Start Portal skips that screen and goes to the confirmation.
3
Choose ticket creation
If the portal has a linked project, a checkbox offers to create a project ticket for every task that has no ticket yet. Leave it off if you only want the link.
4
Send the invitations
Select Start & Send Invites. This activates the portal and queues an invitation email for each contact. With no contacts, nothing is sent.
The email is queued, not delivered. Check Team & Contacts afterward to confirm each contact’s Portal access.
Portal lifecycle
Status
What it means
Draft
Being prepared. Clients cannot open it.
Active
Live. Clients can open it and complete tasks.
Completed
You marked it finished. Clients can still read it but cannot change anything.
Converted
The company was activated and completed tasks were copied into Planner. Existing portal sessions were revoked.
Archived
Kept for history. Client access is revoked. Restore returns it to Draft.
Read the MSP dashboard
Overview > MSP Dashboard shows an Operational snapshot with the status, start date, current phase, progress, and key-date countdowns. Next to it you get:
Phase readiness, with progress, target dates, and blockers for each phase.
Needs attention, a list of overdue, blocked, and active tasks. Select one to open it.
Client Pages, the pages assigned to the portal, with a Review link.
A summary of open tasks, unassigned open tasks, pending decisions, action items, and hours.
The snapshot also holds the portal’s controls in one row: a Portal actions menu, and beside it the one button that moves the portal to its next status.
Control
Shows when
Start Portal
The portal is a Draft
Complete Portal
The portal is Active
Convert to Client
The portal is Completed
The Portal actions menu lists the actions that apply:
Create tickets for N tasks or Create PSA tickets for N tasks
The portal has a linked project and some tasks have no ticket
Unlink Project
The portal has a linked project
Archive
The portal is Completed or Converted
Manage tasks
Open Project Plan > Tasks. Tasks are grouped by phase, with a count and progress bar on each phase. Use Search tasks… to filter.
Change a task’s status
1
Click the status icon
Select a task’s status icon to move it forward from Pending to In Progress to Completed. Right-click it to choose any status, including Blocked.
2
Update a whole phase
Use Start Phase, Complete Phase, or Reopen Phase on the phase header. Complete All Tasks marks every task in the phase done at once.
To change which phases and tasks exist, edit the template and create a new draft. The Tasks view manages the work in a running portal. It does not rebuild the structure.
Assign tasks
1
Open the assignee area
Select the assignee name, or Unassigned, on a task.
2
Choose a team member
Search and select a person. Choose Clear assignment to remove it.
To assign many tasks, select Reassign, check the tasks (hold Shift to select a range), then select Assign.
Work with a task
Select a task to open its details. They show Status, Assignment, Evidence, Due, and Portal comments. For client tasks you can also choose Which contacts can see this task?, with All contacts as the default. Set phase target dates with Set phase dates or Edit phase dates. The change applies to this portal only and does not change the template. With Status sync on, a task due date set here is also written to the task’s linked PSA ticket. Phase dates set here stay in this portal; to move phase dates in your PSA, reschedule the linked project’s phases in Projects, or change them in your PSA.Each task has two comment streams. Use the filter to switch between Client-facing, Both, and Internal.
Client-facing comments are shared with the client, who can reply.
Internal notes are for your team. Clients never see them.
Send task emails
1
Choose what to send
Select Send All Tasks for a summary of every task, Send Phase Email on a phase header, or Send reminder email on one task.
2
Check the recipients
Review the recipients, subject, and body. You can add other email addresses and edit the text.
3
Send
Select Send Email.
Schedule a meeting
1
Open the meeting task
On a Meeting / Call task that has no meeting yet, select the Schedule icon.
2
Set the details
Enter the Subject, Date & Time, and Duration. Add optional Notes.
3
Choose attendees
Check the portal contacts who should attend. You can add other email addresses.
4
Schedule
Select Schedule Meeting. MSPortal emails each attendee an invitation with a calendar file and shows Meeting invite sent. The invite has no video call link, so add a link or joining details to the Notes if you need them. The date and time in the email use your time zone, with the zone name, so attendees elsewhere can convert them. Use Cancel Meeting in the task details to cancel it.
Review documents
Client uploads and document requests for the portal show in Files & Forms > Documents.
1
Open the request
Select the document request. The dialog lists each uploaded file with who uploaded it and when.
2
Review the file
Select Download file to open it. Select Review, add optional Review notes (optional), then select Approve or Reject. A rejection reason shows to the client as Needs Re-upload.
Document statuses are Requested, Uploaded, Approved, and Rejected. Required documents that are still missing are flagged. Use Show on portal to control whether a document is visible to the client.
Review pages on a portal
Open Client Portal > Pages. The left list shows Assigned pages with Visible and Hidden counts and a search box. The right side previews the selected page.
A Shared page follows the library page. Editing the library page changes what the portal shows.
A Portal snapshot keeps its own saved content.
Each page shows how many contacts have viewed it, for example Viewed by 2 of 3 contacts.
To change what the portal shows:
1
Add a page
Select the Add page menu. Choose New page to write one for this portal, or Import page to pick one from your library.
2
Edit or remove a page
Select a page. Edit is available for pages that belong only to this portal. Remove takes a page off the portal. Removing a shared page keeps it in your library.
Template page assignments are copied when the portal is created. Changing a template link does not change existing portals. See Client Pages.
Change portal settings
1
Open the settings
Go to Client Portal > Portal settings.
2
Name the portal
Edit Portal name and Subtitle. Clients see the subtitle under the portal title, so keep internal notes out of it. Leave it empty to show none.
3
Choose how tasks open
Under Client task editing, choose Pop-up or Inline editing.
4
Control what clients see ahead of time
Turn on Reveal phases progressively, Hide blocked tasks, or Hide future-dated tasks as needed.
5
Save
Select Save Changes, then use View as to check the result. These settings apply to this portal only and do not change the template.
Review activity
Open Client Portal > Activity for a timeline of recorded events, plus flow diagnostics such as average task time. Use Search activity… to search by description, actor, or email. Use the type filter, starting at All Types, to show only portal, phase, task, document, contact, communication, or approval events. Select Load more activity for older entries.Events include status changes, task completions, document uploads and reviews, invitations and contact access, signatures, credential submissions, meetings, comments, and questions. A recorded event shows that an action happened. It does not prove an email was delivered.
Manage contacts
Open Team & Contacts. Client contacts and your own staff share one list.
Add a contact
1
Add a row
Select Add Contact. A new row opens at the end of the client list.
2
Fill it in
Enter the contact’s name and email. Choose a role if you want one.
3
Save
Select the check mark or press Enter. Select the cross or press Escape to discard the row. MSPortal asks before you leave with an unsaved contact.
Roles come from Settings > Projects > Onboarding Portals > Client roles. They help identify each person’s responsibility and can affect task visibility.
Send, replace, or revoke access
The Portal access column shows Active, Not signed in, Link expired, or Revoked, with the last visit and visit count. Change a role from the Portal role menu on the row. Open the … menu on a contact for these actions.
Action
What it does
Send invite email
Sends the access link again. It is disabled until the portal is started.
Regenerate invite link
Creates a new link. The old link and active sessions stop working.
Revoke access
Blocks the contact right away. Restore access with new link then appears.
Remove contact
Takes the contact off the portal and ends their sessions.
Under Your team, open a staff member’s … menu to reassign all of their portal tasks to someone else, or to unassign them.
Preview as a client
1
Open View as
In the page header, select View as. On a phone, open Actions first. The control stays in the header on every portal section and follows the selected portal.
2
Pick a contact or role
Choose a contact. If the portal has no contacts, choose a client role under Roles.
3
Look around
The portal opens in a new tab with a Preview mode banner. Click through tasks and forms freely.
Preview works on a Draft portal, so you can test a template before any client is invited. Nothing you enter in preview is saved or triggers a notification. Preview needs Projects & Client Onboarding Write access. It does not test a real invitation, email verification, or a saved submission. You can also preview from the portal list under Settings > Projects > Onboarding Portals > Portals.
Review credentials, secure files, and signatures
For a credential handoff or a secure file, read Retrieve onboarding credentials and secure files before you choose Reveal & Delete or Download & Destroy. Those actions use up the stored submission.To review a signature, open the signature task. You see the signature image, the signer’s name, email, IP address, and time, and a content hash you can copy. If a document was attached, the signed document is available too.For a form task, open the saved entry. Select Create asset to send the values to Hudu or IT Glue, or Assets to manage ones you already created. See Onboarding Forms.
Link a project, create tickets, and log time
Use Link Project to choose MSPortal Projects or the company’s PSA. MSPortal Projects tracks work in MSPortal with no PSA. PSA choices depend on the company’s PSA mapping and your PSA defaults.
Link a portal to a project
1
Open Link Project
On Overview > MSP Dashboard, open Portal actions and select Link Project. It shows for an active portal that has no linked project. For a draft, link on the Start Portal screen.
2
Choose the project system
Choose a Project system.
3
Select or create a project
On Select Existing, search and pick a project, then select Link Project. On Create New, enter a Project Name, set a Start Date and an End Date, and add an optional description. Then select Create & Link. The End Date is required and has no default, so the button stays off until you pick it and it is on or after the start. These dates are the ones MSPortal sends to ConnectWise, Autotask or Halo when it creates the project there.
Create New on the Start Portal screen, with the Start Date and the required End Date filled in. Here the button reads Create & Continue.
Linking saves right away. A badge on the overview shows the linked project with a link to open it.
Create tickets from tasks
1
Open the ticket dialog
On the MSP dashboard, open Portal actions and select Create tickets for N tasks or Create PSA tickets for N tasks.
2
Choose tasks
Check the tasks that need tickets. Tasks that already have a ticket are disabled.
3
Create
Select Create. Each selected task gets a ticket under the linked project, and its row shows the ticket number. Select the badge to open the ticket.
PSA ticket creation needs the PSA defaults below. The dialog tells you which are missing.
Log time on a task
1
Open Log time
On a task with a linked ticket, select Log time.
2
Enter the time
Set Date Worked, Start Time, End Time, and optional Notes. Choose a Billing status, and a Work role and Work type for a PSA.
3
Save
Select Log Time. The entry is created on the linked ticket. A single entry cannot exceed 24 hours.
Set PSA project defaults
Go to Settings > Projects > Onboarding Portals > PSA projects. This section appears only when a PSA integration is active. Choose values from the drop-downs. They come from your synced PSA data, so you never type an ID.
Setting
What it does
Auto-create tickets
Creates a ticket for each task when a project is linked
Status sync
Keeps task and ticket status in sync both ways. A status change in the portal is sent to the PSA right away, and PSA changes come back every 10 minutes. A task due date changed in the portal is also sent to the PSA ticket; phase dates are not synced.
Default billable
New time entries default to billable
Default billing status
Billing status for new onboarding time entries
Provider Defaults
Default board or team, priority, status, and ticket type for each PSA, plus Halo category, impact, and urgency
Time entry defaults
Default work role and work type for time entries
Select Save Changes when you are done. A stale ticket status can mean a sync has not finished. Check for a sync failure before you treat a ticket as complete.
Task status syncs both ways between an onboarding portal and its PSA tickets. A task due date you change in the portal is sent to the linked PSA ticket, but a due date changed in the PSA does not come back to the portal. Clearing a due date in the portal leaves the PSA date as it is. Phase dates you edit in the portal stay in MSPortal. For what writes back from the linked project itself, see What writes back to your PSA.
Export to Excel
Audience: MSP staff with onboarding access. Company users do not see the button, because the workbook includes MSP-only items and every client response.Open the portal’s project and select Export to Excel in the project header to download the project workbook. See Export a project to Excel.A portal with no linked project yet, or a staff member without project access, still opens the company’s Onboarding tab. There, choose the portal and select Export to Excel in the page header to download the portal workbook. Neither export changes the portal.The portal workbook always has an Overview sheet. Other sheets appear only when the portal has rows for them.
Sheet
Contents
Overview
Company, status, progress, start, completion and conversion dates, linked project, a phase summary with target dates and completed items, key dates, client contacts with last access and visit count, and a linked list of the other sheets.
Items
Every task, document, approval and standalone survey in phase order, with type, owner, assignee, status, required and client-visible flags, priority, milestone, due, started and completed dates, estimated and actual hours, linked ticket, comment count and description. A Total row sums hours when any item has them.
Responses
What the client and your team entered: checklist items with who checked them, form answers per entry, text responses, signatures, approval decisions with notes, and survey answers.
Documents
Requested documents with status, uploaded file names, uploader, review date, review notes and external link.
Each data sheet has a frozen, filterable header row. Files stay in MSPortal and the workbook lists their names. Credentials and secure file contents are never exported. The workbook uses your tenant’s brand color and your current language. To export the plan rather than a client’s progress, use the Excel tab in the template’s Import / Export dialog. See Templates.
Complete, convert, and archive a portal
1
Review the work
Check that tasks are complete and documents are approved.
2
Complete the portal
On Overview > MSP Dashboard, select Complete Portal and confirm. This marks the portal finished. It does not complete open tasks or approve documents. Clients keep a read-only view.
3
Convert the client (optional)
With Projects & Client Onboarding Manage access, select Convert to Client. This activates the company, copies completed onboarding tasks into Planner, marks the portal Converted, and revokes current portal sessions. Review the completed work first.
4
Archive when you no longer need it
Open Portal actions, select Archive and confirm. Archiving revokes all client sessions. The data is kept.
Manage portals from Settings
Settings > Projects > Onboarding Portals > Portals lists every portal across companies. Filter by All, Active, Draft, Finished, or Archived, search by name, and select a portal to see its detail.
Action
What it does
Open
Opens the portal
View as
Opens a client preview
Archive
Revokes all client sessions. Data is kept and you are asked to confirm.
Restore
Returns an archived portal to Draft
Delete
Permanently removes the portal with its phases, tasks, documents, and contacts. You are asked to confirm.
Archive takes effect immediately. Clients lose access until you restore and start the portal again. Delete cannot be undone.
Use the dashboard widgets
Your MSP dashboard shows two onboarding widgets when you have onboarding access and active portals exist.
Active Onboarding shows a tile for each active portal with the company, portal name, and a progress bar. Select a tile to open the portal.
My Onboarding Tasks lists the onboarding tasks assigned to you across active portals. Select a task to open it.
Troubleshooting
Problem
What to do
A completed portal still lets nobody edit
That is expected. Completed portals are read-only. Archive and restore it only if you need to reopen it as a draft.
Restore did not reopen the portal to clients
Restore returns the portal to Draft. Review it and select Start Portal again.
A template change is not in this portal
Portals copy the template when created. Create a new draft.
Two contacts see different tasks
Check each contact’s role, the task’s Visibility, and Portal settings. Use View as for each.
There is no PSA project option
Check the company’s PSA mapping, the active PSA integration, and your permissions. MSPortal Projects is the native option.
A creation or ticket error left a partial result
Open the saved portal and check its modules and existing tickets. Retry only what is missing.
Send invite email is disabled
The portal is still a Draft. Start it first.
Frequently asked questions
Does Completed mean every task passed?
No. Complete Portal is your decision. Check open tasks, evidence, and documents before you confirm.
Is Convert to Client only a status change?
No. It activates the company, copies completed tasks into Planner, marks the portal converted, and revokes current sessions. It needs Projects & Client Onboarding Manage access.
Can I undo a new portal by closing the project dialog?
No. Start onboarding or Create Portal already saved the draft. A project link or new project also stays once its action succeeds.
Can I safely open a credential to see if it arrived?
No. Opening the task only shows its status. Reveal & Delete and Download & Destroy use up the submission. Read the retrieval guide first.
If I change a task's status or dates in the portal, do I update the PSA too?
No, with Status sync on. Task status syncs with the linked PSA ticket both ways, and a task due date you change in the portal is sent to the PSA ticket. Phase dates set in the portal are the exception: reschedule the linked project’s phases in Projects, or change them in your PSA.
Why do I see the Link Project screen when I start a portal?
The portal has no linked project yet. Link or create one, or select Skip. A portal that already has a project goes straight to the confirmation.
Does Schedule Meeting create a video call?
No. It emails a calendar invite with no video link. Add a link to the Notes if attendees need one.
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"MSPortal.ai Documentation","colors":{"primary":"#0C8376","light":"#15B79E","dark":"#107569"},"logo":{"light":"https://mintcdn.com/msportal/KnbwIXtZSTlVJTt6/logo/light.svg?fit=max\u0026auto=format\u0026n=KnbwIXtZSTlVJTt6\u0026q=85\u0026s=eb69f6d6bf16b2c401770aef19ade1d2","dark":"https://mintcdn.com/msportal/KnbwIXtZSTlVJTt6/logo/dark.svg?fit=max\u0026auto=format\u0026n=KnbwIXtZSTlVJTt6\u0026q=85\u0026s=03f8df7191e7a8ea7da084df57f6107f"},"favicon":"https://mintcdn.com/msportal/KjsKytvp08K0bejm/favicon-16x16.png?fit=max\u0026auto=format\u0026n=KjsKytvp08K0bejm\u0026q=85\u0026s=378df7f039bbff7885231fec799d29ac","navbar":{"links":[{"href":"/release-notes/roadmap","label":"Roadmap"},{"href":"mailto:support@msportal.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.msportal.ai"}},"footer":{"socials":{"linkedin":"https://linkedin.com/company/msportal"},"links":[{"header":"Resources","items":[{"label":"MSPortal.ai","href":"https://msportal.ai"},{"label":"Support","href":"mailto:support@msportal.ai"},{"label":"Status","href":"https://status.msportal.ai"}]}]},"fonts":{"family":"Inter"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"msportal","hasAudioNarration":false,"actualSubdomain":"msportal","customDomains":["docs.msportal.ai"],"gitSource":{"type":"github","owner":"msportal-ai","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6af75ae5643517979ab0f116","clientVersion":"0.0.4131","searchFilterCounts":[{"language":"default","tag":"MSP Guides","count":470},{"language":"default","tag":"API Reference","count":433},{"language":"default","tag":"Operations","count":126},{"language":"default","tag":"Planning","count":101},{"language":"default","tag":"Integrations","count":95},{"language":"default","tag":"Projects","count":75},{"language":"default","tag":"Protection","count":59},{"language":"default","tag":"Standards","count":56},{"language":"default","tag":"Client Onboarding","count":48},{"language":"default","tag":"Compliance","count":45}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#page-title{font-size:1.75rem;line-height:2.125rem}#header .prose.text-lg{font-size:1rem;line-height:1.5rem;color:rgb(var(--gray-500))}#content-area .prose{font-size:0.9375rem;line-height:1.6}#content-area .mdx-content{margin-top:1.5rem}#content-area .mdx-content h2{font-size:1.25rem;line-height:1.75rem;margin-top:2.25rem;margin-bottom:0.75rem}#content-area .mdx-content h3{font-size:1.0625rem;line-height:1.5rem;margin-top:1.75rem;margin-bottom:0.5rem}#content-area .mdx-content li{margin-top:0.25em;margin-bottom:0.25em}#content-area .steps{margin-top:1rem}#content-area .step{padding-bottom:0.75rem}#content-area [data-component-part=\"step-title\"]{margin-top:0.25rem;margin-bottom:0.375rem}#content-area [data-component-part=\"accordion-content\"] td,#content-area [data-component-part=\"accordion-content\"] th{min-width:0}@media (max-width: 639px){#content-area [data-component-part=\"accordion-content\"] td:last-child{min-width:16rem}}#content-area [data-table-wrapper]>[data-component-part=\"scroll-area-viewport\"]{-webkit-mask-image:linear-gradient(\n to right,\n transparent 0,\n black min(var(--scroll-area-fade-size), var(--scroll-area-overflow-x-start, 0px)),\n black calc(100% - min(var(--scroll-area-fade-size), var(--scroll-area-overflow-x-end, 0px))),\n transparent 100%\n );mask-image:linear-gradient(\n to right,\n transparent 0,\n black min(var(--scroll-area-fade-size), var(--scroll-area-overflow-x-start, 0px)),\n black calc(100% - min(var(--scroll-area-fade-size), var(--scroll-area-overflow-x-end, 0px))),\n transparent 100%\n )}#content-area [data-table-wrapper]>[data-component-part=\"scroll-area-scrollbar\"][data-has-overflow-x]{opacity:1;pointer-events:auto}#sidebar-content li>a,#sidebar-content li>button{font-size:0.875rem;line-height:1.25rem;padding-top:0.3125rem;padding-bottom:0.3125rem}#sidebar-content li>a span{hyphens:manual}#sidebar-content a.nav-anchor{margin-bottom:0.25rem;font-size:0.875rem}#sidebar-content ul:has(>li>a.nav-anchor){margin-bottom:1rem;padding-bottom:0.5rem;border-bottom:1px solid rgb(var(--gray-100))}.dark #sidebar-content ul:has(>li>a.nav-anchor){border-bottom-color:rgb(255 255 255 / 0.1)}#table-of-contents{font-size:0.8125rem;line-height:1.25rem}#sidebar-content li>a>div:first-child:has(>svg,>img){display:none}:root{--sidebar-width: 16rem}@media (min-width: 1024px){#navbar .max-w-8xl,#body-content{max-width:none}#content-container{max-width:88rem;margin-left:0;padding-left:2.5rem;padding-right:2rem;column-gap:2.5rem;justify-content:space-between}}@media (min-width: 1280px){#content-area{width:calc(100% - 16.5rem);max-width:52rem;margin-left:0}#navbar.is-wide~#body-content #content-container{max-width:none}#navbar.is-wide~#body-content #content-area{width:100%;max-width:none}#table-of-contents-layout{width:14rem;padding-left:0}#table-of-contents{width:14rem}}.roadmap-embed{display:block;border:0;background:transparent;color-scheme:light}.dark .roadmap-embed{color-scheme:dark}#content-area img[width=\"390\"],#content-area img[width=\"780\"]{width:100%!important;max-width:300px!important;height:auto!important;margin-left:auto;margin-right:auto}"}],"page":{"pagePath":"user-guides/client-onboarding/managing-portals","slug":"/user-guides/client-onboarding/managing-portals","pageMetadata":{"title":"Managing Portals","description":"Launch onboarding portals for clients, track progress, manage tasks, and communicate with contacts","icon":"bars-progress","href":"/user-guides/client-onboarding/managing-portals"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Launch onboarding portals for clients, track progress, manage tasks, and communicate with contacts\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Frame,Heading,Note,OptimizedImage,Step,Steps,Table,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`A portal is an onboarding made for one company from a template. This guide shows MSP staff how to create a portal, run it day to day, and finish it. Company users should read `,_jsx(_components.a,{href:`/user-guides/client-onboarding/open-your-onboarding`,children:`Open your onboarding portal`}),`.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Each portal is linked to a project. Open the portal’s project from `,_jsx(_components.strong,{children:`Projects`}),` to manage it.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`before-you-start`,children:`Before you start`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Client Onboarding is turned on for your organization.`}),`\n`,_jsxs(_components.li,{children:[`You need `,_jsx(_components.strong,{children:`Projects \u0026 Client Onboarding`}),` Read access to view portals. Creating or changing portals needs Write access, or the `,_jsx(_components.strong,{children:`Run client portals`}),` option, and an active subscription. `,_jsx(_components.strong,{children:`Convert to Client`}),` needs Manage access. See `,_jsx(_components.a,{href:`/user-guides/client-onboarding/index#permissions`,children:`Permissions`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`You need a template. See `,_jsx(_components.a,{href:`/user-guides/client-onboarding/templates`,children:`Templates`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`find-your-way-around-a-portal`,children:`Find your way around a portal`}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Projects`}),`, choose `,_jsx(_components.strong,{children:`Project category > Onboarding projects`}),`, and open the project. The portal’s controls are spread across these places.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`What you want`}),_jsx(_components.th,{children:`Where it is`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Status, progress, phase readiness, needs-attention list, start and complete buttons`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Overview > MSP Dashboard`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Tasks, statuses, assignees, reminders`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Project Plan > Tasks`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Client contacts, invitations, access, and your team`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Team \u0026 Contacts`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Client uploads and document review`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Files \u0026 Forms > Documents`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Forms and form responses`}),_jsx(_components.td,{children:_jsx(_components.strong,{children:`Files \u0026 Forms > Forms`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Client pages, activity, key dates, portal settings`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Client Portal`}),` and its `,_jsx(_components.strong,{children:`Pages`}),`, `,_jsx(_components.strong,{children:`Activity`}),`, `,_jsx(_components.strong,{children:`Key dates`}),`, and `,_jsx(_components.strong,{children:`Portal settings`}),` sections`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Preview as a client`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`View as`}),` in the page header`]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`If the project has more than one portal that is not archived, switch between them with `,_jsx(_components.strong,{children:`Portal`}),` at the right end of the tabs row. On a phone, open `,_jsx(_components.strong,{children:`Actions`}),` first. Archived portals are not listed there; open them from `,_jsx(_components.strong,{children:`Settings > Projects > Client Portals > Portals`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`start-from-projects`,children:`Start from Projects`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Start a new project`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Projects`}),` and select `,_jsx(_components.strong,{children:`New project`}),`.`]})}),_jsx(Step,{title:`Choose the template and company`,children:_jsxs(_components.p,{children:[`Pick an onboarding template, choose the `,_jsx(_components.strong,{children:`Company`}),`, enter a `,_jsx(_components.strong,{children:`Project name`}),`, and set the `,_jsx(_components.strong,{children:`Start date`}),` and the required `,_jsx(_components.strong,{children:`End date`}),`. MSPortal fills in the end date from the template’s duration when it has one, and your change stays. `,_jsx(_components.strong,{children:`Next`}),` stays off while the end date is empty or before the start date. Select `,_jsx(_components.strong,{children:`Next`}),`.`]})}),_jsx(Step,{title:`Name the portal and add contacts`,children:_jsxs(_components.p,{children:[`Enter the `,_jsx(_components.strong,{children:`Portal name`}),` and an optional `,_jsx(_components.strong,{children:`Description`}),`. Add each contact with a name, email, and role, or leave contacts empty while you prepare a draft. Select `,_jsx(_components.strong,{children:`Next`}),`.`]})}),_jsx(Step,{title:`Create it`,children:_jsxs(_components.p,{children:[`Review the details and select `,_jsx(_components.strong,{children:`Start onboarding`}),`. MSPortal creates a `,_jsx(_components.strong,{children:`Draft`}),` portal and its linked MSPortal project. Copy any invite links you want to share by hand, then select `,_jsx(_components.strong,{children:`Open project`}),`.`]})})]}),`\n`,_jsxs(_components.p,{children:[`The portal name and contacts step appears only when the template’s project type has `,_jsx(_components.strong,{children:`Onboarding`}),` turned on. If your PSA owns project creation for the company, MSPortal creates the portal and tells you the project was not created. Link the portal to a PSA project when you start it. Do not run the wizard again, because that would create a second portal.`]}),`\n`,_jsx(_components.p,{children:`Creation also runs any configured onboarding automation. Linking a project and creating tickets are real actions, even on a draft.`}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-portal-from-settings`,children:`Create a portal from Settings`}),`\n`,_jsx(_components.p,{children:`Use this path when you want to combine several template modules or set the portal language.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the portal list`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings > Projects > Onboarding Portals > Portals`}),` and select `,_jsx(_components.strong,{children:`Create Portal`}),`.`]})}),_jsx(Step,{title:`Choose the company`,children:_jsxs(_components.p,{children:[`Search for the company and select `,_jsx(_components.strong,{children:`Continue`}),`.`]})}),_jsx(Step,{title:`Choose the template and name the portal`,children:_jsxs(_components.p,{children:[`Select one or more `,_jsx(_components.strong,{children:`Template Modules`}),`. Review the `,_jsx(_components.strong,{children:`Portal Name`}),`, optional description, and `,_jsx(_components.strong,{children:`Portal Language`}),`.`]})}),_jsx(Step,{title:`Add contacts`,children:_jsxs(_components.p,{children:[`Enter each contact’s name, email, and an available role. Rows without both a name and an email are not saved, so check the contact list afterward. Select `,_jsx(_components.strong,{children:`Create Portal`}),`.`]})}),_jsx(Step,{title:`Link a project`,children:_jsxs(_components.p,{children:[`The portal is saved as a `,_jsx(_components.strong,{children:`Draft`}),` first. On the `,_jsx(_components.strong,{children:`Link Project`}),` step, choose a `,_jsx(_components.strong,{children:`Project system`}),` and link or create a project, or select `,_jsx(_components.strong,{children:`Skip`}),`. Copy the invite links shown, if you want to share them by hand.`]})})]}),`\n`,_jsx(_components.p,{children:`If a message says a module or some configuration could not be copied, open the saved draft and check it before you try again. The portal may already exist.`}),`\n`,_jsx(Heading,{level:`2`,id:`add-a-template-to-a-portal`,children:`Add a template to a portal`}),`\n`,_jsx(_components.p,{children:`When a client takes on another service during onboarding, add that service’s template to the portal you already have instead of building a new one. You can start with a main template and add smaller service templates as the client picks them.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the MSP dashboard`,children:_jsxs(_components.p,{children:[`Open the project and go to `,_jsx(_components.strong,{children:`Overview > MSP Dashboard`}),`. Open `,_jsx(_components.strong,{children:`Portal actions`}),` in `,_jsx(_components.strong,{children:`Portal status`}),`. `,_jsx(_components.strong,{children:`Add template`}),` is in the menu while the portal is a `,_jsx(_components.strong,{children:`Draft`}),` or `,_jsx(_components.strong,{children:`Active`}),`.`]})}),_jsx(Step,{title:`Pick the templates`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Add template`}),` and tick one or more `,_jsx(_components.strong,{children:`Template Modules`}),`. Templates the portal already has show `,_jsx(_components.strong,{children:`Already on this portal`}),` and can’t be picked again.`]})}),_jsx(Step,{title:`Add them`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Add to portal`}),`.`]})})]}),`\n`,_jsxs(_components.p,{children:[`The new phases go after the portal’s last phase, and their dates count from today. Internal-only items stay hidden from the client, tasks for a team role go to the company’s holder of that role, and the template’s pages, key dates, and client actions come with it. Nothing already on the portal changes. If the portal has a linked project, the new tasks have no tickets yet: use `,_jsx(_components.strong,{children:`Create tickets`}),` in the `,_jsx(_components.strong,{children:`Portal actions`}),` menu to add them. See `,_jsx(_components.a,{href:`#create-tickets-from-tasks`,children:`Create tickets from tasks`}),`.`]}),`\n`,_jsx(_components.p,{children:`If a message says some settings did not copy, check the new items’ forms, emails, pages, and assignees.`}),`\n`,_jsx(Heading,{level:`2`,id:`update-a-portal-from-its-template`,children:`Update a portal from its template`}),`\n`,_jsx(_components.p,{children:`When you change a template after a portal was built from it, bring those changes into the open portal without archiving it and starting over. You pick each change before anything is written.`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Update from template`,children:_jsxs(_components.p,{children:[`Open the project and go to `,_jsx(_components.strong,{children:`Overview > MSP Dashboard`}),`. Open `,_jsx(_components.strong,{children:`Portal actions`}),` and select `,_jsx(_components.strong,{children:`Update from template`}),`. It shows while the portal is a `,_jsx(_components.strong,{children:`Draft`}),` or `,_jsx(_components.strong,{children:`Active`}),`.`]})}),_jsxs(Step,{title:`Review the changes`,children:[_jsx(_components.p,{children:`The preview lists every change made to the template since the portal was built, in four groups, each with a checkbox:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`New in the template`}),`: new phases with their items, and new tasks, approvals and documents in existing phases.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Changed in the template`}),`: the name, details and settings of phases, open tasks, and documents that aren’t approved yet.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Removed from the template`}),`: tasks, approvals and documents deleted from the template, and phases deleted with everything in them. Items nobody has worked on are ticked for you. A task that was started or has comments is left unticked, so you can check it first.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Team role owners`}),`: open MSP tasks whose template team role has a holder at the company. Filling an empty owner is ticked for you. Replacing a different person is left unticked, in case someone reassigned the task on purpose.`]}),`\n`]})]}),_jsx(Step,{title:`Apply`,children:_jsxs(_components.p,{children:[`Untick anything you want to leave as it is, or use `,_jsx(_components.strong,{children:`Select all`}),`, then select `,_jsx(_components.strong,{children:`Apply N changes`}),`. If any removals are ticked, a confirmation lists them first: type `,_jsx(_components.code,{children:`DELETE`}),` and select `,_jsx(_components.strong,{children:`Remove and apply`}),`.`]})})]}),`\n`,_jsx(_components.p,{children:`New tasks land next to their neighbors from the template, with the due dates, forms, emails, checklists, dependencies and team-role owner a new portal would give them. Items you added by hand keep their place.`}),`\n`,_jsxs(_components.p,{children:[`Progress and due dates stay as they are. Completed tasks, uploaded documents, decided approvals, sent or answered surveys, and tasks holding a client’s signature, credentials, files, form entries, checked checklist items or a linked PSA ticket are never removed, even if they were deleted from the template. Items from an archived template stay too. A deleted phase that still holds any of them, or an item you added by hand, stays with those items in it. Removals need the `,_jsx(_components.strong,{children:`Manage`}),` onboarding permission; without it, the preview leaves them out. A task’s type changes only before the task starts, and a document’s source changes only before anything is uploaded. If the template was archived or deleted, there is nothing to compare, and the dialog says so. Each update is recorded as `,_jsx(_components.strong,{children:`Updated From Template`}),` in the portal’s activity.`]}),`\n`,_jsx(Heading,{level:`2`,id:`start-a-portal`,children:`Start a portal`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the MSP dashboard`,children:_jsxs(_components.p,{children:[`Open the project and go to `,_jsx(_components.strong,{children:`Overview > MSP Dashboard`}),`.`]})}),_jsx(Step,{title:`Select Start Portal`,children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Start Portal`}),` shows while the portal is a `,_jsx(_components.strong,{children:`Draft`}),`. If the portal has no linked project, the first screen is `,_jsx(_components.strong,{children:`Link Project`}),`. Link or create a project, or select `,_jsx(_components.strong,{children:`Skip`}),`. If a project is already linked, `,_jsx(_components.strong,{children:`Start Portal`}),` skips that screen and goes to the confirmation.`]})}),_jsx(Step,{title:`Choose ticket creation`,children:_jsx(_components.p,{children:`If the portal has a linked project, a checkbox offers to create a project ticket for every task that has no ticket yet. Leave it off if you only want the link.`})}),_jsx(Step,{title:`Send the invitations`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Start \u0026 Send Invites`}),`. This activates the portal and queues an invitation email for each contact. With no contacts, nothing is sent.`]})})]}),`\n`,_jsxs(_components.p,{children:[`The email is queued, not delivered. Check `,_jsx(_components.strong,{children:`Team \u0026 Contacts`}),` afterward to confirm each contact’s `,_jsx(_components.strong,{children:`Portal access`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`portal-lifecycle`,children:`Portal lifecycle`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`What it means`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Draft`})}),_jsx(_components.td,{children:`Being prepared. Clients cannot open it.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Active`})}),_jsx(_components.td,{children:`Live. Clients can open it and complete tasks.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Completed`})}),_jsx(_components.td,{children:`You marked it finished. Clients can still read it but cannot change anything.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Converted`})}),_jsx(_components.td,{children:`The company was activated and completed tasks were copied into Planner. Existing portal sessions were revoked.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Archived`})}),_jsxs(_components.td,{children:[`Kept for history. Client access is revoked. `,_jsx(_components.strong,{children:`Restore`}),` returns it to `,_jsx(_components.strong,{children:`Draft`}),`.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`read-the-msp-dashboard`,children:`Read the MSP dashboard`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Overview > MSP Dashboard`}),` shows an `,_jsx(_components.strong,{children:`Operational snapshot`}),` with the status, start date, current phase, progress, and key-date countdowns. Next to it you get:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Phase readiness`}),`, with progress, target dates, and blockers for each phase.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Needs attention`}),`, a list of overdue, blocked, and active tasks. Select one to open it.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Client Pages`}),`, the pages assigned to the portal, with a `,_jsx(_components.strong,{children:`Review`}),` link.`]}),`\n`,_jsx(_components.li,{children:`A summary of open tasks, unassigned open tasks, pending decisions, action items, and hours.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The snapshot also holds the portal’s controls in one row: a `,_jsx(_components.strong,{children:`Portal actions`}),` menu, and beside it the one button that moves the portal to its next status.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Control`}),_jsx(_components.th,{children:`Shows when`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Start Portal`})}),_jsxs(_components.td,{children:[`The portal is a `,_jsx(_components.strong,{children:`Draft`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Complete Portal`})}),_jsxs(_components.td,{children:[`The portal is `,_jsx(_components.strong,{children:`Active`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Convert to Client`})}),_jsxs(_components.td,{children:[`The portal is `,_jsx(_components.strong,{children:`Completed`})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Portal actions`}),` menu lists the actions that apply:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Menu item`}),_jsx(_components.th,{children:`Shows when`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Manage dates`})}),_jsxs(_components.td,{children:[`Always. See `,_jsx(_components.a,{href:`/user-guides/client-onboarding/custom-dates`,children:`Custom Dates and Countdowns`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Add template`})}),_jsxs(_components.td,{children:[`The portal is a `,_jsx(_components.strong,{children:`Draft`}),` or `,_jsx(_components.strong,{children:`Active`}),`. See `,_jsx(_components.a,{href:`#add-a-template-to-a-portal`,children:`Add a template to a portal`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Update from template`})}),_jsxs(_components.td,{children:[`The portal is a `,_jsx(_components.strong,{children:`Draft`}),` or `,_jsx(_components.strong,{children:`Active`}),`. See `,_jsx(_components.a,{href:`#update-a-portal-from-its-template`,children:`Update a portal from its template`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Link Project`})}),_jsx(_components.td,{children:`The portal is active and has no linked project`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Create tickets for N tasks`}),` or `,_jsx(_components.strong,{children:`Create PSA tickets for N tasks`})]}),_jsx(_components.td,{children:`The portal has a linked project and some tasks have no ticket`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Unlink Project`})}),_jsx(_components.td,{children:`The portal has a linked project`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Archive`})}),_jsxs(_components.td,{children:[`The portal is `,_jsx(_components.strong,{children:`Completed`}),` or `,_jsx(_components.strong,{children:`Converted`})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`manage-tasks`,children:`Manage tasks`}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Project Plan > Tasks`}),`. Tasks are grouped by phase, with a count and progress bar on each phase. Use `,_jsx(_components.strong,{children:`Search tasks…`}),` to filter.`]}),`\n`,_jsx(Heading,{level:`3`,id:`change-a-task’s-status`,children:`Change a task’s status`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Click the status icon`,children:_jsxs(_components.p,{children:[`Select a task’s status icon to move it forward from `,_jsx(_components.strong,{children:`Pending`}),` to `,_jsx(_components.strong,{children:`In Progress`}),` to `,_jsx(_components.strong,{children:`Completed`}),`. Right-click it to choose any status, including `,_jsx(_components.strong,{children:`Blocked`}),`.`]})}),_jsx(Step,{title:`Update a whole phase`,children:_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`Start Phase`}),`, `,_jsx(_components.strong,{children:`Complete Phase`}),`, or `,_jsx(_components.strong,{children:`Reopen Phase`}),` on the phase header. `,_jsx(_components.strong,{children:`Complete All Tasks`}),` marks every task in the phase done at once.`]})})]}),`\n`,_jsx(_components.p,{children:`To change which phases and tasks exist, edit the template and create a new draft. The Tasks view manages the work in a running portal. It does not rebuild the structure.`}),`\n`,_jsx(Heading,{level:`3`,id:`assign-tasks`,children:`Assign tasks`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the assignee area`,children:_jsxs(_components.p,{children:[`Select the assignee name, or `,_jsx(_components.strong,{children:`Unassigned`}),`, on a task.`]})}),_jsx(Step,{title:`Choose a team member`,children:_jsxs(_components.p,{children:[`Search and select a person. Choose `,_jsx(_components.strong,{children:`Clear assignment`}),` to remove it.`]})})]}),`\n`,_jsxs(_components.p,{children:[`To assign many tasks, select `,_jsx(_components.strong,{children:`Reassign`}),`, check the tasks (hold Shift to select a range), then select `,_jsx(_components.strong,{children:`Assign`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`work-with-a-task`,children:`Work with a task`}),`\n`,_jsxs(_components.p,{children:[`Select a task to open its details. They show `,_jsx(_components.strong,{children:`Status`}),`, `,_jsx(_components.strong,{children:`Assignment`}),`, `,_jsx(_components.strong,{children:`Evidence`}),`, `,_jsx(_components.strong,{children:`Due`}),`, and `,_jsx(_components.strong,{children:`Portal comments`}),`. For client tasks you can also choose `,_jsx(_components.strong,{children:`Which contacts can see this task?`}),`, with `,_jsx(_components.strong,{children:`All contacts`}),` as the default. Set phase target dates with `,_jsx(_components.strong,{children:`Set phase dates`}),` or `,_jsx(_components.strong,{children:`Edit phase dates`}),`. The change applies to this portal only and does not change the template. With `,_jsx(_components.strong,{children:`Status sync`}),` on, a task due date set here is also written to the task’s linked PSA ticket. Phase dates set here stay in this portal; to move phase dates in your PSA, reschedule the linked project’s phases in `,_jsx(_components.strong,{children:`Projects`}),`, or change them in your PSA.`]}),`\n`,_jsxs(_components.p,{children:[`Each task has two comment streams. Use the filter to switch between `,_jsx(_components.strong,{children:`Client-facing`}),`, `,_jsx(_components.strong,{children:`Both`}),`, and `,_jsx(_components.strong,{children:`Internal`}),`.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Client-facing`}),` comments are shared with the client, who can reply.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Internal`}),` notes are for your team. Clients never see them.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`send-task-emails`,children:`Send task emails`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Choose what to send`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Send All Tasks`}),` for a summary of every task, `,_jsx(_components.strong,{children:`Send Phase Email`}),` on a phase header, or `,_jsx(_components.strong,{children:`Send reminder email`}),` on one task.`]})}),_jsx(Step,{title:`Check the recipients`,children:_jsx(_components.p,{children:`Review the recipients, subject, and body. You can add other email addresses and edit the text.`})}),_jsx(Step,{title:`Send`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Send Email`}),`.`]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`schedule-a-meeting`,children:`Schedule a meeting`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the meeting task`,children:_jsxs(_components.p,{children:[`On a `,_jsx(_components.strong,{children:`Meeting / Call`}),` task that has no meeting yet, select the `,_jsx(_components.strong,{children:`Schedule`}),` icon.`]})}),_jsx(Step,{title:`Set the details`,children:_jsxs(_components.p,{children:[`Enter the `,_jsx(_components.strong,{children:`Subject`}),`, `,_jsx(_components.strong,{children:`Date \u0026 Time`}),`, and `,_jsx(_components.strong,{children:`Duration`}),`. Add optional `,_jsx(_components.strong,{children:`Notes`}),`.`]})}),_jsx(Step,{title:`Choose attendees`,children:_jsx(_components.p,{children:`Check the portal contacts who should attend. You can add other email addresses.`})}),_jsx(Step,{title:`Schedule`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Schedule Meeting`}),`. MSPortal emails each attendee an invitation with a calendar file and shows `,_jsx(_components.strong,{children:`Meeting invite sent`}),`. The invite has no video call link, so add a link or joining details to the `,_jsx(_components.strong,{children:`Notes`}),` if you need them. The date and time in the email use your time zone, with the zone name, so attendees elsewhere can convert them. Use `,_jsx(_components.strong,{children:`Cancel Meeting`}),` in the task details to cancel it.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`review-documents`,children:`Review documents`}),`\n`,_jsxs(_components.p,{children:[`Client uploads and document requests for the portal show in `,_jsx(_components.strong,{children:`Files \u0026 Forms > Documents`}),`.`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the request`,children:_jsx(_components.p,{children:`Select the document request. The dialog lists each uploaded file with who uploaded it and when.`})}),_jsx(Step,{title:`Review the file`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Download file`}),` to open it. Select `,_jsx(_components.strong,{children:`Review`}),`, add optional `,_jsx(_components.strong,{children:`Review notes (optional)`}),`, then select `,_jsx(_components.strong,{children:`Approve`}),` or `,_jsx(_components.strong,{children:`Reject`}),`. A rejection reason shows to the client as `,_jsx(_components.strong,{children:`Needs Re-upload`}),`.`]})})]}),`\n`,_jsxs(_components.p,{children:[`Document statuses are `,_jsx(_components.strong,{children:`Requested`}),`, `,_jsx(_components.strong,{children:`Uploaded`}),`, `,_jsx(_components.strong,{children:`Approved`}),`, and `,_jsx(_components.strong,{children:`Rejected`}),`. Required documents that are still missing are flagged. Use `,_jsx(_components.strong,{children:`Show on portal`}),` to control whether a document is visible to the client.`]}),`\n`,_jsx(Heading,{level:`2`,id:`review-pages-on-a-portal`,children:`Review pages on a portal`}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Client Portal > Pages`}),`. The left list shows `,_jsx(_components.strong,{children:`Assigned pages`}),` with `,_jsx(_components.strong,{children:`Visible`}),` and `,_jsx(_components.strong,{children:`Hidden`}),` counts and a search box. The right side previews the selected page.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.strong,{children:`Shared page`}),` follows the library page. Editing the library page changes what the portal shows.`]}),`\n`,_jsxs(_components.li,{children:[`A `,_jsx(_components.strong,{children:`Portal snapshot`}),` keeps its own saved content.`]}),`\n`,_jsxs(_components.li,{children:[`Each page shows how many contacts have viewed it, for example `,_jsx(_components.strong,{children:`Viewed by 2 of 3 contacts`}),`.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`To change what the portal shows:`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Add a page`,children:_jsxs(_components.p,{children:[`Select the `,_jsx(_components.strong,{children:`Add page`}),` menu. Choose `,_jsx(_components.strong,{children:`New page`}),` to write one for this portal, or `,_jsx(_components.strong,{children:`Import page`}),` to pick one from your library.`]})}),_jsx(Step,{title:`Edit or remove a page`,children:_jsxs(_components.p,{children:[`Select a page. `,_jsx(_components.strong,{children:`Edit`}),` is available for pages that belong only to this portal. `,_jsx(_components.strong,{children:`Remove`}),` takes a page off the portal. Removing a shared page keeps it in your library.`]})})]}),`\n`,_jsxs(_components.p,{children:[`Template page assignments are copied when the portal is created. Changing a template link does not change existing portals. See `,_jsx(_components.a,{href:`/user-guides/client-onboarding/pages`,children:`Client Pages`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`change-portal-settings`,children:`Change portal settings`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the settings`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Client Portal > Portal settings`}),`.`]})}),_jsx(Step,{title:`Name the portal`,children:_jsxs(_components.p,{children:[`Edit `,_jsx(_components.strong,{children:`Portal name`}),` and `,_jsx(_components.strong,{children:`Subtitle`}),`. Clients see the subtitle under the portal title, so keep internal notes out of it. Leave it empty to show none.`]})}),_jsx(Step,{title:`Choose how tasks open`,children:_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Client task editing`}),`, choose `,_jsx(_components.strong,{children:`Pop-up`}),` or `,_jsx(_components.strong,{children:`Inline editing`}),`.`]})}),_jsx(Step,{title:`Control what clients see ahead of time`,children:_jsxs(_components.p,{children:[`Turn on `,_jsx(_components.strong,{children:`Reveal phases progressively`}),`, `,_jsx(_components.strong,{children:`Hide blocked tasks`}),`, or `,_jsx(_components.strong,{children:`Hide future-dated tasks`}),` as needed.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Save Changes`}),`, then use `,_jsx(_components.strong,{children:`View as`}),` to check the result. These settings apply to this portal only and do not change the template.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`review-activity`,children:`Review activity`}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Client Portal > Activity`}),` for a timeline of recorded events, plus flow diagnostics such as average task time. Use `,_jsx(_components.strong,{children:`Search activity…`}),` to search by description, actor, or email. Use the type filter, starting at `,_jsx(_components.strong,{children:`All Types`}),`, to show only portal, phase, task, document, contact, communication, or approval events. Select `,_jsx(_components.strong,{children:`Load more activity`}),` for older entries.`]}),`\n`,_jsx(_components.p,{children:`Events include status changes, task completions, document uploads and reviews, invitations and contact access, signatures, credential submissions, meetings, comments, and questions. A recorded event shows that an action happened. It does not prove an email was delivered.`}),`\n`,_jsx(Heading,{level:`2`,id:`manage-contacts`,children:`Manage contacts`}),`\n`,_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Team \u0026 Contacts`}),`. Client contacts and your own staff share one list.`]}),`\n`,_jsx(Heading,{level:`3`,id:`add-a-contact`,children:`Add a contact`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Add a row`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Add Contact`}),`. A new row opens at the end of the client list.`]})}),_jsx(Step,{title:`Fill it in`,children:_jsx(_components.p,{children:`Enter the contact’s name and email. Choose a role if you want one.`})}),_jsx(Step,{title:`Save`,children:_jsx(_components.p,{children:`Select the check mark or press Enter. Select the cross or press Escape to discard the row. MSPortal asks before you leave with an unsaved contact.`})})]}),`\n`,_jsxs(_components.p,{children:[`Roles come from `,_jsx(_components.strong,{children:`Settings > Projects > Onboarding Portals > Client roles`}),`. They help identify each person’s responsibility and can affect task visibility.`]}),`\n`,_jsx(Heading,{level:`3`,id:`send-replace-or-revoke-access`,children:`Send, replace, or revoke access`}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`Portal access`}),` column shows `,_jsx(_components.strong,{children:`Active`}),`, `,_jsx(_components.strong,{children:`Not signed in`}),`, `,_jsx(_components.strong,{children:`Link expired`}),`, or `,_jsx(_components.strong,{children:`Revoked`}),`, with the last visit and visit count. Change a role from the `,_jsx(_components.strong,{children:`Portal role`}),` menu on the row. Open the `,_jsx(_components.strong,{children:`…`}),` menu on a contact for these actions.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Action`}),_jsx(_components.th,{children:`What it does`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Send invite email`})}),_jsx(_components.td,{children:`Sends the access link again. It is disabled until the portal is started.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Regenerate invite link`})}),_jsx(_components.td,{children:`Creates a new link. The old link and active sessions stop working.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Revoke access`})}),_jsxs(_components.td,{children:[`Blocks the contact right away. `,_jsx(_components.strong,{children:`Restore access with new link`}),` then appears.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Remove contact`})}),_jsx(_components.td,{children:`Takes the contact off the portal and ends their sessions.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Under `,_jsx(_components.strong,{children:`Your team`}),`, open a staff member’s `,_jsx(_components.strong,{children:`…`}),` menu to reassign all of their portal tasks to someone else, or to unassign them.`]}),`\n`,_jsx(Heading,{level:`2`,id:`preview-as-a-client`,children:`Preview as a client`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open View as`,children:_jsxs(_components.p,{children:[`In the page header, select `,_jsx(_components.strong,{children:`View as`}),`. On a phone, open `,_jsx(_components.strong,{children:`Actions`}),` first. The control stays in the header on every portal section and follows the selected portal.`]})}),_jsx(Step,{title:`Pick a contact or role`,children:_jsxs(_components.p,{children:[`Choose a contact. If the portal has no contacts, choose a client role under `,_jsx(_components.strong,{children:`Roles`}),`.`]})}),_jsx(Step,{title:`Look around`,children:_jsxs(_components.p,{children:[`The portal opens in a new tab with a `,_jsx(_components.strong,{children:`Preview mode`}),` banner. Click through tasks and forms freely.`]})})]}),`\n`,_jsxs(_components.p,{children:[`Preview works on a `,_jsx(_components.strong,{children:`Draft`}),` portal, so you can test a template before any client is invited. Nothing you enter in preview is saved or triggers a notification. Preview needs `,_jsx(_components.strong,{children:`Projects \u0026 Client Onboarding`}),` Write access. It does not test a real invitation, email verification, or a saved submission. You can also preview from the portal list under `,_jsx(_components.strong,{children:`Settings > Projects > Onboarding Portals > Portals`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`review-credentials-secure-files-and-signatures`,children:`Review credentials, secure files, and signatures`}),`\n`,_jsxs(_components.p,{children:[`For a credential handoff or a secure file, read `,_jsx(_components.a,{href:`/user-guides/client-onboarding/retrieve-secure-submissions`,children:`Retrieve onboarding credentials and secure files`}),` before you choose `,_jsx(_components.strong,{children:`Reveal \u0026 Delete`}),` or `,_jsx(_components.strong,{children:`Download \u0026 Destroy`}),`. Those actions use up the stored submission.`]}),`\n`,_jsx(_components.p,{children:`To review a signature, open the signature task. You see the signature image, the signer’s name, email, IP address, and time, and a content hash you can copy. If a document was attached, the signed document is available too.`}),`\n`,_jsxs(_components.p,{children:[`For a form task, open the saved entry. Select `,_jsx(_components.strong,{children:`Create asset`}),` to send the values to Hudu or IT Glue, or `,_jsx(_components.strong,{children:`Assets`}),` to manage ones you already created. See `,_jsx(_components.a,{href:`/user-guides/client-onboarding/forms#review-a-submitted-entry-before-creating-an-asset`,children:`Onboarding Forms`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`link-a-project-create-tickets-and-log-time`,children:`Link a project, create tickets, and log time`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`Link Project`}),` to choose `,_jsx(_components.strong,{children:`MSPortal Projects`}),` or the company’s PSA. MSPortal Projects tracks work in MSPortal with no PSA. PSA choices depend on the company’s PSA mapping and your PSA defaults.`]}),`\n`,_jsx(Heading,{level:`3`,id:`link-a-portal-to-a-project`,children:`Link a portal to a project`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Link Project`,children:_jsxs(_components.p,{children:[`On `,_jsx(_components.strong,{children:`Overview > MSP Dashboard`}),`, open `,_jsx(_components.strong,{children:`Portal actions`}),` and select `,_jsx(_components.strong,{children:`Link Project`}),`. It shows for an active portal that has no linked project. For a draft, link on the `,_jsx(_components.strong,{children:`Start Portal`}),` screen.`]})}),_jsx(Step,{title:`Choose the project system`,children:_jsxs(_components.p,{children:[`Choose a `,_jsx(_components.strong,{children:`Project system`}),`.`]})}),_jsx(Step,{title:`Select or create a project`,children:_jsxs(_components.p,{children:[`On `,_jsx(_components.strong,{children:`Select Existing`}),`, search and pick a project, then select `,_jsx(_components.strong,{children:`Link Project`}),`. On `,_jsx(_components.strong,{children:`Create New`}),`, enter a `,_jsx(_components.strong,{children:`Project Name`}),`, set a `,_jsx(_components.strong,{children:`Start Date`}),` and an `,_jsx(_components.strong,{children:`End Date`}),`, and add an optional description. Then select `,_jsx(_components.strong,{children:`Create \u0026 Link`}),`. The `,_jsx(_components.strong,{children:`End Date`}),` is required and has no default, so the button stays off until you pick it and it is on or after the start. These dates are the ones MSPortal sends to ConnectWise, Autotask or Halo when it creates the project there.`]})})]}),`\n`,_jsx(Frame,{caption:`Create New on the Start Portal screen, with the Start Date and the required End Date filled in. Here the button reads Create \u0026 Continue.`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/msportal/sKeKOmH7VI9EUXxf/images/product/company-onboarding-create-new-dates-desktop.png?fit=max\u0026auto=format\u0026n=sKeKOmH7VI9EUXxf\u0026q=85\u0026s=12eb8c6a12dcda826c987b72008e2030`,alt:`Link Project dialog on the Create New tab with a Project Name, a Start Date of Oct 20, 2026, an End Date of Nov 3, 2026 and an optional Description.`,width:`1500`,height:`1000`,\"data-og-width\":`1500`,\"data-og-height\":`1000`,\"data-path\":`images/product/company-onboarding-create-new-dates-desktop.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/msportal/sKeKOmH7VI9EUXxf/images/product/company-onboarding-create-new-dates-desktop.png?w=280\u0026fit=max\u0026auto=format\u0026n=sKeKOmH7VI9EUXxf\u0026q=85\u0026s=4cafe1f027d1aec00819ac91e3f03592 280w, https://mintcdn.com/msportal/sKeKOmH7VI9EUXxf/images/product/company-onboarding-create-new-dates-desktop.png?w=560\u0026fit=max\u0026auto=format\u0026n=sKeKOmH7VI9EUXxf\u0026q=85\u0026s=daa412c9002632918faf0a0db3827ead 560w, https://mintcdn.com/msportal/sKeKOmH7VI9EUXxf/images/product/company-onboarding-create-new-dates-desktop.png?w=840\u0026fit=max\u0026auto=format\u0026n=sKeKOmH7VI9EUXxf\u0026q=85\u0026s=b61b9131fb4c7248479a7889042ad27d 840w, https://mintcdn.com/msportal/sKeKOmH7VI9EUXxf/images/product/company-onboarding-create-new-dates-desktop.png?w=1100\u0026fit=max\u0026auto=format\u0026n=sKeKOmH7VI9EUXxf\u0026q=85\u0026s=180b3cbfb008a9c49bc27188ca7c4fa7 1100w, https://mintcdn.com/msportal/sKeKOmH7VI9EUXxf/images/product/company-onboarding-create-new-dates-desktop.png?w=1650\u0026fit=max\u0026auto=format\u0026n=sKeKOmH7VI9EUXxf\u0026q=85\u0026s=470148b3dd31262dc5fe5da8468a650b 1650w, https://mintcdn.com/msportal/sKeKOmH7VI9EUXxf/images/product/company-onboarding-create-new-dates-desktop.png?w=2500\u0026fit=max\u0026auto=format\u0026n=sKeKOmH7VI9EUXxf\u0026q=85\u0026s=7595b6ef191f547ab7b1f0abdba0cd7e 2500w`})}),`\n`,_jsx(_components.p,{children:`Linking saves right away. A badge on the overview shows the linked project with a link to open it.`}),`\n`,_jsx(Heading,{level:`3`,id:`create-tickets-from-tasks`,children:`Create tickets from tasks`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open the ticket dialog`,children:_jsxs(_components.p,{children:[`On the MSP dashboard, open `,_jsx(_components.strong,{children:`Portal actions`}),` and select `,_jsx(_components.strong,{children:`Create tickets for N tasks`}),` or `,_jsx(_components.strong,{children:`Create PSA tickets for N tasks`}),`.`]})}),_jsx(Step,{title:`Choose tasks`,children:_jsx(_components.p,{children:`Check the tasks that need tickets. Tasks that already have a ticket are disabled.`})}),_jsx(Step,{title:`Create`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Create`}),`. Each selected task gets a ticket under the linked project, and its row shows the ticket number. Select the badge to open the ticket.`]})})]}),`\n`,_jsx(_components.p,{children:`PSA ticket creation needs the PSA defaults below. The dialog tells you which are missing.`}),`\n`,_jsx(Heading,{level:`3`,id:`log-time-on-a-task`,children:`Log time on a task`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Open Log time`,children:_jsxs(_components.p,{children:[`On a task with a linked ticket, select `,_jsx(_components.strong,{children:`Log time`}),`.`]})}),_jsx(Step,{title:`Enter the time`,children:_jsxs(_components.p,{children:[`Set `,_jsx(_components.strong,{children:`Date Worked`}),`, `,_jsx(_components.strong,{children:`Start Time`}),`, `,_jsx(_components.strong,{children:`End Time`}),`, and optional `,_jsx(_components.strong,{children:`Notes`}),`. Choose a `,_jsx(_components.strong,{children:`Billing status`}),`, and a `,_jsx(_components.strong,{children:`Work role`}),` and `,_jsx(_components.strong,{children:`Work type`}),` for a PSA.`]})}),_jsx(Step,{title:`Save`,children:_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Log Time`}),`. The entry is created on the linked ticket. A single entry cannot exceed 24 hours.`]})})]}),`\n`,_jsx(Heading,{level:`3`,id:`set-psa-project-defaults`,children:`Set PSA project defaults`}),`\n`,_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings > Projects > Onboarding Portals > PSA projects`}),`. This section appears only when a PSA integration is active. Choose values from the drop-downs. They come from your synced PSA data, so you never type an ID.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Setting`}),_jsx(_components.th,{children:`What it does`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Auto-create tickets`})}),_jsx(_components.td,{children:`Creates a ticket for each task when a project is linked`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Status sync`})}),_jsx(_components.td,{children:`Keeps task and ticket status in sync both ways. A status change in the portal is sent to the PSA right away, and PSA changes come back every 10 minutes. A task due date changed in the portal is also sent to the PSA ticket; phase dates are not synced.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Default billable`})}),_jsx(_components.td,{children:`New time entries default to billable`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Default billing status`})}),_jsx(_components.td,{children:`Billing status for new onboarding time entries`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Provider Defaults`})}),_jsx(_components.td,{children:`Default board or team, priority, status, and ticket type for each PSA, plus Halo category, impact, and urgency`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Time entry defaults`})}),_jsx(_components.td,{children:`Default work role and work type for time entries`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Save Changes`}),` when you are done. A stale ticket status can mean a sync has not finished. Check for a sync failure before you treat a ticket as complete.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Task status syncs both ways between an onboarding portal and its PSA tickets. A task due date you change in the portal is sent to the linked PSA ticket, but a due date changed in the PSA does not come back to the portal. Clearing a due date in the portal leaves the PSA date as it is. Phase dates you edit in the portal stay in MSPortal. For what writes back from the linked project itself, see `,_jsx(_components.a,{href:`/user-guides/projects/index#what-writes-back-to-your-psa`,children:`What writes back to your PSA`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`export-to-excel`,children:`Export to Excel`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Audience:`}),` MSP staff with onboarding access. Company users do not see the button, because the workbook includes MSP-only items and every client response.`]}),`\n`,_jsxs(_components.p,{children:[`Open the portal’s project and select `,_jsx(_components.strong,{children:`Export to Excel`}),` in the project header to download the project workbook. See `,_jsx(_components.a,{href:`/user-guides/projects/export-project-to-excel`,children:`Export a project to Excel`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`A portal with no linked project yet, or a staff member without project access, still opens the company’s `,_jsx(_components.strong,{children:`Onboarding`}),` tab. There, choose the portal and select `,_jsx(_components.strong,{children:`Export to Excel`}),` in the page header to download the portal workbook. Neither export changes the portal.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-export-excel-button-branch-preview.png?fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=6ed487004c734ac48b5b90fe7703ae8a`,alt:`Export to Excel button in the company onboarding header`,width:`1304`,height:`110`,\"data-og-width\":`1304`,\"data-og-height\":`110`,\"data-path\":`images/product/onboarding-portal-export-excel-button-branch-preview.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-export-excel-button-branch-preview.png?w=280\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=43ae2221e282c19b16d97c44e9c15e9f 280w, https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-export-excel-button-branch-preview.png?w=560\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=b59258e3a64a37d2c755c36b1e36421a 560w, https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-export-excel-button-branch-preview.png?w=840\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=967b7fac0b67f08fb9e5db3b38fe8052 840w, https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-export-excel-button-branch-preview.png?w=1100\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=24b676a9bb114d67516f21ffa5952885 1100w, https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-export-excel-button-branch-preview.png?w=1650\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=556cb7d20fd0950d02e03310713c2a62 1650w, https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-export-excel-button-branch-preview.png?w=2500\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=9f385a63693b858bf589d1a7da995d94 2500w`}),`\n`,_jsxs(_components.p,{children:[`The portal workbook always has an `,_jsx(_components.strong,{children:`Overview`}),` sheet. Other sheets appear only when the portal has rows for them.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Sheet`}),_jsx(_components.th,{children:`Contents`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Overview`})}),_jsx(_components.td,{children:`Company, status, progress, start, completion and conversion dates, linked project, a phase summary with target dates and completed items, key dates, client contacts with last access and visit count, and a linked list of the other sheets.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Items`})}),_jsxs(_components.td,{children:[`Every task, document, approval and standalone survey in phase order, with type, owner, assignee, status, required and client-visible flags, priority, milestone, due, started and completed dates, estimated and actual hours, linked ticket, comment count and description. A `,_jsx(_components.strong,{children:`Total`}),` row sums hours when any item has them.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Responses`})}),_jsx(_components.td,{children:`What the client and your team entered: checklist items with who checked them, form answers per entry, text responses, signatures, approval decisions with notes, and survey answers.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Documents`})}),_jsx(_components.td,{children:`Requested documents with status, uploaded file names, uploader, review date, review notes and external link.`})]})]})]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-excel-items-sheet-branch-preview.png?fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=6023a3e616b7dbc17a75fd187706328c`,alt:`Items sheet of an exported onboarding workbook`,width:`1990`,height:`468`,\"data-og-width\":`1990`,\"data-og-height\":`468`,\"data-path\":`images/product/onboarding-portal-excel-items-sheet-branch-preview.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-excel-items-sheet-branch-preview.png?w=280\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=61ac88ee2e457b8e756fcea05397a873 280w, https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-excel-items-sheet-branch-preview.png?w=560\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=670074d6714cb3b9831a6a9a8ada2245 560w, https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-excel-items-sheet-branch-preview.png?w=840\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=c60810090328bce652e7317caf1833be 840w, https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-excel-items-sheet-branch-preview.png?w=1100\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=c093474bde61ec5270db5e4aa37102b0 1100w, https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-excel-items-sheet-branch-preview.png?w=1650\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=973e75a9fff1bf57a60463f086bc0c7d 1650w, https://mintcdn.com/msportal/iz1iZbRY-gQRotTR/images/product/onboarding-portal-excel-items-sheet-branch-preview.png?w=2500\u0026fit=max\u0026auto=format\u0026n=iz1iZbRY-gQRotTR\u0026q=85\u0026s=b473fda988da6268d416304ccc431cfc 2500w`}),`\n`,_jsxs(_components.p,{children:[`Each data sheet has a frozen, filterable header row. Files stay in MSPortal and the workbook lists their names. Credentials and secure file contents are never exported. The workbook uses your tenant’s brand color and your current language. To export the plan rather than a client’s progress, use the `,_jsx(_components.strong,{children:`Excel`}),` tab in the template’s `,_jsx(_components.strong,{children:`Import / Export`}),` dialog. See `,_jsx(_components.a,{href:`/user-guides/client-onboarding/templates#import--export`,children:`Templates`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`complete-convert-and-archive-a-portal`,children:`Complete, convert, and archive a portal`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Review the work`,children:_jsx(_components.p,{children:`Check that tasks are complete and documents are approved.`})}),_jsx(Step,{title:`Complete the portal`,children:_jsxs(_components.p,{children:[`On `,_jsx(_components.strong,{children:`Overview > MSP Dashboard`}),`, select `,_jsx(_components.strong,{children:`Complete Portal`}),` and confirm. This marks the portal finished. It does not complete open tasks or approve documents. Clients keep a read-only view.`]})}),_jsx(Step,{title:`Convert the client (optional)`,children:_jsxs(_components.p,{children:[`With `,_jsx(_components.strong,{children:`Projects \u0026 Client Onboarding`}),` Manage access, select `,_jsx(_components.strong,{children:`Convert to Client`}),`. This activates the company, copies completed onboarding tasks into Planner, marks the portal `,_jsx(_components.strong,{children:`Converted`}),`, and revokes current portal sessions. Review the completed work first.`]})}),_jsx(Step,{title:`Archive when you no longer need it`,children:_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Portal actions`}),`, select `,_jsx(_components.strong,{children:`Archive`}),` and confirm. Archiving revokes all client sessions. The data is kept.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`manage-portals-from-settings`,children:`Manage portals from Settings`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Settings > Projects > Onboarding Portals > Portals`}),` lists every portal across companies. Filter by `,_jsx(_components.strong,{children:`All`}),`, `,_jsx(_components.strong,{children:`Active`}),`, `,_jsx(_components.strong,{children:`Draft`}),`, `,_jsx(_components.strong,{children:`Finished`}),`, or `,_jsx(_components.strong,{children:`Archived`}),`, search by name, and select a portal to see its detail.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Action`}),_jsx(_components.th,{children:`What it does`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Open`})}),_jsx(_components.td,{children:`Opens the portal`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`View as`})}),_jsx(_components.td,{children:`Opens a client preview`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Archive`})}),_jsx(_components.td,{children:`Revokes all client sessions. Data is kept and you are asked to confirm.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Restore`})}),_jsxs(_components.td,{children:[`Returns an archived portal to `,_jsx(_components.strong,{children:`Draft`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.strong,{children:`Delete`})}),_jsx(_components.td,{children:`Permanently removes the portal with its phases, tasks, documents, and contacts. You are asked to confirm.`})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Archive`}),` takes effect immediately. Clients lose access until you restore and start the portal again. `,_jsx(_components.strong,{children:`Delete`}),` cannot be undone.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`use-the-dashboard-widgets`,children:`Use the dashboard widgets`}),`\n`,_jsx(_components.p,{children:`Your MSP dashboard shows two onboarding widgets when you have onboarding access and active portals exist.`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Active Onboarding`}),` shows a tile for each active portal with the company, portal name, and a progress bar. Select a tile to open the portal.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`My Onboarding Tasks`}),` lists the onboarding tasks assigned to you across active portals. Select a task to open it.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Problem`}),_jsx(_components.th,{children:`What to do`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A completed portal still lets nobody edit`}),_jsxs(_components.td,{children:[`That is expected. `,_jsx(_components.strong,{children:`Completed`}),` portals are read-only. Archive and restore it only if you need to reopen it as a draft.`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Restore`}),` did not reopen the portal to clients`]}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Restore`}),` returns the portal to `,_jsx(_components.strong,{children:`Draft`}),`. Review it and select `,_jsx(_components.strong,{children:`Start Portal`}),` again.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A template change is not in this portal`}),_jsx(_components.td,{children:`Portals copy the template when created. Create a new draft.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Two contacts see different tasks`}),_jsxs(_components.td,{children:[`Check each contact’s role, the task’s `,_jsx(_components.strong,{children:`Visibility`}),`, and `,_jsx(_components.strong,{children:`Portal settings`}),`. Use `,_jsx(_components.strong,{children:`View as`}),` for each.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`There is no PSA project option`}),_jsxs(_components.td,{children:[`Check the company’s PSA mapping, the active PSA integration, and your permissions. `,_jsx(_components.strong,{children:`MSPortal Projects`}),` is the native option.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A creation or ticket error left a partial result`}),_jsx(_components.td,{children:`Open the saved portal and check its modules and existing tickets. Retry only what is missing.`})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Send invite email`}),` is disabled`]}),_jsxs(_components.td,{children:[`The portal is still a `,_jsx(_components.strong,{children:`Draft`}),`. Start it first.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`frequently-asked-questions`,children:`Frequently asked questions`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`Does Completed mean every task passed?`,id:`does-completed-mean-every-task-passed`,children:_jsxs(_components.p,{children:[`No. `,_jsx(_components.strong,{children:`Complete Portal`}),` is your decision. Check open tasks, evidence, and documents before you confirm.`]})}),_jsx(Accordion,{title:`Is Convert to Client only a status change?`,id:`is-convert-to-client-only-a-status-change`,children:_jsxs(_components.p,{children:[`No. It activates the company, copies completed tasks into Planner, marks the portal converted, and revokes current sessions. It needs `,_jsx(_components.strong,{children:`Projects \u0026 Client Onboarding`}),` Manage access.`]})}),_jsx(Accordion,{title:`Can I undo a new portal by closing the project dialog?`,id:`can-i-undo-a-new-portal-by-closing-the-project-dialog`,children:_jsxs(_components.p,{children:[`No. `,_jsx(_components.strong,{children:`Start onboarding`}),` or `,_jsx(_components.strong,{children:`Create Portal`}),` already saved the draft. A project link or new project also stays once its action succeeds.`]})}),_jsx(Accordion,{title:`Can I safely open a credential to see if it arrived?`,id:`can-i-safely-open-a-credential-to-see-if-it-arrived`,children:_jsxs(_components.p,{children:[`No. Opening the task only shows its status. `,_jsx(_components.strong,{children:`Reveal \u0026 Delete`}),` and `,_jsx(_components.strong,{children:`Download \u0026 Destroy`}),` use up the submission. Read the retrieval guide first.`]})}),_jsx(Accordion,{title:`If I change a task's status or dates in the portal, do I update the PSA too?`,id:`if-i-change-a-tasks-status-or-dates-in-the-portal-do-i-update-the-psa-too`,children:_jsxs(_components.p,{children:[`No, with `,_jsx(_components.strong,{children:`Status sync`}),` on. Task status syncs with the linked PSA ticket both ways, and a task due date you change in the portal is sent to the PSA ticket. Phase dates set in the portal are the exception: reschedule the linked project’s phases in `,_jsx(_components.strong,{children:`Projects`}),`, or change them in your PSA.`]})}),_jsx(Accordion,{title:`Why do I see the Link Project screen when I start a portal?`,id:`why-do-i-see-the-link-project-screen-when-i-start-a-portal`,children:_jsxs(_components.p,{children:[`The portal has no linked project yet. Link or create one, or select `,_jsx(_components.strong,{children:`Skip`}),`. A portal that already has a project goes straight to the confirmation.`]})}),_jsx(Accordion,{title:`Does Schedule Meeting create a video call?`,id:`does-schedule-meeting-create-a-video-call`,children:_jsxs(_components.p,{children:[`No. It emails a calendar invite with no video link. Add a link to the `,_jsx(_components.strong,{children:`Notes`}),` if attendees need one.`]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`related-guides`,children:`Related guides`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/user-guides/client-onboarding/quick-start`,children:`Quick Start`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/user-guides/client-onboarding/templates`,children:`Templates`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/user-guides/client-onboarding/custom-dates`,children:`Custom Dates and Countdowns`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/user-guides/client-onboarding/pages`,children:`Client Pages`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/user-guides/client-onboarding/retrieve-secure-submissions`,children:`Retrieve onboarding credentials and secure files`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/user-guides/projects/workspace`,children:`Projects workspace`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Managing Portals","description":"Launch onboarding portals for clients, track progress, manage tasks, and communicate with contacts","icon":"bars-progress","href":"/user-guides/client-onboarding/managing-portals"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Before you start","slug":"before-you-start","depth":2,"children":[]},{"title":"Find your way around a portal","slug":"find-your-way-around-a-portal","depth":2,"children":[]},{"title":"Start from Projects","slug":"start-from-projects","depth":2,"children":[]},{"title":"Create a portal from Settings","slug":"create-a-portal-from-settings","depth":2,"children":[]},{"title":"Add a template to a portal","slug":"add-a-template-to-a-portal","depth":2,"children":[]},{"title":"Update a portal from its template","slug":"update-a-portal-from-its-template","depth":2,"children":[]},{"title":"Start a portal","slug":"start-a-portal","depth":2,"children":[]},{"title":"Portal lifecycle","slug":"portal-lifecycle","depth":2,"children":[]},{"title":"Read the MSP dashboard","slug":"read-the-msp-dashboard","depth":2,"children":[]},{"title":"Manage tasks","slug":"manage-tasks","depth":2,"children":[{"title":"Change a task’s status","slug":"change-a-task’s-status","depth":3,"children":[]},{"title":"Assign tasks","slug":"assign-tasks","depth":3,"children":[]},{"title":"Work with a task","slug":"work-with-a-task","depth":3,"children":[]},{"title":"Send task emails","slug":"send-task-emails","depth":3,"children":[]},{"title":"Schedule a meeting","slug":"schedule-a-meeting","depth":3,"children":[]}]},{"title":"Review documents","slug":"review-documents","depth":2,"children":[]},{"title":"Review pages on a portal","slug":"review-pages-on-a-portal","depth":2,"children":[]},{"title":"Change portal settings","slug":"change-portal-settings","depth":2,"children":[]},{"title":"Review activity","slug":"review-activity","depth":2,"children":[]},{"title":"Manage contacts","slug":"manage-contacts","depth":2,"children":[{"title":"Add a contact","slug":"add-a-contact","depth":3,"children":[]},{"title":"Send, replace, or revoke access","slug":"send-replace-or-revoke-access","depth":3,"children":[]}]},{"title":"Preview as a client","slug":"preview-as-a-client","depth":2,"children":[]},{"title":"Review credentials, secure files, and signatures","slug":"review-credentials-secure-files-and-signatures","depth":2,"children":[]},{"title":"Link a project, create tickets, and log time","slug":"link-a-project-create-tickets-and-log-time","depth":2,"children":[{"title":"Link a portal to a project","slug":"link-a-portal-to-a-project","depth":3,"children":[]},{"title":"Create tickets from tasks","slug":"create-tickets-from-tasks","depth":3,"children":[]},{"title":"Log time on a task","slug":"log-time-on-a-task","depth":3,"children":[]},{"title":"Set PSA project defaults","slug":"set-psa-project-defaults","depth":3,"children":[]}]},{"title":"Export to Excel","slug":"export-to-excel","depth":2,"children":[]},{"title":"Complete, convert, and archive a portal","slug":"complete-convert-and-archive-a-portal","depth":2,"children":[]},{"title":"Manage portals from Settings","slug":"manage-portals-from-settings","depth":2,"children":[]},{"title":"Use the dashboard widgets","slug":"use-the-dashboard-widgets","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[]},{"title":"Frequently asked questions","slug":"frequently-asked-questions","depth":2,"children":[]},{"title":"Related guides","slug":"related-guides","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/msportal/d65dc731b8cde0aa/roadmap-embed.js"],"subdomain":"msportal","siteName":"MSPortal.ai Documentation","title":"Managing Portals - MSPortal.ai Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T17:34:39.346Z","originalFileLocation":"user-guides/client-onboarding/managing-portals.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Launch onboarding portals for clients, track progress, manage tasks, and communicate with contacts\">\u003cmeta data-mint-head name=\"application-name\" content=\"MSPortal.ai Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Managing Portals - MSPortal.ai Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Launch onboarding portals for clients, track progress, manage tasks, and communicate with contacts\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"MSPortal.ai Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.msportal.ai/user-guides/client-onboarding/managing-portals\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://msportal.mintlify.site/_mintlify/api/og/v2?division=Client+Onboarding\u0026amp;title=Managing+Portals\u0026amp;description=Launch+onboarding+portals+for+clients%2C+track+progress%2C+manage+tasks%2C+and+communicate+with+contacts\u0026amp;theme=88706d4dcbb07b7aeafbf701\u0026amp;signature=397fad747bf03c96e324821c45213baf3ca5ed645f447d50f0dad34c877248ac\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Managing Portals - MSPortal.ai Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Launch onboarding portals for clients, track progress, manage tasks, and communicate with contacts\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://msportal.mintlify.site/_mintlify/api/og/v2?division=Client+Onboarding\u0026amp;title=Managing+Portals\u0026amp;description=Launch+onboarding+portals+for+clients%2C+track+progress%2C+manage+tasks%2C+and+communicate+with+contacts\u0026amp;theme=88706d4dcbb07b7aeafbf701\u0026amp;signature=397fad747bf03c96e324821c45213baf3ca5ed645f447d50f0dad34c877248ac\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/msportal/MdEo74vho503Sp8Y/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"MSPortal.ai Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0C8376\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.msportal.ai/user-guides/client-onboarding/managing-portals\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/user-guides/client-onboarding/managing-portals.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.msportal.ai/#organization\",\"name\":\"MSPortal.ai Documentation\",\"url\":\"https://docs.msportal.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/msportal/KnbwIXtZSTlVJTt6/logo/light.svg?fit=max\u0026auto=format\u0026n=KnbwIXtZSTlVJTt6\u0026q=85\u0026s=eb69f6d6bf16b2c401770aef19ade1d2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.msportal.ai#website\",\"name\":\"MSPortal.ai Documentation\",\"url\":\"https://docs.msportal.ai\",\"publisher\":{\"@id\":\"https://docs.msportal.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.msportal.ai/user-guides/client-onboarding/managing-portals#webpage\",\"url\":\"https://docs.msportal.ai/user-guides/client-onboarding/managing-portals\",\"name\":\"Managing Portals\",\"description\":\"Launch onboarding portals for clients, track progress, manage tasks, and communicate with contacts\",\"dateModified\":\"2026-11-13T17:34:39.346Z\",\"isPartOf\":{\"@id\":\"https://docs.msportal.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.msportal.ai/user-guides/client-onboarding/managing-portals#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.msportal.ai/user-guides/client-onboarding/managing-portals#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Client Onboarding\",\"item\":\"https://docs.msportal.ai/user-guides/client-onboarding\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Managing Portals\",\"item\":\"https://docs.msportal.ai/user-guides/client-onboarding/managing-portals\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.msportal.ai/user-guides/client-onboarding/managing-portals#article\",\"headline\":\"Managing Portals\",\"name\":\"Managing Portals\",\"description\":\"Launch onboarding portals for clients, track progress, manage tasks, and communicate with contacts\",\"url\":\"https://docs.msportal.ai/user-guides/client-onboarding/managing-portals\",\"mainEntityOfPage\":{\"@id\":\"https://docs.msportal.ai/user-guides/client-onboarding/managing-portals#webpage\"},\"dateModified\":\"2026-11-13T17:34:39.346Z\",\"publisher\":{\"@id\":\"https://docs.msportal.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.msportal.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"MSPortal.ai Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"MSPortal.ai Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/user-guides/client-onboarding/managing-portals.md","siteName":"MSPortal.ai Documentation","nav":{"global":null,"tabs":[{"tab":"Company Guides","pages":[{"title":"Company Guides","href":"/user-guides/account/manage-your-profile"}]},{"tab":"MSP Guides","anchors":[{"anchor":"Getting started","icon":"rocket","pages":[{"title":"Getting started","href":"/user-guides/getting-started"}]},{"anchor":"Planning","icon":"compass","pages":[{"title":"Planning","href":"/user-guides/company-overview"}]},{"anchor":"Operations","icon":"briefcase","groups":[{"group":"Client Onboarding","pages":[{"title":"Client Onboarding","icon":"clipboard-check","href":"/user-guides/client-onboarding"},{"title":"Open your onboarding portal","icon":"door-open","href":"/user-guides/client-onboarding/open-your-onboarding"},{"title":"Complete onboarding tasks and forms","icon":"list-check","href":"/user-guides/client-onboarding/complete-tasks-and-forms"},{"title":"Upload onboarding documents and secure files","icon":"file-arrow-up","href":"/user-guides/client-onboarding/upload-files"},{"title":"Hand over credentials during onboarding","icon":"key","href":"/user-guides/client-onboarding/hand-over-credentials"},{"title":"Review onboarding approvals and sign documents","icon":"signature","href":"/user-guides/client-onboarding/review-and-sign"},{"title":"Use onboarding meetings, training, surveys, and reference pages","icon":"clipboard-list","href":"/user-guides/client-onboarding/meetings-training-and-surveys"},{"title":"Quick Start","icon":"rocket","href":"/user-guides/client-onboarding/quick-start"},{"title":"Onboarding Templates","icon":"copy","href":"/user-guides/client-onboarding/templates"},{"title":"Client Pages","icon":"book-open","href":"/user-guides/client-onboarding/pages"},{"title":"Onboarding Forms","description":"Build reusable, structured forms that clients complete inside their portal, with optional mapping to Hudu and IT Glue","icon":"clipboard-list","href":"/user-guides/client-onboarding/forms"},{"title":"Managing Portals","icon":"bars-progress","href":"/user-guides/client-onboarding/managing-portals"},{"title":"Link an onboarding template task to a Standard","description":"Configure a Standards link once in an onboarding template and carry it into new client portals.","icon":"link","href":"/user-guides/client-onboarding/link-task-to-standard"},{"title":"Retrieve onboarding credentials and secure files","icon":"shield-halved","href":"/user-guides/client-onboarding/retrieve-secure-submissions"},{"title":"Custom Dates and Countdowns","icon":"stopwatch","href":"/user-guides/client-onboarding/custom-dates"},{"title":"Understand the client onboarding portal","icon":"browser","href":"/user-guides/client-onboarding/client-portal"}]},{"group":"Ticketing","pages":[{"title":"Tickets","icon":"ticket","href":"/user-guides/ticketing/index"},{"title":"How to open a ticket","icon":"ticket","href":"/msp-guides/ticketing/open-a-ticket"},{"title":"Find and follow up on a ticket","icon":"comments","href":"/msp-guides/ticketing/follow-up-on-a-ticket"},{"title":"Time ticket work with a timer","icon":"stopwatch","href":"/user-guides/ticketing/time-work-with-timers"},{"title":"How to Create a Ticket Template","icon":"file-lines","href":"/user-guides/ticketing/how-to-create-a-ticket-template"},{"title":"Create a ticket with AI assistance","icon":"wand-magic-sparkles","href":"/msp-guides/ticketing/open-a-ticket-with-ai"},{"title":"Change Management","icon":"shield-check","href":"/user-guides/ticketing/change-management"},{"title":"Ticket approval chains","icon":"list-check","href":"/user-guides/ticketing/ticket-approval-chains"},{"title":"Flow Webhook Recipient","icon":"webhook","href":"/user-guides/ticketing/flow-webhook-recipient"},{"title":"Understand your available request templates","icon":"file-lines","href":"/msp-guides/ticketing/understand-request-templates"},{"title":"Create and preview a ticket template","icon":"file-lines","href":"/user-guides/ticketing/create-and-preview-ticket-template"},{"title":"Translate ticket forms","icon":"language","href":"/user-guides/ticketing/translate-ticket-forms"},{"title":"Ticket description layout","icon":"align-left","href":"/user-guides/ticketing/ticket-description-layout"},{"title":"Send template answers to PSA fields","icon":"arrow-right-to-bracket","href":"/user-guides/ticketing/send-answers-to-psa-fields"}]},{"group":"Training","pages":[{"title":"Training","icon":"graduation-cap","href":"/user-guides/training/index"},{"title":"Find and enroll in a training course","icon":"book-open","href":"/user-guides/training/find-and-enroll"},{"title":"Take a course and track progress","icon":"graduation-cap","href":"/user-guides/training/take-a-course"},{"title":"View and share a training certificate","icon":"award","href":"/user-guides/training/certificates"},{"title":"Enable training for companies and users","icon":"graduation-cap","href":"/user-guides/training/enabling-training"},{"title":"Manage learning paths","icon":"route","href":"/user-guides/training/learning-paths"},{"title":"Security awareness training","icon":"shield-check","href":"/user-guides/training/security-awareness"},{"title":"Read security awareness learner status","icon":"user-shield","href":"/user-guides/training/read-awareness-status"},{"title":"Read a Breach Secure Now learner's risk details","icon":"user-shield","href":"/user-guides/training/read-bsn-risk"},{"title":"Open your Huntress training","icon":"shield-check","href":"/user-guides/training/open-huntress-training"},{"title":"Find Huntress training assignments","icon":"graduation-cap","href":"/user-guides/training/read-huntress-assignments"},{"title":"Read a Huntress curriculum and preview episodes","icon":"book-open","href":"/user-guides/training/read-huntress-curriculum"}]},{"group":"Projects","pages":[{"title":"Projects","icon":"folder-open","href":"/user-guides/projects/index"},{"title":"Projects and Onboarding are coming together","icon":"diagram-project","href":"/user-guides/projects/upcoming-onboarding-changes"},{"title":"Find and open a project","icon":"folder-open","href":"/user-guides/projects/find-projects"},{"title":"Filter and sort projects","icon":"filter","href":"/user-guides/projects/filter-projects"},{"title":"Native Projects: Start to Finish","icon":"folder-open","href":"/user-guides/projects/native-projects"},{"title":"Project Templates","icon":"layer-group","href":"/user-guides/projects/templates"},{"title":"Project AI, MCP, and Client Reviews","icon":"sparkles","href":"/user-guides/projects/ai-and-client-reviews"},{"title":"Project Workspace","icon":"list-check","href":"/user-guides/projects/workspace"},{"title":"Read and filter project ticket Kanban","icon":"table-columns","href":"/user-guides/projects/read-ticket-kanban"},{"title":"Read a project schedule","icon":"calendar-days","href":"/user-guides/projects/read-project-schedule"},{"title":"Filter the project schedule","icon":"filter","href":"/user-guides/projects/filter-project-schedule"},{"title":"Dispatch project work","icon":"calendar-clock","href":"/user-guides/projects/dispatch-board"},{"title":"Read the project overview","icon":"file-lines","href":"/user-guides/projects/read-project-overview"},{"title":"Read project phases and tickets","icon":"layer-group","href":"/user-guides/projects/read-project-phases"},{"title":"Use phase and ticket action menus","icon":"ellipsis","href":"/user-guides/projects/use-phase-ticket-actions"},{"title":"Project Team and Onboarding Contacts","icon":"users","href":"/user-guides/projects/read-project-team"},{"title":"Edit the project goal and description","icon":"pen-to-square","href":"/user-guides/projects/edit-project-details"},{"title":"Manage project contacts and the client sponsor","icon":"address-book","href":"/user-guides/projects/manage-project-contacts"},{"title":"Read project updates","icon":"message","href":"/user-guides/projects/read-project-updates"},{"title":"Read project milestones","icon":"calendar","href":"/user-guides/projects/read-project-timeline"},{"title":"Read deliverables and download project files","icon":"file-arrow-down","href":"/user-guides/projects/read-project-deliverables"},{"title":"Create and manage project deliverables","icon":"list-check","href":"/user-guides/projects/manage-project-deliverables"},{"title":"Upload and share deliverable documents","icon":"file-arrow-up","href":"/user-guides/projects/manage-deliverable-documents"},{"title":"Write and share project updates","icon":"pen-to-square","href":"/user-guides/projects/write-project-updates"},{"title":"Create and manage project milestones","icon":"flag-checkered","href":"/user-guides/projects/manage-project-milestones"},{"title":"Project Calendar","icon":"calendar","href":"/user-guides/projects/calendar"},{"title":"Respond to project decisions and action items","icon":"list-check","href":"/user-guides/projects/respond-to-project-actions"},{"title":"Create and manage project decisions and action items","icon":"clipboard-list","href":"/user-guides/projects/manage-project-actions"},{"title":"Export a project to Excel","icon":"file-spreadsheet","href":"/user-guides/projects/export-project-to-excel"}]},{"group":"Compliance","pages":[{"title":"Compliance","icon":"shield-halved","href":"/user-guides/compliance/index"},{"title":"Find compliance checks and understand results","icon":"shield-halved","href":"/user-guides/compliance/find-and-read-checks"},{"title":"Read compliance guidance, evidence, and history","icon":"shield-halved","href":"/user-guides/compliance/read-evidence-and-history"},{"title":"Export the compliance check list","icon":"shield-halved","href":"/user-guides/compliance/export-checks"},{"title":"Compliance AI","icon":"sparkles","href":"/user-guides/compliance/compliance-ai"},{"title":"Risk Management","icon":"shield-halved","href":"/user-guides/compliance/risk-management"},{"title":"Liongard Compliance Metrics","icon":"gauge-high","href":"/user-guides/compliance/liongard-metrics"},{"title":"Adding CIS Benchmarks","icon":"book","href":"/user-guides/compliance/adding-cis-benchmarks"},{"title":"Add NIS2 playbooks","icon":"book","href":"/user-guides/compliance/adding-nis2-playbooks"},{"title":"Track AI Readiness on a dashboard","icon":"brain","href":"/user-guides/compliance/ai-readiness-dashboard"},{"title":"Review completed compliance assessments","icon":"clock-rotate-left","href":"/user-guides/compliance/view-check-history"}]},{"group":"Documentation","pages":[{"title":"Documentation","icon":"book","href":"/user-guides/documentation/index"},{"title":"Find and read shared documents","icon":"file-lines","href":"/user-guides/documentation/find-shared-documents"},{"title":"Use the Documentation Hub","icon":"grid-2","href":"/user-guides/documentation/resource-hub"},{"title":"Use shared passwords","icon":"key","href":"/user-guides/documentation/shared-passwords"},{"title":"View shared IT records and procedures","icon":"server","href":"/user-guides/documentation/view-it-records"},{"title":"Create and maintain portal documents","icon":"file-pen","href":"/user-guides/documentation/create-portal-documents"},{"title":"Add files and links to the Documentation Hub","icon":"grid-2","href":"/user-guides/documentation/add-files-and-links-to-hub"},{"title":"Suggest related guides on new tickets","icon":"book-open","href":"/user-guides/documentation/related-guides"}]},{"group":"Invoices","pages":[{"title":"Invoices","icon":"file-invoice-dollar","href":"/user-guides/invoices/index"},{"title":"Find and review invoices","icon":"file-invoice","href":"/user-guides/invoices/view-invoices"},{"title":"Where invoice data comes from","icon":"file-invoice-dollar","href":"/msp-guides/invoices/invoice-data-sources"},{"title":"Download and export invoices","icon":"download","href":"/user-guides/invoices/download-invoices"},{"title":"Use an invoice payment link","icon":"credit-card","href":"/user-guides/invoices/pay-an-invoice"},{"title":"MSP: review Pax8 invoice charges","icon":"receipt","href":"/user-guides/invoices/view-pax8-invoices"},{"title":"Upload invoices, quotes and orders with the API","icon":"code","href":"/msp-guides/invoices/upload-with-the-api"}]},{"group":"Agreements and contracts","pages":[{"title":"Agreements and contracts","icon":"file-signature","href":"/user-guides/agreements/index"},{"title":"Find and review an agreement","icon":"file-contract","href":"/user-guides/agreements/view-agreements"},{"title":"Understand agreement balances","icon":"clock","href":"/user-guides/agreements/read-balances"},{"title":"Open an agreement PDF","icon":"file-pdf","href":"/user-guides/agreements/download-documents"},{"title":"Upload and manage agreement PDFs","icon":"file-arrow-up","href":"/user-guides/agreements/manage-documents"}]},{"group":"Storefront","pages":[{"title":"Storefront","icon":"store","href":"/user-guides/storefront/index"},{"title":"Review your subscriptions","icon":"layer-group","href":"/user-guides/storefront/view-subscriptions"},{"title":"Review Azure usage","icon":"cloud","href":"/user-guides/storefront/view-azure-usage"}]},{"group":"Quotes","pages":[{"title":"Quotes","icon":"file-contract","href":"/user-guides/quotes/index"},{"title":"Connect and manage Quoter","icon":"plug","href":"/user-guides/quotes/setup"},{"title":"Find and open a quote","icon":"file-contract","href":"/user-guides/quotes/view-quotes"},{"title":"Read a quote’s details","icon":"file-invoice-dollar","href":"/user-guides/quotes/read-quote-details"},{"title":"Download quote documents and export the list","icon":"file-arrow-down","href":"/user-guides/quotes/download-quotes"},{"title":"Control company quote access","icon":"user-shield","href":"/user-guides/quotes/manage-company-access"},{"title":"Troubleshoot missing Quoter quotes and company links","icon":"magnifying-glass","href":"/user-guides/quotes/troubleshoot-quoter-quotes"},{"title":"Troubleshoot QuoteWerks quotes and QuoteValet links","icon":"file-invoice-dollar","href":"/user-guides/quotes/troubleshoot-quotewerks-quotes"},{"title":"Troubleshoot Salesbuildr quotes and PDFs","icon":"file-invoice-dollar","href":"/user-guides/quotes/troubleshoot-salesbuildr-quotes"}]},{"group":"Reporting","pages":[{"title":"Reporting","icon":"chart-pie","href":"/user-guides/reporting/index"},{"title":"Design reporting blocks with AI","icon":"wand-magic-sparkles","href":"/user-guides/reporting/design-ai-blocks"},{"title":"Present reports as slides","icon":"presentation-screen","href":"/user-guides/reporting/present-reports"},{"title":"Brand packages","icon":"palette","href":"/user-guides/reporting/brand-packages"},{"title":"Planner report with a cover page","icon":"book-open","href":"/user-guides/reporting/planner-report"},{"title":"Design custom reporting blocks","icon":"chart-column","href":"/user-guides/reporting/custom-blocks"},{"title":"Edit a report presentation","icon":"presentation-screen","href":"/user-guides/reporting/edit-presentation"},{"title":"Reports Imports","icon":"inbox","href":"/user-guides/reporting/email-imports"},{"title":"Industry trends and software standardization","icon":"industry","href":"/user-guides/reporting/industry-insights"}]}]},{"anchor":"Protection","icon":"shield-halved","pages":[{"title":"Protection","href":"/user-guides/cloud"}]},{"anchor":"MSP Tools","icon":"toolbox","pages":[{"title":"MSP Tools","href":"/user-guides/msp-tools"}]},{"anchor":"Administration","icon":"gear","pages":[{"title":"Administration","href":"/user-guides/settings"}]},{"anchor":"Integrations","icon":"plug","pages":[{"title":"Integrations","href":"/user-guides/integrations"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/budgets/list-budgets"}]},{"tab":"Release Notes","pages":[{"title":"Release Notes","href":"/release-notes"}]}]},"basePath":"","title":"Managing Portals - MSPortal.ai Documentation","buildId":"dpl_5joLUXmnJgwqjrHAS4dxZrQTdxgh","deploymentId":"dpl_5joLUXmnJgwqjrHAS4dxZrQTdxgh","dynamics":["07c022d89b","a74be98ba7","a9bb46feb3"],"chunks":["Frame-B_503rGq.js","DynamicMarkdown-BfddVCX7.js","zoom-image-lightbox-B3yYlvdS.js","lightbox-handle-r17bVUz3.js","Markdown-DsWjhwJ4.js","clsx-B2t_mZQG.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CUljsAY7.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Cf70306N.js"]}