> For the complete documentation index, see [llms.txt](https://docs.intuneassistant.cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.intuneassistant.cloud/extensions/msp-support.md).

# MSP Support

## What Is This Page?

The **Customer Information** page is the central hub for managing your organization's relationship with Intune Assistant — who you are, which tenants you manage, what licenses are active, and which tenant context is currently selected for all other pages in the application.

For **MSP (Managed Service Provider)** accounts, this page is especially important. It allows you to register and manage **multiple customer tenants**, grant the required admin consent for each, assign licenses, and switch the active **tenant context** so that every other page in Intune Assistant operates against the correct customer environment. This is how an MSP engineer can move between managing one customer's Intune environment and another's without ever logging out.

{% hint style="info" %}
**MSP + GDAP is the combination that enables full multi-tenant management.** An MSP account with a GDAP relationship means you can add customer tenants, consent on their behalf, and manage their Intune environment through the delegated permissions Microsoft has granted you.
{% endhint %}

***

## Account Types — What Is Yours?

When you first open this page, look at the **Account Type** badges in the Customer Details card. There are three independent flags:

| Badge         | When It Shows                                   | What It Means                                                                              |
| ------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------ |
| **MSP**       | Your account is registered as an MSP            | You can manage multiple tenants and add customer tenants using GDAP                        |
| **Direct**    | Your account is not an MSP                      | You manage only your own home tenant                                                       |
| **Active**    | You have a paid license                         | Full feature access including licensed extensions                                          |
| **Community** | No paid license, or community tier only         | Core features available, licensed extensions not accessible                                |
| **GDAP**      | Your account has a GDAP relationship configured | You can use Granular Delegated Admin Privileges to manage customer tenants on their behalf |
| **No GDAP**   | No GDAP relationship detected                   | You can only manage your own home tenant                                                   |

***

## The Page Layout

The page is divided into three main areas:

1. **Customer Details** — your organization's profile information
2. **License Information + Summary** — your active licenses and tenant counts
3. **Tenant Management table** — all registered tenants with their status and actions

***

## Customer Details Card

The left card shows your organization's profile:

| Field               | What It Shows                                                                        |
| ------------------- | ------------------------------------------------------------------------------------ |
| **Customer Name**   | Your organization's registered name in Intune Assistant                              |
| **Address**         | Your registered address, or `Not provided` if not set                                |
| **Primary Contact** | The primary contact email for the account                                            |
| **Account Type**    | The MSP/Direct, Active/Community, and GDAP/No GDAP badges described above            |
| **Home Tenant ID**  | The Entra ID tenant ID of your own Microsoft 365 tenant — the one you signed in with |

***

## License Information Card

This card is shown when you hold a **non-community** (paid) license. It lists every active customer-level license with:

| Field                 | What It Shows                                                    |
| --------------------- | ---------------------------------------------------------------- |
| **License Type**      | `Community`, `Standard`, or `Enterprise`                         |
| **Active / Inactive** | Whether the license is currently active                          |
| **Trial**             | Shown as an extra badge if the license is a trial                |
| **Max Tenants**       | The maximum number of customer tenants this license permits      |
| **Expires**           | The expiry date of the license, or `Never` if it does not expire |

### Tenant Limit Warning

{% hint style="warning" %}
If the total number of registered tenants has reached the maximum allowed by your combined active licenses, an **amber warning banner** appears:

> ⚠️ Maximum tenant limit reached (X/Y tenants) — Contact support to increase your tenant limit or upgrade your license.

The **Add Tenant** button in the Tenant Management section is automatically disabled when this limit is reached.
{% endhint %}

***

## Summary Card

A two-number summary showing:

* **Total Tenants** (blue) — all tenants registered on your account
* **Enabled Tenants** (green) — tenants with `isActive = true`

***

## Tenant Management Table

The main table lists every tenant registered on your account. The columns shown depend on your account type.

### Columns for Community-Only Accounts

| Column             | What It Shows                                                            |
| ------------------ | ------------------------------------------------------------------------ |
| **Display Name**   | The tenant's display name                                                |
| **Tenant ID**      | The Entra ID tenant GUID in monospace                                    |
| **Domain**         | The primary domain of the tenant (e.g., `contoso.onmicrosoft.com`)       |
| **Consent Status** | The onboarding readiness of the tenant — see Consent Status States below |

### Columns for Paid (Non-Community) Accounts

| Column             | What It Shows                                                                                             |
| ------------------ | --------------------------------------------------------------------------------------------------------- |
| **Display Name**   | The tenant's display name                                                                                 |
| **Tenant ID**      | The Entra ID tenant GUID in monospace                                                                     |
| **Domain**         | The primary domain                                                                                        |
| **Type**           | `Primary`, `Trial`, or `Standard` badge                                                                   |
| **GDAP**           | `Enabled` or `Disabled` badge indicating whether a GDAP relationship exists for this tenant               |
| **License Status** | Count of licenses assigned to this tenant, with an orange warning icon if any license is awaiting consent |
| **Actions**        | A pencil (edit) icon that opens the tenant's management page                                              |

### Consent Status States

For community accounts, the Consent Status column shows one of three states:

| Status                  | Meaning                                                                      | Action Available                        |
| ----------------------- | ---------------------------------------------------------------------------- | --------------------------------------- |
| **Consent Required**    | The tenant's community license exists but admin consent has not been granted | **Grant Consent** button appears inline |
| **Onboarding Required** | Consent was granted but onboarding has not completed                         | Complete onboarding                     |
| **Ready**               | Consent granted and onboarding complete — tenant is fully usable             | No action required                      |

> 📸 *\[Screenshot placeholder: Tenant Management table showing three tenants — one with a red "Consent Required" badge and inline Grant Consent button, one with a grey "Onboarding Required" badge, and one with a green "Ready" badge]*

### Clicking a Tenant Row

Clicking anywhere on a tenant row **sets that tenant as the active context** for the entire application. A brief blue shimmer animation confirms the selection. After clicking, all other pages (Assignments, Configuration, Audit Events, etc.) operate against that tenant's data.

The currently selected tenant is remembered in the application context and displayed in the tenant selector in the sidebar.

***

## Adding a Tenant (MSP Accounts Only)

The **Add Tenant** button is visible in the Tenant Management card header only when:

* Your account is an **MSP** (`isMsp = true`)
* Your account is **Active** (`isActive = true`)
* You have **not reached your tenant limit**

Clicking it opens the **Tenant Onboarding Modal** — a guided flow for registering a new customer tenant. See [Tenant Onboarding](/extensions/msp-support/tenant-management.md) for the full walkthrough.

After successful onboarding, the page automatically refreshes and the new tenant appears in the table.

***

## Editing a Tenant

For paid accounts, clicking the **pencil icon** in the Actions column takes you to that tenant's own management page (rather than opening a popup) — a full-width page with everything for that tenant laid out in clear sections, so you can see the tenant's whole state at once instead of digging through tabs.

### Overview section

Shows the tenant's display name, domain, and Tenant ID, along with status badges (Primary / Trial, GDAP Enabled / Disabled).

**Set as Active Context** — sets this tenant as the active context for the entire application. When already selected, the button shows a green **Active Context** label with a checkmark.

{% hint style="info" %}
This is the primary way to switch between customer environments in MSP workflows. Set the context here, then navigate to any other section — all data will be scoped to that tenant.
{% endhint %}

### Module Access section (MSP accounts only)

Lists every module available to your MSP account, with an **Add** button for modules not yet enabled on this tenant, or enable/remove controls for modules that are active. Only modules your customer license actually permits are offered — see [License Management](/extensions/msp-support/license-management.md) for details on what happens if a module can't be added.

### Worker License section (MSP accounts only)

Generates a license key for deploying the on-premise Worker for this tenant. Enter a contact email (required) and optional notes, then click **Generate**. The generated key is shown once with a copy button — save it immediately, as it cannot be retrieved again.

### Danger Zone section

Click **Remove Tenant** to arm the confirmation, then **Confirm Remove** to permanently delete the tenant. See Deleting a Tenant below.

{% hint style="info" %}
**Direct (non-MSP) accounts** only see the Overview and Danger Zone sections here — module and license management is MSP-only. If you're on a Direct account and want a module enabled or want to change your plan, contact support; we'll update your account and add the modules you need.
{% endhint %}

***

## Granting Consent for Community Tenants

For community-only accounts, consent is managed directly from the **Consent Status column** in the main tenant table.

When a tenant shows a red **Consent Required** badge:

1. Click the **Grant Consent** button that appears next to the badge
2. A consent popup opens (600×700 px)
3. Complete the Microsoft admin consent flow in the popup
4. The popup closes and the consent callback is processed automatically
5. The tenant's status updates to **Ready** (green) after a successful refresh

{% hint style="warning" %}
**Popups must be allowed** for the Intune Assistant domain. If your browser blocks the popup, you will see an error message. Add the site to your browser's allowed popups list and try again.
{% endhint %}

***

## Deleting a Tenant

In the Danger Zone section of the tenant's management page, click **Remove Tenant** to arm the action — the button is replaced with a confirmation:

> ⚠️ Are you sure you want to remove **"Tenant Name"**? This cannot be undone.

Click **Cancel** to back out, or **Confirm Remove** (red, destructive) to proceed.

After deletion, the tenant is removed from the backend and you're returned to the customer overview page, where the tenant list refreshes automatically.

{% hint style="warning" %}
**Deletion is permanent.** There is no soft-delete or recovery option. Only delete tenants you are certain should be removed.
{% endhint %}

***

## The Tenant Context — Why It Matters

**Setting tenant context is the most important action on this page for MSP users.**

Every other section of Intune Assistant — Assignments, Configuration, Audit Events, Compare, Devices, Conditional Access — scopes all its data to the **currently selected tenant context**. When you change context here, you are effectively switching which customer's Intune environment you are working in.

The flow for an MSP engineer managing multiple customers is:

1. Come to the Customer page
2. Find the customer you need to work on
3. Click the tenant row (or use **Set as Active Context** on the tenant's management page)
4. Navigate to whichever section you need (Assignments, Configuration, etc.)
5. All data on those pages now comes from that customer's tenant via the GDAP permissions you hold
6. Return to the Customer page to switch to a different customer

> 📸 *\[Screenshot placeholder: Tenant Management table with one row highlighted in blue showing the currently selected tenant, and the sidebar tenant selector showing the same tenant name]*

***

## GDAP — How It Enables MSP Management

**GDAP (Granular Delegated Admin Privileges)** is the Microsoft framework that allows an MSP to manage a customer's Microsoft 365 and Intune environment without needing a user account in that tenant.

When GDAP is configured between your MSP tenant and a customer tenant:

* Your admin credentials in your own tenant gain delegated permissions in the customer's tenant
* The specific permissions available depend on the GDAP roles your customer has granted you
* Intune Assistant uses these delegated permissions to call Microsoft Graph on behalf of the customer tenant when that tenant is set as the active context

In the tenant table, the **GDAP** column shows `Enabled` (filled badge) or `Disabled` (outlined badge) for each registered tenant.

For GDAP to work correctly in Intune Assistant, admin consent must also be granted for the application in the customer tenant — which is what the consent flow in this page handles.

***

## Common MSP Workflows

### Onboard a new customer tenant

1. Ensure your account is MSP + Active
2. Click **Add Tenant**
3. Complete the Tenant Onboarding Modal — enter the customer's tenant ID or domain
4. The tenant appears in the table with a **Consent Required** or **Onboarding Required** status
5. Grant consent if prompted
6. Once **Ready**, click the tenant row to set it as context
7. Navigate to any section to start managing the customer's Intune environment

### Switch between customer environments

1. Come to Customer Information
2. Click the tenant row for the customer you want to work on
3. The context switches immediately
4. Navigate to the desired section — all data is now scoped to that customer

### Add a module to a customer tenant

1. Click the pencil icon on the customer's tenant row to open its management page
2. In the Module Access section, click **Add** next to the module you want to enable
3. The module appears active immediately — no consent popup is needed for module activation itself (consent for the underlying Graph permissions is handled separately, see [License Management](/extensions/msp-support/license-management.md))

### Review all tenants at a glance

The tenant table gives you a complete inventory at a glance. For paid accounts, use the **GDAP** column to verify which tenants have an active GDAP relationship, and the **License Status** column to spot any tenants that need consent attention.

***

## Related Pages

* [Tenant Onboarding](broken://pages/04c98f47968fd455ebe0b2137599db25e6c5839a) — the full onboarding modal walkthrough
* [Audit Events Dashboard](broken://pages/1ed8922c2d10239c59bee01d02a327a9e5aea276) — after setting context, view that tenant's audit events
* [Configuration](broken://pages/bf8cfc1652defbb6e82da219af77961d27eab1b3) — after setting context, manage that tenant's policies
* [Assignments](broken://pages/12bbf69a2dc58a504e36dcc069e64b5a29938bd0) — after setting context, review that tenant's assignments


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.intuneassistant.cloud/extensions/msp-support.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
