In Blogs, Mavention Make, Techblog

Since Make 5.0 it’s possible to deploy Microsoft Teams and modify the SharePoint site that comes with a MS Team.

Template

There are 3 templates needed to deploy a MS Team with Make and make adjustments on the SharePoint site that comes with a MS Team. These templates are:

  • playlist.xml
  • xml to deploy a MS Team
  • xml to make adjustments on the SharePoint site that comes with a MS Team

Below an example how these templates would look like. The files can also be downloaded as a zip package.

playlist.xml

The playlist tells Make which files to use for the configuration.

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

team.xml

This template deploys the Microsoft Team.

<Configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.mavention.com/Graph/Make">
  <Providers>
    <Provider NodeName="Graph" Class="Mavention.Make.Engine.Providers.GraphProvider" Assembly="Mavention.Make.Engine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a43c589e76ba4e3d"/>
  </Providers>
  <Graph>
    <Groups>
      <Group DisplayName="{Title}" Description="{Title}" MailNickname="{mailNickName}" Visibility="{security}" GetObjectBy="InternalName">
        <Owners UserPrincipalNames="{owner}"/>
        <Members UserPrincipalNames="{owner};{member}"/>
        <Team>
          <MemberSettings AllowAddRemoveApps="true" AllowCreateUpdateChannels="true" AllowCreateUpdateRemoveConnectors="true" AllowCreateUpdateRemoveTabs="true" AllowDeleteChannels="true" />
          <GuestSettings AllowCreateUpdateChannels="false" AllowDeleteChannels="false" />
          <Channels>
            <Channel DisplayName="Cool new products" GetObjectBy="DisplayName">
              <Tabs>
                <Tab DisplayName="Mavention Workspace" TeamsAppId="com.microsoft.teamspace.tab.web" GetObjectBy="DisplayName">
                  <Configuration ContentUrl="https://www.mavention.nl/producten/workspace/" />
                </Tab>
              </Tabs>
            </Channel>
          </Channels>
        </Team>
      </Group>
    </Groups>
  </Graph>
</Configurator>

make-configuration-main.xml

This template is needed to make adjustments on the SharePoint site that comes with a Microsoft Team.

<?xml version="1.0" encoding="UTF-8"?>
<Configurator xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.mavention.com/SharePoint/Apps/SiteConfigurator">
  <Providers>
    <Provider NodeName="Site" Class="Mavention.SharePoint.SiteConfigurator.Providers.SiteProvider" Assembly="Mavention.SharePoint.SiteConfigurator, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a43c589e76ba4e3d"/>
  </Providers>
  <Site Title="{Title}" Url="{url}" Template="GROUP#0" LCID="1033" OwnerLogin="" ObjectAction="Update" SharingCapability="ExternalUserSharingOnly" DenyAddAndCustomizePages="Disabled">
    <RootWeb Url="" Title="{Title}" Template="GROUP#0" LCID="1033">
      <Properties>
        <Property Name="WebTemplate">MicrosoftTeam</Property>
        <Property Name="WebTemplateVersion">1.0.0.0</Property>
      </Properties>
    </RootWeb>
  </Site>
</Configurator>

Properties

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

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

Json

{
  "d": {
    "parameters": [{
      "id": "Title",
      "title": "Group Title",
      "inputType": "text",
      "required": true,
      "sampleValue": "Team site"
    },
    {
      "id": "mailNickName",
      "title": "Mailbox",
      "inputType": "text",
      "required": true,
      "sampleValue": "teamsite"
    },
    {
      "id": "url",
      "title": "Url",
      "inputType": "text",
      "required": true,
      "sampleValue": "https://tenant.sharepoint.com/sites/teamsite"
    },
    {
      "id": "owner",
      "title": "Team owner",
      "inputType": "text",
      "required": true,
      "sampleValue":                   
      "a.noniem@exact.onmicrosoft.com;b.noniem@exact.onmicrosoft.com;c.noniem@exact.onmicrosoft.com"
    },
    {
      "id": "member",
      "title": "Member of team",
      "inputType": "text",
      "required": false,
      "sampleValue":             
      "a.noniem@exact.onmicrosoft.com;b.noniem@exact.onmicrosoft.com;c.noniem@exact.onmicrosoft.com"
    },
    {
      "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": "329bb7f5-b018-4bc5-8c80-f35c0aa7c9f3",
  "RequestType": 0,
  "ConfigurationFileUrl": "https://wmeurer.sharepoint.com/sites/Make-admin/Make%20Configurations/Microsoft%20Team/playlist.xml",
  "ConfigurationItemUrl": "https://wmeurer.sharepoint.com",
  "Scope": "Tenant",
  "OverwriteIfExists": false,
  "Parameters": {
    "Title": "Team Site Wim",
    "mailNickName": "teamsitewim",
    "url": "https://wmeurer.sharepoint.com/sites/teamsitewim",
    "owner": "wmeurer@wmeurer.onmicrosoft.com;remco@wmeurer.onmicrosoft.com",
    "member": "john@wmeurer.onmicrosoft.com;steven@wmeurer.onmicrosoft.com",
    "security": "Public"
  }
}

Vul je zoekopdracht in.