AscendCore
Back to Runbook Library
Provisioning Live in production

M365 License Assignment

Automate Microsoft 365 license assignment from Slack and Teams. Pool-availability check, approval-gated assignment, optional Intune or Jamf endpoint policy push.

Integrates with

IntuneJamf ProM365

The problem

Microsoft 365 license requests are deceptively expensive to fulfill manually: the IT admin has to check pool availability, identify the right SKU for the user's role, assign the seat in the M365 admin center, and confirm endpoint policy push so the user can actually install Office. Each request takes 5-10 minutes and the operation is identical across users — a textbook automation candidate that still consumes hours of senior engineering time per week.

What AscendCore does

A user (or new-hire workflow) requests an M365 license. AscendCore checks pool availability for the requested SKU, identifies the best-available license if the requested SKU is exhausted, proposes the assignment to an IT admin, and on approval assigns the seat and triggers the device-policy push if the user's device is enrolled in Intune or Jamf.

Workflow

  1. Detect — chat request, new-hire workflow trigger, or admin-portal form
  2. Check pool — query M365 admin for license-pool availability across SKUs
  3. Propose — admin approval card with target user, requested SKU, and pool status
  4. Approve — one-click human approval (always required for license-cost visibility)
  5. Assign — license assigned via Microsoft Graph API
  6. Push policy — Intune or Jamf installation policy pushed to the user's enrolled device
  7. Notify — user receives confirmation; pool levels logged

Integrations

  • Microsoft 365 (Graph API) — License assignment, pool query
  • Microsoft Intune — Endpoint policy push for managed devices
  • Jamf Pro — Endpoint policy push for managed Apple devices
  • Slack + Microsoft Teams — Request trigger and confirmation

Status

Live in production. Real license assignment runs against real M365 tenants with verified Microsoft Graph API integration.

Runbook source preview

Versioned, deterministic, auditable

Every runbook is defined as a versioned YAML manifest with explicit triggers, steps, and approval policies. The runbook itself is the audit-ready record of what AscendCore can and will do — chat is just the interface that triggers it.

name: m365-license-assignment
trigger:
  channels: [slack, teams]
  intents: [license_assign]
steps:
  - check_license_pool: m365-e3
  - assign_to_user
  - push_install_policy: ${user.device.platform}
approval:
  required: true
  approvers: [it-admins]
Ready to deploy

Run m365 license assignment from Teams or Slack today

AscendCore deploys in 48 hours for Slack + Okta or Teams + Entra stacks. See the first automated resolution the same day.

AscendCore

AscendCore Team

Online · Ask us anything

AscendCore

Hi! Welcome to AscendCore. Ask us anything about how we automate your IT help desk — or just say hi.