Pete is a VP of Technology at ThreeWill. Pete’s primary role is driving the overall technology strategy and roadmap for ThreeWill. Pete also serves as ThreeWill’s Hiring Manager and is constantly looking for new talent to join the ThreeWill family.
I had the opportunity to attend my 5th Microsoft Ignite this year in Orlando, FL. One of the things I was looking forward to was all the news and announcements for one of my favorite tools in my toolbox, the Microsoft Graph. This is a quick recap of just five Microsoft Graph announcements from the week at Microsoft Ignite that are sure to make you a believer in the Graph.
1. The New Graph Explorer
2. Microsoft Graph PowerShell SDK
Darrel Miller’s theater session, THR3095 – Unified PowerShell experience for Microsoft Graph – preview, was a whirlwind tour of the preview PowerShell cmdlets for Microsoft Graph. This session may have only been 20 minutes long, but man what a jam packed 20 minutes!
The session demonstrated the usage of the cmdlets, which is dead simple, and provided a view into the new cross platform, PowerShell cmdlets. A simple
call with the scopes needed and you are ready to start executing commands. The example below simply lists Microsoft 365 Groups where the group Classification is not “HBI”. This set of cmdlets should make developers and administrators alike very happy!
Besides being cross platform PowerShell (note above screen shot from macOS), the most amazing part to me is the number of cmdlets available. Running
Get-Command -Module Microsoft.Graph.Beta* | measure
reveals more than 2300 cmdlets available to work with Users, Groups, Teams, OneNote, Planner and so much more! Try
Get-Command -Module Microsoft.Graph.Beta.* | Group-Object -Property ModuleName |Sort-Object -Property Count | Select Count,Name
for a view to the number of commands per module – pretty impressive coverage for a preview!
Check out the Microsoft Graph SDK for PowerShell, take it for a spin, and provide some feedback! For now, you’ll have to follow the steps in the ReadMe file, but this was simple to get installed.
3. Microsoft Graph Connectors
This was one of my favorite announcements of the entire conference. Coming from a long history of SharePoint implementations, the ability to enable search for custom sources, whether those are internal sources, 3d party SaaS services, or your own custom content, has been a frequent request from customers seeking to take advantage of search solutions.
Checking out the preview documentation and the THR3010 Getting started with Microsoft-built Graph Connectors for Microsoft Searchsession gives you a great sense of where these custom connectors can add value. The connectors will enable indexing content, querying, managing permission ACL’s for restricting access, and customizable search results experiences. If you have any experience with Azure Search, this should look very familiar.
While the search experience across the Microsoft cloud services you consume will get better because of this unified search endpoint, even more exciting is what this new Search API will enable for businesses. Businesses will be able to augment the Microsoft sourced data with data that is outside of the Microsoft 365 Suite or Azure services to organization and business specific data sources. Think of how having custom line of business application data searchable from an integrated experience, with collaborative content, conversations, contacts and more, could change your business or your unlock scenarios for your customers. Now think about some of the custom experiences that could be created to address business objectives that were previously unaddressable. Very exciting!
For a great session that covers the 6 connectors from Microsoft and some great examples of the more than 100 connectors to come, check out SRCH40 Connect your world of information to Microsoft 365 and Microsoft Search: A sneak peek at Microsoft Graph Connectors. I can’t wait to dive into the possibilities with Graph Connectors!
4. The Microsoft Graph Toolkit
The new Microsoft Graph Toolkit is a set of Web Components that can be used in multiple web based experiences. These components are just magic. To start with a definition:
Web components are a set of web platform APIs that allow you to create new custom, reusable, encapsulated HTML tags to use in web pages and web apps.
Sounds a bit like simple HTML tags, right? Oh, but they are so much more! These components enable configuration via attributes, are styled by default but can be customized, enable templating, and take care of a great deal of plumbing for you. These components are used like common HTML tags. To use them in your code, you simply add one of the components as follows (there are 7 components in v1.0):
All that was need to get the above screen shot to work was configuring an Azure AD Application. Once that was done, that page just rendered! Magic.
One thing to notice is the
above which is commented out. This can get you started with discovering, styling and theming the components for your use. Very handy feature!
These components play nicely with any web framework, including Angular, Vue, React and more. The best part is that the Graph Toolkit is that, in addition to the components, there are providers that are supported in multiple web environments including MSAL, SharePoint, Teams tabs, web apps and more.
For complete details and some great ways to use the toolkit, see the Microsoft Graph Toolkit: Two lines of code to get stated with Microsoft Graph session. This session even drops a couple of great debugging tips for templating the components. And finally, to learn some some great tips and tricks for working with the Graph in general checkout BRK4013 : Top seven tips to become a Microsoft Graph guru.
5. Employee Profiles via Microsoft Graph
One of the most common requests for Teams and SharePoint, especially these days, are experiences that are tailored to an individual. Audiences in SharePoint and membership in Teams can help with this, but having access to specific skills, education, project experience, and more is what customers have wanted for years. The new Profiles API brings the capability to augment profile data and create incredibly rich, tailored experiences to users that enable dynamic content, enable finding resources within an organization to make decisions quickly, and much more. Combined with Project Cortex, the Profiles endpoints should enable improved user experiences from Microsoft and 3rd parties.
Things like languages and language proficiency, interests, skills, anniversaries, projects and education are available in the preview today (in blue), with the items like addresses, activities, photos and more (in white) coming soon. Be sure to test the preview out and provide feedback for things you think should be added!
Using the preview API is simple since it follows established Graph API patterns. For example, getting a list of skill displayNames is as simple as the following:
So far, this seems to be enabled for /me endpoints only (I could not view or set any other user profiles information yet) but I can see all kinds of opportunities to increase employee engagement and create experiences that provide real value to businesses based on profile information. Of particular note to me is the Projects profile attribute. Having worked with many companies that want to understand, manage, and assess projects over time, the ability to add project information, relationships and details could add tremendous value to many industry verticals. Can’t wait to see this feature reach GA!
Check out Kevin Bellinger’s session Developing richer Microsoft 365 employee profiles through Microsoft Graph for details and links to resources. Use the new preview Graph Explorer to test out some of these API’s as well.
And those are just my top 5 – there are tons more capabilities that were announced for the Graph at Ignite including “chaos handlers” (a.k.a Chaos Giraffe), updates to the the notifications API, webhook API updates and much, much more. For complete details and even more detail about what’s coming, check out the Ignite 2019: Microsoft Graph News blog post.