> ## Documentation Index
> Fetch the complete documentation index at: https://university.triggr-app.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Re-allocate User License

> Moves a Microsoft 365 licence from one user to another in your client's tenant.

Re-allocate User License takes a Microsoft 365 licence away from one person and gives the same licence to someone else, for example from a leaver to their replacement. It needs [Microsoft 365 connected](/core/get-started/connect-microsoft-365), with a GDAP role that can manage licences, such as [License Administrator](/integrations/microsoft-graph/recommended-roles). To change one person's licences instead, use [License Management](/core/workflows/license-management), which assigns before it removes.

<Frame caption="Re-allocate User License in 50 seconds: what it asks, what it does and what you get.">
  <video controls preload="none" playsInline className="w-full aspect-video rounded-xl" poster="/images/videos/wf-reallocate-license-overview.jpg" src="https://mintcdn.com/triggr/0aCLuL0-lL3gEqxH/images/videos/wf-reallocate-license-overview.mp4?fit=max&auto=format&n=0aCLuL0-lL3gEqxH&q=85&s=e23b8516a62aadea8f54e1c410575390" data-path="images/videos/wf-reallocate-license-overview.mp4" />
</Frame>

## What the form asks

| Field | |
| - | - |
| Remove licence from | Required, always on. The person who has the licence now, picked from the client's users |
| Assign licence to | Required, always on. The person who gets it |
| Licence | Required, always on. One of the client's Microsoft 365 licences |
| Reason / ticket reference | Optional by default. For your records and the approver; not sent to Microsoft |

## What it does

1. Creates a ticket in your PSA, if Ticketing is on.
2. Waits for approval, if Approval is Internal or External, or a conditional override matches.
3. Remove Licence: takes the licence away from the person in Remove licence from, in the client's Microsoft 365.
4. Assign Licence: gives the same licence to the person in Assign licence to.

Core removes the licence before it assigns it, and doesn't check for a free seat first. It changes only licence assignments: it doesn't set a usage location or change anything else on either account. Clients that sync on-premises Active Directory run the same steps, without the desktop agent.

With Log actions to the ticket on, the ticket also gets a note when the run starts, after each step and when the run completes. The note after Remove Licence names the licence it removed.

## Configure it

Go to **Config**, search for `licence` and click Re-allocate User License.

<Frame caption="Configure Re-allocate User License: every option, step by step (1:28).">
  <video controls preload="none" playsInline className="w-full aspect-video rounded-xl" poster="/images/videos/wf-reallocate-license-configure.jpg" src="https://mintcdn.com/triggr/0aCLuL0-lL3gEqxH/images/videos/wf-reallocate-license-configure.mp4?fit=max&auto=format&n=0aCLuL0-lL3gEqxH&q=85&s=0362471ac5e22696a65f548111b590a3" data-path="images/videos/wf-reallocate-license-configure.mp4" />
</Frame>

| Setting | Where | What it does |
| - | - | - |
| Availability | Header | Internal only, Public form only, Internal + public or Disabled. List on homepage needs a public form. Base config only |
| Remove licence from, Assign licence to, Licence | Form config | Always on: the automation needs them |
| Reason / ticket reference | Form config | Hidden, Optional or Required. Can differ per client |
| Add field, Add section | Form config | Your own questions. They're saved with the request and can go in ticket templates, but aren't sent to Microsoft. Add client section asks one client only |
| Approval | Execution config | None runs on submit. Internal waits for a teammate or group; External waits for the client's approver, set on each client. Conditional overrides use a different approval when the answers match. Let the approver edit the request lets them correct the answers first |
| Ticketing | Execution config | Create a PSA ticket for each run, with its type, priority, status, subject and body. Log actions to the ticket adds an internal or public note as each action completes |
| User directory filters | Execution config | Which users both pickers list: licensed, active, no guests, and not in the Entra roles you exclude. Licensed users only is on by default; untick it to list people who don't have a licence yet. Exclude specific users at a client's scope |

Approval, Ticketing and User directory filters are set on Base config and apply to every client unless you override them for one. For how Base config and client overrides work, see [How configuration works](/core/get-started/configure-user-onboarding#settings-for-each-client).

## Troubleshooting

<AccordionGroup>
  <Accordion title="Someone isn't in the Assign licence to list">
    Check User directory filters. Licensed users only is on by default, so people with no licence aren't listed; untick it on Base config or for that client. Active users only hides accounts whose sign-in is blocked.
  </Accordion>

  <Accordion title="The run failed at Assign Licence">
    The licence was already removed from the person in Remove licence from, and Core doesn't add it back. Open the run in Executions to see Microsoft's error, fix the cause, then assign the licence in the Microsoft 365 admin center. With Log actions on, the ticket's last note is the one for Remove Licence.
  </Accordion>
</AccordionGroup>

## Related

* [Workflow catalogue](/core/reference/workflow-catalogue)
* [Run a workflow](/core/use/run-a-workflow)
* [Executions](/core/use/executions)
* [License Management](/core/workflows/license-management), which assigns or removes licences for one person
* [User Offboarding](/core/workflows/user-offboarding), which can remove a leaver's licences


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.