Adaptive scope syntax

Copper Contributor

I've been asked to create some retention policies for mailboxes using Purview.


Existing users should have an M365 retention policy that retains for 5 years.


Separated users, whose mailboxes have become Inactive Mailboxes, should have a 2 year retention and then delete.


To do that, I thought I'd create two separate policies targeting different adaptive scopes.  The first is pretty easy, any active mailbox.

The second - well I am not having much success getting a query to find Inactive Mailboxes that are 2 years old or newer.  Is it possible to use the utcNow() function within an adaptive scope query?  Something like:
(IsInactiveMailbox -eq "True") -and (WhenSoftDeleted -lt 'addDays(utcNow(),-730)')

it errors out on that last ' ... 82nd character.

1 Reply

Hi @MC_Edwards,


There is an error in the setup. Here are the steps:

  1. Create an adaptive scope. Choose user. Use the query: IsInactiveMailbox -eq "True"
  2. Create a retention policy. Configure the settings to retain for 2 years then delete. On the "scope" step of the wizard, choose adaptive scope, then select the scope you created in step #1.
  3. The policy will only apply to mailboxes included in the adaptive scope, so therefore only inactive mailboxes.

For the active user policy, I would follow the same steps, except use this query for the adaptive scope, just to ensure there is absolutely no overlap: IsInactiveMailbox -eq "False"


Here's a blog post about working with adaptive scopes + mailboxes: Using Adaptive Policy Scopes to Apply M365 Retention to Shared, Resource, and Inactive Mailboxes - M...