In Blogs, Mavention Make, Techblog

With Mavention Make it’s possible to deploy Office 365 groups and modify the SharePoint site that comes with this group. By using Site Provisioning you can stay in control and enforce a consistent configuration of your Office 365 groups. Applying a set of commmen used document librarys on those groups it becomes easier for users to find their way regardless of the project they are working on.


There are three xml files needed to deploy a Office 365 group and make adjustments on the SharePoint site of the Office 365 group. The files needed are:

  • playlist.xml
  • xml to deploy the Office 365 group
  • xml to make adjustments on the SharePoint site of the Office 365 group

You can use the exact examples in this blog post to have a working template. The files are also attached as a zip, Create an Office 365 Group with Mavention


The playlist tells Mavention Make which files to use for the configuration. In the example below the xml to deploy the Office 365 group is called “group.xml”. The xml to make adjustments on the SharePoint site of the Office 365 group is called “make-configuration-main.xml”.

In the playlist you will notice a RetryCount and a RetryDelay. This is needed since we don’t know in advance how much time is needed by Office 365 to deploy the SharePoint site of the Office 365 group. If your tenant needs more time you can adjust these setting in the playlist.

<?xml version="1.0" encoding="utf-8" ?>
<Configurator xmlns="">
    <Provider NodeName="Playlist" Class="Mavention.SharePoint.SiteConfigurator.Providers.PlaylistProvider" Assembly="Mavention.SharePoint.SiteConfigurator"/>
  <Playlist RetryCount="2" RetryDelay="30000">
      <ConfigurationFile FileName="group.xml" FileType="Graph" Requeueable="False" />
      <ConfigurationFile FileName="make-configuration-main.xml" FileType="Make" Requeueable="True" />


This template deploys the Office 365 group.

<Configurator xmlns:xsi="" xmlns="">
    <Provider NodeName="Graph" Class="Mavention.Make.Engine.Providers.GraphProvider" Assembly="Mavention.Make.Engine, Version=, Culture=neutral, PublicKeyToken=a43c589e76ba4e3d"/>
      <Group DisplayName="{Title}" Description="{Title}" MailNickname="{mailNickName}" Visibility="{security}" >
          <User UserPrincipalName="{owner}"></User>
          <User UserPrincipalName="{owner}"></User>
          <User UserPrincipalName="{member}"></User>


This template is needed to make adjustments on the SharePoint site of the Office 365 group. Be sure to leave the setting “DenyAddAndCustomizePages=”Disabled”” as is, otherwise you won’t be able to make adjustments on the SharePoint site.

<?xml version="1.0" encoding="UTF-8"?>
    <Provider NodeName="Site" Class="Mavention.SharePoint.SiteConfigurator.Providers.SiteProvider" Assembly="Mavention.SharePoint.SiteConfigurator, Version=, Culture=neutral, PublicKeyToken=a43c589e76ba4e3d"/>
  <Site Title="{Title}" Url="{url}" Template="STS#0" LCID="1033" OwnerLogin="{owner}" ObjectAction="Update" SharingCapability="ExternalUserSharingOnly" DenyAddAndCustomizePages="Disabled">
    <RootWeb Url="" Title="{Title}" Template="STS#0" LCID="1033">
        <Property Name="WebTemplate">ProjectSite</Property>
        <Property Name="WebTemplateVersion"></Property>
        <List Url="external-documents" Title="External documents" TemplateType="101" TemplateFeatureId="00bfea71-e717-4e80-aa17-d0c71b360101" OnQuickLaunch="true" />


The following properties can be used as metadata for the playlist.

Name: playlist.xml
Title: Group
Configuration version:
Description: Group
Start object type: Tenant
Parameters: see json


An example of how the json could look like.

  "d": {
    "parameters": [{
      "id": "Title",
      "title": "Group Title",
      "inputType": "text",
      "required": true,
      "sampleValue": "A new group"
      "id": "mailNickName",
      "title": "Mailbox",
      "inputType": "text",
      "required": true,
      "sampleValue": "anewgroup"
      "id": "url",
      "title": "Url",
      "inputType": "text",
      "required": true,
      "sampleValue": ""
      "id": "owner",
      "title": "Group Owner",
      "inputType": "text",
      "required": true,
      "sampleValue": ""
      "id": "member",
      "title": "Member of group",
      "inputType": "text",
      "required": false,
      "sampleValue": ""
      "id": "security",
      "title": "Group Visibilty",
      "inputType": "text",
      "required": true,
      "sampleValue": "Public or Private"

Make request

An example of how the Make request could look like.

  "Id": "c2a42711-e2c8-4aec-8610-1b9f3d9d0953",
  "RequestType": 0,
  "ConfigurationFileUrl": "",
  "ConfigurationItemUrl": "",
  "Scope": "Tenant",
  "OverwriteIfExists": false,
  "Parameters": {
    "Title": "A new group",
    "mailNickName": "anewgroup",
    "url": "",
    "owner": "",
    "security": "Public"

Vul je zoekopdracht in.