Microsoft 365 Licenses logo
Licensing

Microsoft 365 Licenses

Assign, reclaim, and forecast Microsoft 365 licenses — no more digging through the admin center.

Dex talks to the Microsoft Graph license endpoints (/subscribedSkus, /users/{id}/assignLicense, /users/{id}/licenseDetails) under the same tenant authorization it uses for the rest of Microsoft 365. Admins can list purchased SKUs, see who's consuming what, assign and unassign licenses by friendly name, and run forecasts against historical ticket data to catch license shortages before users notice.

Book a Demo

What Dex does with Microsoft 365 Licenses

Dex handles both admin workflows and employee self-service — all policy-guardrailed and audit-logged.

A

For admins (CoAdmin)

  • List every subscribed SKU in the tenant with total, consumed, and available seat counts
  • Assign a Microsoft 365 / Office 365 / Power BI / Teams / Intune license to a user by friendly name or SKU
  • Assign by email/UPN, Service Request ID, user name lookup, or firstName+lastName with domain fallback
  • Automatically set usageLocation if missing (required by Graph before a license can be assigned)
  • Unassign a license from a user — idempotent (checks that the user actually has the SKU before removing)
  • Search users currently holding a specific license SKU (e.g. "who has Power BI Pro?")
  • List every license assigned to a specific user, with service plan breakdown
  • Forecast license exhaustion by analyzing historical ticket requests + current consumption
  • Identify SKUs below an availability threshold (default 10%) and post consolidated alerts to a Slack channel
  • Dry-run mode for both assign and unassign — validates inputs and availability without making changes
E

For employees (self-service)

  • Request a license in plain language ("I need Power BI Pro for the new dashboard")
  • Check what licenses are assigned to your account

Just ask Dex

Your team types a request in plain language. Dex investigates, plans, and executes — with the right guardrails.

Admin prompts

  • >Assign Microsoft 365 E3 to jenna.rossi@acme.com
  • >Unassign Power BI Pro from every user who hasn't signed in for 90 days
  • >Show me all subscribed SKUs with less than 5 seats available
  • >Which licenses does marco@acme.com currently have?
  • >Find everyone with an Office 365 E5 licence on the Sales team
  • >Forecast our M365 license usage for the next 4 weeks — flag anything we'll run out of
  • >Dry-run: assign Visio Plan 2 to dan@acme.com — tell me if we have capacity and if his usageLocation is set
  • >Post a license-shortage report to #it-alerts if any SKU drops below 10% available

Employee prompts

  • >Do I have a Power BI licence?
  • >I need a Visio Plan 2 licence for a client project
  • >What Microsoft licences is my account using?

Policy actions

Every action Dex can take on Microsoft 365 Licenses is declared, scoped, and guardrailed. Admins control which apply, who approves them, and whether they're limited to self-service.

ActionWhat it does
m365_license_list_skusList tenant SKUs with seat usage and availability
m365_license_list_user_licensesList licenses assigned to a specific user
m365_license_search_licensed_usersSearch users holding a given SKU or matching a filter
m365_license_assignAssign a Microsoft license to a user
m365_license_unassignRemove a Microsoft license from a user
m365_license_forecastForecast license exhaustion based on historical ticket data and current consumption
m365_license_monitor_alertPost license shortage alerts to a configured Slack channel

How to configure Microsoft 365 Licenses

Onboarding takes minutes. Dex validates your credentials before saving them.

Setup steps

  1. 1
    Microsoft 365 Licenses shares the same tenant authorization as the rest of the M365 suite — no separate credentials required.
  2. 2
    When the admin onboards their M365 tenant to Dex (global admin consent for Microsoft Graph), Dex automatically inherits the scopes it needs for license management: Organization.Read.All, User.ReadWrite.All, Directory.Read.All.
  3. 3
    On the first license operation, Dex calls GET /subscribedSkus to discover the tenant's purchased products and caches the SKU ID → friendly name mapping.
  4. 4
    If you add or cancel subscriptions in M365 admin center, Dex picks up the changes on the next discovery call (no reconfiguration needed).
  5. 5
    Optional: to enable the license monitor to post Slack alerts, configure the Slack channel integration and set the default channel on the monitor tool (e.g. #license-alerts).

No extra credentials

This integration is covered by your Microsoft 365 tenant authorization to Dex. There are no per-app credentials to create or rotate.

Requirements

  • A Microsoft 365 tenant already connected to Dex via global admin consent (the Entra ID / M365 base integration)
  • Graph scopes granted: Organization.Read.All (list SKUs), User.ReadWrite.All (assign/unassign), Directory.Read.All (user lookup)
  • Users must have a valid usageLocation set before license assignment — Dex auto-sets it from the tenant's default country if missing
  • License assignment respects group-based licensing — if a user receives licenses via a group, direct assignment by Dex can conflict with the group policy
  • The forecasting / monitor feature requires ticket history data (e.g. from the SysAid or ServiceNow connector) to estimate future demand

See Dex run Microsoft 365 Licenses

Book a 30-minute walkthrough with our team and see how autonomous IT works in your environment — or get started for free.