How to modify Teamwork Information Architecture

Summary

There are five different ways to customize the Valo Teamwork Solution, each of which will be covered in this document.

  • Teamwork Templates for creating Groups and SharePoint sites with different properties
  • Site Designs is an out-of-the-box capability for provisioning in Office 365 that can be used along with Valo Teamwork.
  • PnP templates for controlling the structure of the created SharePoint site
  • Custom Metadata schema for associating different types of metadata to created groups and sites
  • Web part configuration properties for the Teamwork web part

Teamwork Templates

In Teamwork templates it is possible to configure the (modern) SharePoint site and group’s metadata.

SharePoint site:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
<SharePoint> 
    <ModernSite Theme="/SiteAssets/template-theme.spcolor" BackgroundImage="/SiteAssets/template-bg.png" 
    PnPTemplateFile="ValoSteeringGroup.xml" PnPTemplateFolder="PnPTemplates" PnPTemplatePath="~site/" > 
        <Branding> 
            <Files> 
                <File Name="template-theme.spcolor" Path="SiteAssets" Folder="" SourcePath="Style Library" SourceFolder="Valo/Themes" Url=""/> 
                <File Name="template-bg.png" Path="SiteAssets" Folder="" SourcePath="Style Library" SourceFolder="Valo/Themes" Url=""/> 
            </Files>  
        </Branding> 
    </ModernSite> 
</SharePoint> 

You can configure:

  • Theme
  • Background image
  • PnP template

Teams:

1
2
3
4
5
6
7
8
<Teams> 
    <Settings> 
        <MemberSettings AllowCreateUpdateChannels="true" AllowAddRemoveApps="false"  AllowCreateUpdateRemoveConnectors="false" AllowCreateUpdateRemoveTabs="true" AllowDeleteChannels="true"/>        
        <MessagingSettings AllowChannelMentions="true" AllowOwnerDeleteMessages="true" AllowTeamMentions="true"  AllowUserDeleteMessages="false" AllowUserEditMessages="false" /> 
        <FunSettings AllowCustomMemes="true" AllowGiphy="true" AllowStickersAndMemes="false" GiphyContentRating="Moderate" /> 
        <GuestSettings AllowCreateUpdateChannels="true" AllowDeleteChannels="false" /> 
    </Settings> 
</Teams> 

Documentation of possible Teams settings are described here: docs.microsoft.com

Yammer:

1
<Yammer></Yammer> 

To provision Yammer based Group there are no settings to be set. Just add blank Yammer tag to template.

Note both Team and Yammer cannot be added to template (because O365 Groups cannot have both). If falsely both are defined to template the Team is used.

Group metadata:

1
2
3
4
5
6
7
8
9
<GroupMetadata> 
    <GroupProperty Default="true" Enabled="true" Name="SharePoint"></GroupProperty> 
    <GroupProperty Default="false" Enabled="true" Name="OneDrive"></GroupProperty> 
    <GroupProperty Default="false" Enabled="false" Name="Teams"></GroupProperty> 
    <GroupProperty Default="false" Enabled="false" Name="Planner"></GroupProperty> 
    <GroupProperty Default="false" Enabled="false" Name="Yammer"></GroupProperty> 
    <GroupProperty Default="false" Enabled="false" Name="OneNote"></GroupProperty> 
    <GroupProperty Default="false" Enabled="false" Name="Conversations"></GroupProperty> 
</GroupMetadata>  

By defining group properties in group metadata element, the values are saved to group (Valo schema) when the group is provisioned. These group properties specify which links are shown to user in Teamwork app in group’s contextual menu.

Possible GroupProperties are:

  • SharePoint
  • Teams
  • OneDrive
  • Planner
  • Yammer
  • OneNote
  • Conversations

By defining “Enabled” attribute of GroupProperty to “true”, a link to that application is shown to the user in group contextual menu. Note that the values set in group template are just default values and can be changed later via Teamwork application.

In Teamwork application group card, the title of the group is a link to the application that is set as default link in the group metadata. Set the default application with attribute “Default=true” in the group template. Set only one (1) application as default.

External Order Fields

  • External order fields are for collecting more information about the Group order from the user who places the order.
  • Custom fields starting with “ValoTeamworkOrder” are added as external data to order form and saved with order to Teamwork orders list
  • Supported field types are:
    • Text (single line only)
    • Taxonomy
    • Boolean
    • UserMulti
    • User
    • Choice
    • DateTime
  • Teamwork Azure WebJob is not automatically processing external fields. Processing those fields and order values must be implemented using IoC and custom code.

Site Designs

Integrating Site Designs with Valo Teamwork is very simple since it only requires the Site Design ID to be configured in the template's XML file. For more information, please see the Site Designs documentation.

PnP templates

  • PnP XML templates and PnP files are supported
  • PnP.Framework version supported in Teamwork: 1.6.0
  • These are the PnP schemas supported in Teamwork: V202103, V202002, V201909 and V201903

Find more information about Teamwork and PnP templates here.

Custom Metadata Schema

There are two types of metadata that can be associated to groups and sites: Standard Metadata and Enterprise Metadata. Standard Metadata is common to all different types of Groups and Sites and can consist of up to five managed metadata fields.

Enterprise Metadata (Requires Teamwork Enterprise license) can have multiple different metadata types and with Enterprise Metadata, you can associate different schemas to different types of groups.

The supported metadata types for Enterprise Metadata are:

  • People Picker
  • Date
  • Choice field (single choice or multiple choices)
  • Free text field
  • URL
  • Managed Metadata

The metadata will be filled by the user when ordering a new group or site and can be used to filter the view of groups. It can also be modified by the group or site owner from the information panel.

Prior to version 1.18, metadata was stored in a Group extension schema. Nowadays the metadata is stored in the Valo Admin site in a specific list (TeamworkMetadata). The process of editing the metadata is described below:

Standard Metadata

There is a Modern Tenant Property called TeamworkStandardMetadataContenttypeId, which will store the ID of the content type that contains the metadata shared across all types of groups. The default values will be stored in a Content Type called ‘XYZ’.

If you want to change this content type, you should create a new Site Content Type into the Valo Admin site and add your own metadata fields into the content type. The only type of supported field is Managed Metadata.

When you have created your own Standard Metadata Content Type, you can get its content type ID from the URL of the page, and update this ID to the XYZ Modern Tenant Property with e.g. SP Editor (available in the Chrome Store).

The new content type will automatically be displayed in the order form, as well as in the display filters and the information panel.

Enterprise Metadata

If you have Teamwork Enterprise license, you can have a different metadata schema for each of your different types of groups and sites. Enterprise metadata is only displayed if the TeamworkEnterpriseMetadataEnabled tenant property has been set to true.

After you have created your own Enterprise Metadata Content Type, it can be associated with workspace template from Teamwork Admin site. More detailed instructions for extending enterprise metadata see Extending Metadata. Any fields of the type listed in extending enterprise metadata instructions can be added to the enterprise metadata content type.

Admin UI metadata

Note

Please note the following limitations when defining a custom Content Type Id:

  • All Content Types used for Enterprise Metadata must inherit the SharePoint standard Item content type.
  • You can use content type inheritance to share some metadata fields across different types of groups and sites. However, you should not define different levels of templates to different content types at the same time. For example, you should not define one template to use CT1 and another template to use CT2 if CT2 inherits CT1.

Web part Configuration Properties

For information on the web part configuration properties, please refer to Configuring Web part.