> ## Documentation Index
> Fetch the complete documentation index at: https://kb.mspprocess.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Client Portal: Admin Setup

> OverviewThis guide covers admin setup of the client portal on the Pro plan, including smart forms and cards, for the web portal, the Teams app and the…

## Overview

This guide covers admin setup of the client portal on the Pro plan, including smart forms and cards, for the web portal, the Teams app and the mobile app, which share one chat-first layout.

## Before you begin

1. **Plan**
2. Client Portal is included with the Pro plan.
3. **PSA connection**
4. your PSA (ConnectWise, Autotask, Halo, SuperOps or Synchro) is connected to MSP Process.
5. **Client contacts**
6. your clients' contacts exist in the PSA. Portal users see the tickets opened under their own contact record.
7. **Ticket statuses**
8. you know which PSA statuses should show to clients as Open and which as Closed (Step 3).
9. This matters most on ConnectWise and Halo.
10. **Teams app (if deployed into your Teams environment)**
11. access to the Teams Admin Center, a 192×192 PNG color icon, a 32×32 PNG outline icon, and the app name and descriptions you want clients to see.
12. **Smart forms (if ticket templates have been created)**
13. a list of your 6–8 most common request types, any SOPs you want AI to turn into forms, and the Roost or Trigger form URLs you want to embed.
14. **Cards (if applicable)**
15. the destination URLs for each card, such as your website contact page, knowledge base and billing portal.
16. These are the same as the Custom Tabs ([Adding Custom Tabs in the Client Portal](https://kb.mspprocess.com/msp-process/ai-service-desk/client-portal/adding-custom-tabs-in-the-client-portal.md))
17. **Tech Assist cards (if applicable)**
18. permission to install apps from the Teams Marketplace, and the Teams team and channel for each company.

##

## Step 1: Create a ticket property map

Ticket properties control how portal activity becomes a PSA ticket.

It is important to set this up first, as templates and the portal configuration both depend on it.

1. Go to **AI Service Desk → Ticketing → Ticket Properties** (or search for "Ticket Properties") and create a ticket property setting.
2. **Tip**: Name it something clear, such as **Client Portal Default**.

| ![](https://mintcdn.com/triggr/2kaOQdWPjLF3xX8p/images/msp-process-kb/17902385e1db.webp?fit=max\&auto=format\&n=2kaOQdWPjLF3xX8p\&q=85\&s=98f721a42a48fc2d6307c8d4f7c9d376) | ![](https://mintcdn.com/triggr/2kaOQdWPjLF3xX8p/images/msp-process-kb/22e4a21a65ac.webp?fit=max\&auto=format\&n=2kaOQdWPjLF3xX8p\&q=85\&s=1b6ef72c647354018d795f1c3bad1c5f) |
| - | - |

2. Fill in the required fields. Available fields vary by PSA, but typically include:
3. **Catch-all company**, **site** and **user**, used when a ticket can't be matched to a contact
4. EX: SMS or AI Voice
5. **Team** or **queue**, **ticket type**, **priority**, **impact** and **urgency**
6. **New ticket status**, the status new tickets start in
7. **Acknowledge status**, applied when your team picks the ticket up
8. EX: In Progress
9. **Client reply status**, applied when the client messages on an existing ticket
10. EX: Customer Note Added
11. **Tech reply status**, applied when your team replies
12. EX: Waiting Customer
13. **Closed status**
14. **Halo Specific**:
15. Select **Validate**. MSP Process creates and closes a test ticket so you can confirm the mapping works. (believe this can be removed)
16. Click **Submit**.

## Step 2: Build your ticket templates

Templates are the forms clients open from the forms button, and each submission creates a ticket in your PSA. Start with 6–8 templates for your most common requests (look at the last 30 days of tickets), plus a catch-all named **General Support Request**.

Please review the [Setting Up Client Portal Ticket Templates (with Conditional Logic)](https://kb.mspprocess.com/msp-process/ai-service-desk/client-portal/setting-up-client-portal-ticket-templates-with-conditional-logic.md)

**Restrict who sees a template**

Use tags, for example for HR-only onboarding forms or a separate Roost form per client:

1. Create a tag, such as **hr-acmeco**.
2. Apply the tag to the template.
3. Go to **Client Portal → Portal Users** and apply the same tag to each user who should see it.

Users without the tag don't see the template. Tags are assigned manually today, and Portal Users lists only users you have invited.

**Tip**: To hide a template from everyone without deleting it, apply a tag that no user holds, such as **Disabled**.

##

## Step 3: Create the portal configuration

The web portal configuration is the source of truth for the web, Teams and mobile versions. The changes you make here appear everywhere without redeploying anything.

1. Go to **Client Portal → Configurations** and click Create Configuration to create a new portal.

| ![](https://mintcdn.com/triggr/2kaOQdWPjLF3xX8p/images/msp-process-kb/3632c32e1000.webp?fit=max\&auto=format\&n=2kaOQdWPjLF3xX8p\&q=85\&s=ef5af676d5dfb032e5f643e20c3daeb5) | ![](https://mintcdn.com/triggr/2kaOQdWPjLF3xX8p/images/msp-process-kb/384d209f7ecd.webp?fit=max\&auto=format\&n=2kaOQdWPjLF3xX8p\&q=85\&s=54cbf585233b14ab79bc34b470de2ab9) |
| - | - |

2. On the **General** tab:
3. Enter a portal name your clients will recognize.
4. Enter the portal domain as a subdomain only. Do not include https\://.
5. Choose a color scheme. If your logo colors clash with the default blue, white is a good starting point.
6. Set the default ticket properties to your **Client Portal Default** map.
7. Turn on the default ticket template so clients always have a catch-all option, and rename it **General Support Request**.

![](https://mintcdn.com/triggr/qgn0c5cLkGKqcauq/images/msp-process-kb/971b8fd55c74.webp?fit=max\&auto=format\&n=qgn0c5cLkGKqcauq\&q=85\&s=41b09299d28d4652eb6f93328fe621a0)

3. On the **Contact Info** tab:

| **Configurations** | **Display in the Client Portal** |
| - | - |
| ![](https://mintcdn.com/triggr/2kaOQdWPjLF3xX8p/images/msp-process-kb/14d666b07dce.webp?fit=max\&auto=format\&n=2kaOQdWPjLF3xX8p\&q=85\&s=d5fab7762f7b836699c8a5678623956c) | ![](https://mintcdn.com/triggr/qgn0c5cLkGKqcauq/images/msp-process-kb/87cf852b0ce7.webp?fit=max\&auto=format\&n=qgn0c5cLkGKqcauq\&q=85\&s=28b33548baa03eecdd1273dedf5d68c2) |

4. **Chat** tab:
5. Turn on **AI Chat Assist** and name your AI agent.
6. Choose how chats are logged: each message as its own progress note (gives technicians live context but can be noisy), or the full session when the ticket closes.
7. Note: If both options are checked, "Log Chat session to ticket on close" with supersede the other option.
8. Set ticket notes to **internal**.
9. Turn on **change ticket status on message** so the status updates when a technician or client replies.
10. Add an **SLA banner**. It appears at the top of every conversation and sets the client's expectation for your response time.

![](https://mintcdn.com/triggr/-njaXAnAb5AWpJCy/images/msp-process-kb/4e4db5cd3b84.webp?fit=max\&auto=format\&n=-njaXAnAb5AWpJCy\&q=85\&s=32d917376f545962c826f212458aa3f0)

![](https://mintcdn.com/triggr/-njaXAnAb5AWpJCy/images/msp-process-kb/6bce0648de2e.webp?fit=max\&auto=format\&n=-njaXAnAb5AWpJCy\&q=85\&s=143e6e773b898fa5a8bb14cc614f8016)

5. On the **Ticket visibility** tab, choose which PSA statuses count as **Open** and which count as **Closed**.
6. This is required for ConnectWise and Halo because their statuses have no built-in open or closed flag.
7. Include your new, waiting-on-customer and customer-replied statuses under Open.
8. Any status you leave out is hidden from clients. You can also limit visible tickets by queue and ticket type.

| User Customized Statuses for Ticket Filters | ![](https://mintcdn.com/triggr/dXDzJtUmPBaHtkPV/images/msp-process-kb/fd3016d27ec2.webp?fit=max\&auto=format\&n=dXDzJtUmPBaHtkPV\&q=85\&s=bc93f35f113e324a0e6bfd577ebc5837) |
| - | - |
| User Status Values from the Default Ticket Settings | ![](https://mintcdn.com/triggr/-njaXAnAb5AWpJCy/images/msp-process-kb/7484727b7ef5.webp?fit=max\&auto=format\&n=-njaXAnAb5AWpJCy\&q=85\&s=d29102a4a1c40f65ab139e3a4259d2bd) |

6. Click **Submit**.

You can create more than one portal, but most partners need only one. Common reasons for several: a co-managed environment that needs its own branding, chat turned on for some clients and off for others, or different template lists for different client types.

## Step 4: Deploy the Teams app

The Teams app reads all of its settings from your web portal. Only changes to the Teams app package itself need a redeploy.

Please review [Deploying the MSP Process Teams Bot Into a Microsoft Teams Environment](https://kb.mspprocess.com/msp-process/how-to-articles/deploying-the-msp-process-teams-bot-into-a-microsoft-teams-environment.md) for more information on how to deploy to the Teams app.

Allow up to 24 hours for the app to appear. Because the name and icons are part of the package, changing them later means uploading a new version.

## Step 5: Add cards

Cards are tiles on the portal home page that send users to whatever you choose, such as your knowledge base, billing portal or a Trigger form. You may also hear them called custom tabs or adaptive cards.

The portal ships with **My Requests**, **Tech Verification** and **Knowledge Base**.

1. Invoices are not a card: they are a role-based feature.

![](https://mintcdn.com/triggr/o9r5jEtjdR2oUtiW/images/msp-process-kb/af149943eb80.webp?fit=max\&auto=format\&n=o9r5jEtjdR2oUtiW\&q=85\&s=0aca44319befcb6405e173d5ca702cfa)

Please review [Adding Custom Tabs in the Client Portal](https://kb.mspprocess.com/msp-process/ai-service-desk/client-portal/adding-custom-tabs-in-the-client-portal.md) for more information on creating Custom Tabs.

Use **embedded** for pages that allow themselves to be shown inside another page, such as many knowledge bases.

Use a **new browser tab** when the destination blocks embedding, needs its own sign-in or doesn't support single sign-on.

1. Microsoft sign-in is a known problem for sites embedded inside Teams, so switch a card to a new tab if it fails to load or keeps asking for credentials there. Trigger forms are the exception and open seamlessly.

You can limit a card to specific client portals, but not to individual users or roles. If different audiences need different cards, such as an IT director versus end-users, create a separate portal for each. To restrict who can open a particular form, use tags on the ticket template instead.

Card Suggestions:

1. **Contact us** card linking to a page on your website with your phone, email and hours
2. **Knowledge base** (IT Glue, Hudu or SharePoint)
3. **Billing**
4. **Status** (a status page or monitoring dashboard)
5. **Training**
6. **Schedule a call** (your Schedule Assist link)
7. **New user onboarding** (a Trigger form).

###

## Roles and What Your Users See

| **Role** | Can View Their Tickets | Can View Tickets Across Multiple Companies | Can View Other User's Tickets | Can View the Invoices Tab\* | Can View Invoices Across Multiple Companies |
| - | - | - | - | - | - |
| User (Default) | **Yes** | **No** | **No** | **No** | **No** |
| Manager | **Yes** | **Yes** | **No** | **Yes** | **Yes** |
| Accounting User | **Yes** | **Yes** | **Yes** | **Yes** | **No** |
| Admin | **Yes** | **Yes** | **Yes** | **Yes** | **Yes** |

\*The Invoices tab is only supported when the Client Portal is connected to ConnectWise

### How to Assign a Role to a Client Portal User

1. Navigate to Client Portal -> Portal Users
2. Select your Client Portal configuration from the drop-down menu
3. In the Actions column, click the pencil icon to edit the Portal User
4. In the Role drop-down menu, choose the Role you want to assign to the user
5. Click the Update button

![](https://mintcdn.com/triggr/-njaXAnAb5AWpJCy/images/msp-process-kb/5372a8d92a12.webp?fit=max\&auto=format\&n=-njaXAnAb5AWpJCy\&q=85\&s=39890b3ad402822835486f0d95ef214b)

## Troubleshooting

### **A client can't see their open ticket in the portal**

1. The ticket's PSA status isn't selected under Ticket visibility. Add it to the Open list and the All tickets list on the portal configuration.

###

### **The Teams app doesn't appear for users**

1. Teams can take up to 24 hours to propagate a new app. Confirm the app is installed for the right users or groups and pinned in a setup policy.

###

### **A Roost or PIA form asks users to sign in again**

1. Those platforms don't pass through single sign-on, so the form opens in a new browser window and the user signs in there. Trigger forms use single sign-on and open seamlessly.

### **A client can't see a template**

1. The client is missing the template's tag, or the template carries a tag no one has. Compare the tags on the template with the tags on the user under Portal Users.

### **Template changes don't show for clients**

1. Your edits are still in draft. Open the template and select Publish.

### **A card shows a blank page or keeps asking for credentials inside Teams**

1. The destination doesn't work when embedded. Edit the card and switch it to open in a new browser tab.

### **A card is visible to users who shouldn't see it**

1. Cards can't be limited to individual users. Move the card to a separate portal that only the right audience uses.

## What's next

1. Client Portal Daily Use: New Portal UI
2. Teams bot deployment guide

## Need Help?

[Contact MSP Process Support](https://kb.mspprocess.com/msp-process/how-to-articles/how-to-contact-support.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.