# Workflow

ExtensionsAssignments Manager

## Workflow

Upload → Compare → Select → Validate. A safe workflow for bulk Intune policy assignment changes.

For details: <https://docs.intuneassistant.cloud/docs/extensions/assignments-manager/how-it-works/#how-it-works>

Assignment Manager is built around a **safety-first workflow**. You always see what will change *before* you execute anything—and you always validate after.

Four-step workflow

Upload your desired state in CSV, compare it with the live tenant, choose what to apply, then validate and export results.

{% stepper %}
{% step %}

### 1) Upload CSV

Provide a CSV describing the assignment changes.

```
PolicyName;GroupName;AssignmentDirection;AssignmentAction;Filter;Filter Type
Windows Security Baseline;Finance Department;Include;Add;;
iOS Compliance Policy;All Users;Include;Replace;Corporate Devices;Include
Android App Protection;Sales Team;Include;Remove;;
```

During upload, the tool validates:

* Required columns & data types
* Obvious conflicts (duplicate rows, invalid actions, etc.)

If the upload check finds issues, you get immediate feedback to fix them. Only the valid rows are processed in the next step.\
To fix the errors, update your CSV and re-upload.

![Upload csv results](/files/a125b1195cb60ee43b6112e1d0f34bf1ad10df6a)
{% endstep %}

{% step %}

### 2) Compare (Current vs Planned)

Each row is evaluated against the live tenant state, so you get a precise preview.

**Status compare indicators:**

* **Ready for migration** – Row is ready to implement changes
* **Already migrated** – Row is already in the desired state
* **Check errors** - Row has issues that need fixing before migration. This can due an non existing policy/group, invalid filter, or duplicate policy names.

Correct the CSV and re-upload to fix. That means, provide a group that actually exists in Azure AD, or a policy that is already created in Intune. If the group or policy doesn't exist, you can also choose to create it first. Then, after creation, upload the CSV again and start over.

![Compare view example](/files/b60a42e337a12c693273ac35be87820b6a5e7b9f)
{% endstep %}

{% step %}

### 3) Select changes (Selective Migration)

You decide exactly what is applied.

* Select/deselect operations
* Batch multiple policies in one run

![Select rows for migrate](/files/95515279edfa909d0acfea85c5fcb935e597ae79)

Recommended for safety

Start with a small pilot CSV, then scale up.
{% endstep %}

{% step %}

### 4) Migrate + Validate

Did you reach the desired state?

After migration, Assignment Manager validates the final state:

* Assignments exist as expected
* Filters are applied correctly
* Conflicts are detected and surfaced
* Results are summarized and exportable

![Results view example](/files/9163a7f58a6440c1bfb1b3bf51b0796cc24e0348)
{% endstep %}
{% endstepper %}

***

### Best-practice patterns

#### Use Replace for clean migrations

When moving from one target strategy to another, **Replace** avoids leftover assignments.

#### Keep CSVs in version control

Treat migrations as change-controlled artifacts.

#### Use filters for exclusions (when possible)

Excluding via filters is usually cleaner than managing parallel exclusion groups.

***

Create Assignment Templates\
Learn how to create CSV templates for bulk assignment management - manually or by exporting from your reference tenant.\
<https://docs.intuneassistant.cloud/docs/extensions/assignments-manager/create-assignments-template/>

Scenarios\
Bulk manage Microsoft Intune policy assignments using CSV files (add, remove, replace) across tenants.\
<https://docs.intuneassistant.cloud/docs/extensions/assignments-manager/scenarios/>


---

# Agent Instructions: 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:

```
GET https://docs.intuneassistant.cloud/extensions/assignments-manager/intune-assignments/workflow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
