Skip to Content
AutomationBulk OperationsBulk License Assignment

Bulk License Assignment

Efficiently assign, modify, and remove Microsoft 365 licenses across large user populations. Bulk operations reduce manual effort when onboarding departments, adjusting license tiers, or responding to organizational changes.

Note: Execute bulk license changes across multiple tenants from a single interface. Track operations per tenant and maintain audit trails for billing reconciliation.

Operation Types

Bulk Assign

Add licenses to multiple users simultaneously. Select users by group, department, or custom CSV upload.

  • Assign full license SKU
  • Enable specific service plans only
  • Set usage location automatically
  • Apply to filtered user list

Bulk Modify

Change service plan enablement for existing licenses. Upgrade or downgrade without removing assignments.

  • Enable/disable service plans
  • Swap between license tiers
  • Add secondary licenses
  • Preserve existing assignments

Bulk Remove

Remove licenses from multiple users. Essential for offboarding departments or responding to license audits.

  • Remove specific SKU
  • Remove all licenses
  • Grace period options
  • Preserve mailbox data

Bulk Transfer

Swap users from one license to another in a single operation. Common for migrations and license optimization.

  • E3 to E5 upgrades
  • Business to Enterprise
  • F1 to F3 frontline
  • Add-on consolidation

User Selection Methods

Group-Based Selection

Select users by security group or Microsoft 365 group membership. Supports nested groups and dynamic membership groups.

Example: All members of “Sales Department” group receive Microsoft 365 E5 with Power BI Pro add-on.

Filter-Based Selection

Build dynamic filters using user attributes. Filter by department, job title, location, license status, or custom attributes.

  • department eq "Engineering"
  • usageLocation eq "US"
  • assignedLicenses/any()
  • accountEnabled eq true

CSV Upload

Import a CSV file with user principal names or object IDs. Supports large uploads with progress tracking.

UserPrincipalNameLicenseSKUDisabledPlans
john@contoso.comENTERPRISEPREMIUMYAMMER_ENTERPRISE
jane@contoso.comENTERPRISEPREMIUM

Manual Selection

Search and select individual users from the directory. Best for smaller operations or targeted changes.

Operation Workflow

  1. Select Users — Choose users via group, filter, CSV, or manual selection. Preview the user count before proceeding.
  2. Configure License Changes — Select license SKUs to add/remove and configure service plan enablement. Set usage location if required.
  3. Review Impact — Preview changes before execution. See license availability, potential conflicts, and cost impact.
  4. Execute Operation — Submit the operation. Large operations are queued and processed in batches with rate limiting.
  5. Monitor Progress — Track operation progress in real-time. View success/failure counts and detailed error messages.

Impact Preview

Before executing bulk operations, review the impact analysis:

MetricCurrentAfterChange
Users affected247 users
E5 licenses used423/500500/500+77
E3 licenses used324/400154/400-170
Monthly cost$28,470$31,240+$2,770

Error Handling

  • Insufficient Licenses — Not enough available licenses for the operation. Purchase additional licenses or reduce scope.
  • Missing Usage Location — Users without usage location cannot receive licenses. Set location automatically during operation or pre-configure.
  • Conflicting Service Plans — Some service plans conflict when assigned together. System will skip conflicting assignments and report details.
  • Rate Limiting — Large operations may hit Graph API limits. Operations are automatically throttled and retried.

Scheduled Operations

Schedule bulk operations to run at specific times:

  • One-Time Schedule — Run operation at a future date/time. Useful for planned migrations during maintenance windows.
  • Recurring Schedule — Run operation on a schedule (daily, weekly, monthly). Automatically process new group members.

Best Practices

  • Preview before executing — Always review impact analysis to catch issues before they affect users
  • Start with small batches — Test operations on a small user group before applying to entire organization
  • Schedule during off-hours — Large operations may cause brief service disruptions. Schedule for low-usage periods
  • Consider group-based licensing — For ongoing license management, group-based licensing is more maintainable than repeated bulk operations

API Reference

  • POST /api/automation/bulk-licenses/assign — Bulk assign licenses to users
  • POST /api/automation/bulk-licenses/remove — Bulk remove licenses from users
  • POST /api/automation/bulk-licenses/modify — Bulk modify service plan enablement
  • GET /api/automation/bulk-licenses/operations — List bulk license operations
  • GET /api/automation/bulk-licenses/operations/:id — Get operation status and results
Last updated on