Category Archives: SharePoint Online Permissions

Creating a choice field in SPFx

When using the SharePoint Framework (SPFx), we can use spHttpClient to manage our REST calls. Creating new fields (columns) in lists is like using jQuery ajax methods, first we feed in the body of our call in JSON format.

const spOpts: ISPHttpClientOptions = {
      body: "{'Title': 'Group', 'FieldTypeKind':2,'Required':false, 'EnforceUniqueValues': 'false','StaticName': 'Group'}"
    };

Then we create the REST call and receive the response.

this.context.spHttpClient.post(`${this.context.pageContext.web.absoluteUrl}/_api/web/lists/GetByTitle('List Name')/Fields`, SPHttpClient.configurations.v1, spOpts)
      .then((response: SPHttpClientResponse) => {
        console.log(`Status code: ${response.status}`);
        console.log(`Status text: ${response.statusText}`);
        response.json().then((responseJSON: JSON) => {
          console.log(responseJSON);
        });
      });

However, we get an error when trying to create a choice column using the following body:


      body: "'Title': 'Behaviour', 'FieldTypeKind':6,'Required':true, 'EnforceUniqueValues': 'false', 'StaticName': 'Behaviour', Choices: ['Choice1', 'Choice2', 'Choice3'] }"

Error: “The property ‘Choices’ does not exist on type ‘SP.Field’. Make sure to only use property names that are defined by the type.”

To resolve this issue, we need to add the data type to the request, we structure the JSON in a different way (compared to jQuery ajax calls). This is the JSON required to create a choice column:

body: {'@odata.type': 'SP.FieldChoice','Title': 'Behaviour', 'FieldTypeKind':6,'Required':true, 'EnforceUniqueValues': 'false', 'StaticName': 'Behaviour', Choices: ['Choice1', 'Choice2', 'Choice3'] }

Hope someone finds this useful and saves you a lot of time!

Promoted Links Web Part for Modern Pages

Promoted Links Web Part for Modern SharePoint Pages

This web part replicates the classic Promoted Links Web Part but with added features such as web part properties to change the background colour, size of background image and to select which promoted link list to use. You can download it here.

For more information on the full Cloud Design Box learning platform for modern SharePoint or custom workflows and design, Contact us via the website.

If you are interested in developing web parts using the new SharePoint Framework, this web part is a good example of:

  • loading jQuery from CDN
  • adding third party modules
  • making REST calls
  • configuring web part properties

You can find the complete source code in my GitHub repository at https://github.com/CloudDesignBox/cdb-promoted-links.

As soon as I get chance, I will create some additional blog posts on how this web part was created, breaking down the different task lists.

While I work on that, please feel free to download the code and have a play yourselves!

Branding SharePoint using Application Customizers

Collab365 Global Conference

Have you heard about the virtual Collab365 Global Conference 2017 that’s streaming online November 1st – 2nd?

Join me and 120 other speakers from around the world who will be bringing you the very latest content around SharePoint, Office 365, Flow, PowerApps, Azure, OneDrive for Business and of course the increasingly popular Microsoft Teams. The event is produced by the Collab365 Community and is entirely free to attend.

Places are limited to 5000 so be quick and register now.

During the conference I’d love you to watch my session which is called : ‘Branding SharePoint using Application Customizers’

I’ve been a SharePoint designer now for over 10 years. By designer, I mean changing the look and feel of SharePoint. Not just adding simple themes, but making SharePoint, “not look like SharePoint”. It’s a common request for companies and schools to have an intranet or communication portal which reflects their brand and identity. Although Microsoft have come along in leaps and bounds in this area with out-of-the-box options, it’s still a common requirement for some deeper unique branding. The ways in which we apply design customisations have changed over the years. From MasterPages and themes to custom actions, the landscape has been ever-changing but moving slowly towards JavaScript and client-side customisation. In this session, I will go through the SharePoint design technique changes over the years and finish with an example of the most recent SharePoint UI (modern experience). Using the new SharePoint framework, we will build a simple Application Customizer to apply a custom header and footer. This project will be built using web stack tools and libraries such as Node.js, Yeoman and Gulp.

If you join me, you will learn:

  • How to create a new application customizer
  • Using the application customizer to apply branding to modern sites
  • History of SharePoint design
  • Introduction to SASS and TypeScript

Topic(s):

  • Office365
  • SharePoint

Audience :

  • Developer

Time (in UTC) :

  • Thursday, November 2 2017 12:00 Noon

How to attend :

  1. Register here.
  2. At the time listed above go here to watch my session. (you can also add me to your own personal planner from the agenda.
  3. Be ready to take notes!

SUGUK Leeds – Branding SharePoint using Application Customizers

Note: this is an updated blog post to include reference material and demos from the SUGUK meeting in Leeds on 5th September 2017.

I’ve been a SharePoint designer now for over 10 years. By designer, I mean changing the look and feel of SharePoint. Not just adding simple themes, but making SharePoint, “not look like SharePoint”.

It’s a common request for companies and schools to have an intranet or communication portal which reflects their brand and identity. Although Microsoft have come along in leaps and bounds in this area with out-of-the-box options, it’s still a common requirement for some deeper unique branding.

The ways in which we apply design customisations have changed over the years. From MasterPages and themes to custom actions, the landscape has been ever-changing but moving slowly towards JavaScript and client-side customisation.

The most recent SharePoint UI (modern experience) gives designers the opportunity to deploy custom headers and footers to all new SharePoint pages. To make these customisations, we need to use the new SharePoint framework. Projects are built using web stack tools and libraries such as Node.js, Yeoman and Gulp. I’ve provided an overview of these on previous blog posts last year:

Getting started with the new SharePoint framework

Creating a picture library slideshow using jQuery cycle

Demos from SUGUK Leeds on 5th September 2017.

DEMO 2 – Adding HTML and CSS to the Top placeholder

Demo 2 on Github

DEMO 3 – Add Google Analytics, Get Announcements using REST, Show Date and Time, Import jQuery and jQuery Cycle 2

Demo 3 on Github



Note: This is a new video for the release candidate of SharePoint framework extensions.

In the video above, I show how design has changed over the years and I create a new Application Customizer SharePoint framework extension using TypeScript and SASS for design purposes.

It’s an exciting time to be a SharePoint designer and the quicker these extensions are released as general availability, the better! We can then start updating customisations and switching clients over to the new pages.

Back to School – Microsoft Teams Update for Education

September is here and new collaboration tools are being tried for the first time in Office 365.

Microsoft Teams now has class sites, watch my full review in my blog post earlier this summer

Latest updates include:

  • Options to disable chat
  • Full screen Class Notebooks
  • Fully working Class Notebooks with settings available
  • OneNote Edit in browser functionality
  • Ability to add links to assignments

Still some functionality we are still waiting for:

  • Teams mobile app to support assignments and notebooks
  • Option to add SharePoint files to assignments
  • Share resources between classes
  • Assign Class Notebook page

Video about the latest updates:



Original review (from July) in full:



What are your thoughts on Microsoft Teams? As good as Microsoft Classroom yet? What features do you want to see?

Branding SharePoint using Application Customizers

I’ve been a SharePoint designer now for over 10 years. By designer, I mean changing the look and feel of SharePoint. Not just adding simple themes, but making SharePoint, “not look like SharePoint”.

It’s a common request for companies and schools to have an intranet or communication portal which reflects their brand and identity. Although Microsoft have come along in leaps and bounds in this area with out-of-the-box options, it’s still a common requirement for some deeper unique branding.

The ways in which we apply design customisations have changed over the years. From MasterPages and themes to custom actions, the landscape has been ever-changing but moving slowly towards JavaScript and client-side customisation.

The most recent SharePoint UI (modern experience) gives designers the opportunity to deploy custom headers and footers to all new SharePoint pages. To make these customisations, we need to use the new SharePoint framework. Projects are built using web stack tools and libraries such as Node.js, Yeoman and Gulp. I’ve provided an overview of these on previous blog posts last year:

Getting started with the new SharePoint framework

Creating a picture library slideshow using jQuery cycle



In the video above, I show how design has changed over the years and I create a new Application Customizer SharePoint framework extension using TypeScript and SASS for design purposes.

It’s an exciting time to be a SharePoint designer and the quicker these extensions are released as general availability, the better! We can then start updating customisations and switching clients over to the new pages.

Microsoft Teams for Education Released

Class teams are now available inside Microsoft Teams. These are created automatically using School Data Sync (SDS) or can be created manually in the Teams interface.

Microsoft Class Teams

Teams is a great collaboration interface that pulls together instant messaging, videos calls, SharePoint, OneNote and assignments into one place. It can also be extended with custom tabs.

I’ve created a quick video review below.



There are some similarities to Microsoft Classroom, however some functionality is different. A few issues with Class Notebooks in Teams:

  • Student sections menu not visible
  • Missing the Class Notebook tab to distribute pages and sections
  • Immersive reader option missing from view tab

You can get around these issues by opening the Team’s SharePoint site and clicking “Notebook” inside SharePoint. Hopefully Microsoft will be quick to resolve these issues.

Microsoft Classroom had a mobile app for Android and iOS which gave students notifications when new assignments were posted or graded. It also allowed students to set reminders for homework. The Teams mobile app does not include the assignment section at all so no notifications for students or teachers. The assignments are not visible on mobile devices. Again, this is early days and I expect Microsoft to release this functionality in the not too far future.

SharePoint Virtual Summit 2017

The 2017 SharePoint virtual summit took place last week. The previous year had seen a brave new bold redesign of SharePoint into a modern experience. This year we had exciting new announcements building on last year’s vision.

New OneDrive and SharePoint Sync Client

The new version of OneDrive sync client will map out the entire contents of SharePoint and OneDrive libraries without syncing them across. Documents will only be synced when requested on-demand or when a document is opened and edited.

OneDrive Files On Demand

This is great news and solves two problems faced by OneDrive users:

  • Large OneDrive/SharePoint libraries consumed large amounts of local storage syncing across
  • Possibility of errors when large numbers of files synced at once

A new unified sharing interface will be rolled out across OneDrive and SharePoint for a simpler experience. This feature will also be available in windows explorer.

SharePoint Virtual Summit

Communication portals

SharePoint released a new experience team site last year. It has now matured with developers creating third party web parts using the SharePoint Framework. Microsoft have now released a new type of site called a communication portal. This site replaces the older publishing sites used for company intranets. Although the new site is responsive out-of-the-box, we can now apply custom branding and functionality extending this into a true intranet experience.

SharePoint Communication Portal

Integration with Flow and PowerApps

These two new Office 365 apps are gaining momentum as modern replacements for SharePoint Designer Workflows and InfoPath Forms Designer.

Microsoft Flow creates workflows that can integrate with almost any product including Google Calendar, Twitter, Slack and a whole host of other services. Flow will have tighter integration with SharePoint and Flows can be created directly from list views.

PowerApps empowers users to create useful mobile friendly apps with no code for SharePoint and OneDrive. This has now been extended to integrate directly into a SharePoint page. PowerApps can now act as the custom form for SharePoint list data. This was a task previously done using InfoPath Designer or custom code.

SharePoint with PowerApps and Microsoft Flow

There was also news of a more powerful personalised search and much more. You can read the Microsoft review from Jeff Teper here.

So, it’s another exciting year ahead for the SharePoint and Office community!

School Data Sync – UK Schools

School Data Sync has now moved to general availability. Currently this allows users to get data into Microsoft Classroom but does have limitations and can create a considerable overhead when providing the import data.

I’ve produced a quick video below looking at School Data Sync and what is means for UK schools. Hope you find it useful.

UPDATE – 31/03/2017

There has recently been some third party free tools released to automate the creation of these spreadsheets. This is another step in the right direction and hopefully there will be some free tools in the next few months to sync data directly into SDS.

The SDS data can also be used for the new Intune for Education released in April 2017.



Machine Learning with Cognitive Services API in Microsoft Flow

I recently attended a fascinating talk on machine learning by Martin Kearn and an implementation of this in Microsoft Flow by Mark Stokes. Did you know that there are APIs to access machine learning functionality via Microsoft’s Cognitive Services API? Did you also know that you can easily connect to these services in Office 365?

Microsoft Flow

Take a look at the available APIs and try them for free here.

The APIs give you access to computer vision, face emotion, face detection, text analytics, translators and much more. Microsoft have really opened up machine learning to the average developer (or non-developer)!

In this blog post, I’m going to show you how to use the text analytics cognitive API in Microsoft Flow without any code at all. If you are not familiar with Flow, check out some of my earlier posts.

Starting in Microsoft Flow, search the templates for “Text analytics”. Some interesting starter templates appear including analysing text for positive or negative sentiment via Twitter, Yammer and email. The returned sentiment value can then be used to start an action or chain of events. Have you ever wanted to be alerted to a negative email from the boss? Well now there is a template for it!

Microsoft Flow

In this example, I’m going to use the “Get emails for positive tweets” template. I want to get notified by email when I receive tweets which are very positive in sentiment.

Microsoft Flow

From this screen, you can see that the services involved in this Flow are Twitter, Text Analytics and Mail. Select “Use this template” and sign into each service.

When you get to the Text Analytics service, you will be required to enter a connection name and account key. To get this go to the Azure Text Analytics site and sign up for a free account (if you don’t already have one) by going to Getting started.

Once you have the account setup, navigate to your account keys in the Azure portal (as shown below).

Microsoft Azure Sentiment API

Copy and paste the account name and key 1 into the Flow connector.

Microsoft Flow connectors

In my Flow, I have used the hashtag #msflowtextanalytics as my trigger. If anyone uses that hashtag on Twitter, it will start the Flow.

Microsoft Flow

I’ve left the condition as 0.7. This means if the API returns a 70% positive sentiment rating, it will send the email.

Microsoft Flow Email properties

Finally, fill in the email details to complete the Flow. The template email will show who sent the positive tweet and the sentiment score from the API.

Publish the Flow and go to Twitter to test it out.

Twitter hashtag tweet

The Flow can take around 2 minutes to run but you should eventually receive an email with the name of the person sending the tweet and the score from the sentiment API.

Microsoft Flow Email

There are many uses for this in real world scenarios. Marketing and PR departments could use a very similar template to detect any negative tweets. That could then trigger an email for manual intervention or you could automatically direct message the user and open a support ticket. It could save huge amounts of time watching and sorting through thousands of tweets manually.

There are connectors for SharePoint, Instagram, Office 365 Email, and much much more. Imagine integrating all of these separate systems into one workflow (you couldn’t do that in SharePoint Designer).

Exciting times for machine learning and very powerful tools for those of us who are not developers or data scientists.