The Enriched Microsoft Flow


At this year’s SharePoint Virtual Summit, Microsoft announced many new and exciting features and enhancements to its suite of applications. These innovative features affect the following applications:

SharePoint – continues to gain momentum with over 100 million monthly active users. SharePoint plays an important role in Office 365 by empowering customers with the ability to share, manage, and create content, knowledge, and apps to weave a more connected workplace.

OneDrive (File Explorer on Windows and Finder on Mac) – Collaboration requires access and sharing of documents between team members, who may either be within your organization or outside of it. With OneDrive, you can securely share your files with a link to anyone inside or outside of your organization with real-time collaboration, whether it be on your desktop, laptop or mobile device.

SharePoint Communication Sites – Collaboration within your team is important, but reaching and engaging a broader audience within your organization is just as important. Providing updates through a beautifully designed dynamic site, the Communication Sites was developed with these special focuses for your audience across your organization via desktop, laptop, and mobile device.

SharePoint Forms with PowerApps – Easily create custom forms that surface in the context of a SharePoint list or library, providing data that users can then create, view and interact by using your custom form. PowerApps is a powerful tool for users as they are empowered to drive the transformation of the team and organizational processes. 

SharePoint and Microsoft Flow– Built-in approval flows allow you to send documents with a custom message and the recipient can approve the request directly from a rich, actionable email message or provide feedback, without leaving their inbox.

Microsoft Graph –Relevant and valuable results are surfaced from content that is sourced from files, sites, news, and from people cards, which includes their skills, interests, and projects, which is all driven from machine knowledge that runs Microsoft Graph.

These are just a few of the new innovations announced at this year’s Summit, but in this article, we are going to focus on the many new aspects of Microsoft Flow and SharePoint.

What is Microsoft Flow?

Microsoft Flow was integrated with SharePoint in 2016 (see my article https://www.maadarani.com/sharepoint-and-flow/). Microsoft Flow is a workflow tool which allows quick delivery of automated information to your audience whether on-prem or in the Cloud. The ability to automate and receive notifications, synchronize files and obtain data between your favorite apps and services provides you the ability to reach out beyond your intranet. Once your audience reacts to the trigger, their action reaches back to Flow which then logs their reaction into a SharePoint List or Excel file.  This data is beneficial for analytics, providing the ability to review and enhance processes by streamlining with recurrent cycles that can be set hourly, daily, weekly or as frequently as minutes. 

Prior to integration, the creation of simple workflows required the use of SharePoint Designer or third-party tools.  Though SharePoint Designer was developed specifically for SharePoint, it did not lend itself easily to creating workflows within SharePoint.  To write the coding for the workflows, one had to learn the syntax, the many quirks of SharePoint Designer, debug and tweak the code for countless hours. 

Now, with Microsoft Flow, creating workflows is much easier. Microsoft Flow employs a graphic user interface and with the many templates in its library.  Microsoft Flows interact with other applications like MailChimp, Twitter, SharePoint, OneDrive, and Dropbox and many other applications. 

Microsoft Flow has advanced even further since its integration in 2016.  Not only can you embed Microsoft Flow within Microsoft’s own products, 20 product partners have now integrated their products to be accessible within Microsoft Flow creating the opportunities for limitless types of workflows.

Partnering with Microsoft Flow – The Possibilities and Outcomes

Building Custom Connectors

Adobe has developed its Creative Cloud connector which has its own set of actions and triggers by leveraging Microsoft Flow’s rich custom connector to build connectivity to their own services directly inside Microsoft Flow. There are two types of triggers that Microsoft Flow supports, polling and webhooks, and both are leveraged in Adobe’s Creative Cloud connector. 

ISV Cloud Embed

Microsoft is offering ISVs to pilot their new ISV Cloud Embed Program. The Cloud Embed Program will be enabled later this year. This program will allow information staff and power users of ISVs the ability to add and customize workflows as part of their applications. If you are an ISV and would like to participate in the pilot program, then apply by completing this simple online form

Connecting with Flic

What is Flic?  Flic is a physical button that uses wireless Bluetooth technology, pairing itself with your Bluetooth wireless device and provides you three clicks that execute three specific commands from a distance.  For example, the first may start your playlist, the second may pause your playlist, the third may skip to the next song. Or, the first can turn on your lights, the second can begin playing your music, the third click can turn on your smart TV.  Continuing to expand its unlimited uses, there is now a beta version of a Flic hub, which allows Flic buttons to be distributed throughout an environment, such as in an exhibition and when a visitor clicks the Flic button, a flow immediately runs in response.  This is only one example of how Microsoft Flow can be partnered and implemented with a third party.

Common Business Automation with Microsoft Flow

Microsoft Flow is being embedded into a range of Microsoft business application products, providing a powerful end-user experience with the capability of creating and implementing the automation of flows at their level.

As of May, Microsoft Flow can be triggered within SharePoint from within Document Libraries, SharePoint Lists or OneDrive for Business folders.  Some added features include the collection of additional data once the flow is run, including request for feedback from the user to the reviewer, assigning a priority (i.e. high/medium/low priority) of a flow document, and the ability to share the flow with others in the organization but withholding permission to edit the flow.

Dynamics 365 for Financials & Operations, Business Edition, will also benefit from the embedding of Microsoft Flow into its application. The user will now be able to manage flows from within the context of Dynamics 365 without having to leave the application. The Dynamics 365 customer will not only benefit from a fast, automated workflow but will also now have a seamless experience.


One of the most exciting announcements is the Microsoft Flow “Bot” – the Microsoft Teams @FlowBot.  This bot brings automation into Teams workspaces, allowing team members to trigger flows right inside of Teams conversations. A team member will have the capability of setting up a flow where a text message is sent to appropriate staff regarding an impending issue and the actions taken can be logged in an Excel spreadsheet. 

Microsoft Flow and Every Level of User

With its simplified workflow automation, Microsoft Flow is user-friendly from beginners to advanced users.  With just a few clicks, a user can easily start automating a flow. 

There are a variety of workflow scenarios with connector supports for many different services.  A user begins by choosing the service that he is interested in and then browses what the connector can do.  Once the user determines which connector is appropriate, he can then use that connector as a jump-off point to build his flow. 

When we think of Flows, we think of complex “if this happens, then that happens” type of scenarios. Sometimes, users only need basic operations to be completed, like adding numbers together, retrieving the correct time, or replacing a string of text. These can be accomplished with Flow’s rich set of actions, which resemble Excel expressions, inside any flow action. For those with Azure Logic app experience, the transition is simple as Microsoft Flow uses the exact same Workflow Definition Language as Azure.  For those unfamiliar with this language, inline help is available to help with building out their flow with each expression. 

Button technology provides faster, richer flows and instant action.  Workflows can be kicked off by the pressing of a button, either digital or physical.  With two rich capabilities, Microsoft Flow button provides flow authors the choice of how new accounts are used in shared buttons. In one instance, authors can ask the person clicking the button to provide their account, or, the author can bake an account directly into the flow.  The second instance allows authors to define the input, such as dropdown lists for the buttons, which restricts the user to choose an option from a pre-defined list.

The tight integration between Microsoft Flow and SharePoint and other software, such as button integration, is essential for Microsoft customers as it provides simple, effective and clear flows at any user level. 

Administrative Control and Life Cycles

Not only are there enhancements in the creation of flows, but within the administrative and life cycles of the flows, administrators are given more granular control along with management capabilities which translates to the effective empowerment of end users with capabilities rich in automation. 

In the Microsoft Flow admin centre, admins can now view and manage all flow inside their organization. Analytics allow admins to download flow usage in their tenant, providing the necessary data to understand exactly where and how flows are being used, how they are tracking against their billing quotas, and based on flow usage, determine which scenarios are being adopted the fastest, and using this information, to identify those most useful to employees.

Managing Lifecycle of Flows

For some companies, it is essential to have the ability to verify their solutions before rolling out across the board. For others, it is necessary for system integrators to build their solution within their environment, export it in a package, and then distribute directly to their customer’s tenants.  The management and control of the life cycle of flows are critically important, and at the SharePoint Virtual Summit, it was recognized.  To meet these types of criteria, solutions built with Microsoft Flow can now be imported and exported with other assets like PowerApps across environments, including from test to production environments. 

In addition, users can now convert Microsoft Flows to Azure Logic apps by saving any flow as a Logic App resource template.  Like any Logic App resource, the template can be managed and deployed through Visual Studio or directly in the Azure portal to a user’s subscription of choice.

As Microsoft continues to innovate and enrich their applications and setting the standard in the industry, many partners strive to match these standards.  As third-party developers combine their application features with those of Microsoft, SharePoint and Office 365 will continue to empower its users with powerful applications that are becoming more user friendly and more specific to user needs by leveraging machine learning building towards a corporate world of collaboration on the go.

Modern UI – Part II

 

Modern document libraries and lists were released in the summer of 2016 for SharePoint Online with the goal of creating better end-user experiences, including faster, better, and intuitive responses in a user-friendly environment.  Not only is it highly recommended that one transitions to the “modern” list and library but customizations be converted to the “modern” experience as there are many benefits to the “modern” experience.  Some of these benefits include the following:

updated user interface: “modern” document libraries are similar to OneDrive, offering intuitive responses such as creating new folders and uploading files in the browser;

–  pinned documents:  pin documents so they are above the fold in any screen view for quick and easy access

copy and move:  unlike old copy and move commands, the “modern” experience is intuitive and allows one to create new folders on they fly as the architecture of your information is displayed

decrease number of copies of document: “modern” document libraries are intelligent.  They remember files that you have used in SharePoint which allows you to import files from other libraries as links rather than data files, thereby, decreasing the amount of storage space and duplicity numerous of files. 

organizing files: “modern” document libraries provide the ability to group files directly on the main page without having to go to a separate admin screen.  In addition to this, there is the capability to click and drag columns to change their size plus sorting, filtering, and grouping can be done from any column header

–  mobile browsers:  whether accessing SharePoint Online with a keyboard, mouse, screen reader or touch, all mobile browsers will now have the same features as a desktop

–  editing metadata:  it is no longer necessary to click through multiple screens to apply an update as metadata can now be edited from the main view on the information panel

–   integration:  by integrating Office Online with SharePoint Online, SharePoint Online now provides a complete document preview at the top of the information panel and is completely navigable.  The information panel displays pertinent metadata including history of recent activities, recipients of the file for sharing and updates to the file

It is important to note that the “classic” experience will not be deprecated but will co-exist with the “modern” experience. 

There is an option available to the Admin to enable SharePoint to automatically detect when certain features are being used.  This auto-detect automatically returns the “modern” experience back to the “classic” experience when certain features are used. 

These features that are compatible to auto-detect include:

1. Navigation Features:  all libraries on sites that have metadata navigation and filtering features enables are shown in “classic” experience;

2.  Column Types:  geolocation columns, external data columns, and publishing columns (including publishing HTML, Publishing Image, Publishing Hyperlink); and

3.  Customizations:  JSLink code on fields, and CustomActions that include ScriptBlock or ScriptSrc properties. 

Auto-detect can be enabled, assuming the “modern” experience was not disabled under the site, web, or list levels, by following these steps:

1.  Choose Admin Centres;

2.  Choose SharePoint;

3.  Choose Settings;

4.  Scroll down to SharePoint Lists and Libraries experience; and

5.  Choose New Experience (auto-detect) (the black should appear in the circle next to this). 

Auto-detect is now enabled. 

Customization Options

Unlike the “classic” lists and libraries, the “modern” list and libraries supports fewer customization options; however, the SharePoint Product Group is continually working towards supporting more options in the future.  In the meantime, supported capabilities include Subset of User Custom Actions, Custom Branding, and PowerApps and Flow Integration. 

Customizations that are not currently supported for “modern” lists and libraries include: JSLink based field and view customizations, custom CSS via AlternateCSSUrl web property, custom JavaScript embedded via User Custom Actions, Custom master pages, customization via InfoPath, Minimal Download Strategy (MDS), and SharePoint Server Publishing.  For embedded Custom JavaScript, there will be controlled methods of embedding JavaScript on the pages through SharePoint Framework, and not only client-side web parts. 

 

User Custom Actions

Not all user custom actions supported by “classic” mode are supported in “modern” experience mode.  The following is a list of supported custom action locations and how they are surfaced in the “modern” UI:

1. User Custom Action Location:  EditControlBlock will be visible and show up as custom menu items; 

2.  User Custom Action Location:  CommandUI.Ribbon will be visible and show up as toolbar items; and

3.  User Custom Action LocationScriptlink and all other locations will not be visible and will not surface in the “modern” experience

Adding custom links to the context menu can be achieved by using the EditControlBlock as the location for your custom action.  Likewise, to extend the toolbar in the “modern” list and library experiences can be achieved by adding a user custom action targeting the CommandUI.Ribbon location. 

User Custom Action Limitations

It is important to keep in mind the limiting parameters when developing user custom actions. These limitations include the following:

1. Control of User Custom Actions:  one does not have complete control of the order in which the user custom actions show up.  The current API does not account for the sequence attributes;

2. Usage of JavaScript:  user custom actions will not show up if JavaScript is embedded in the command actions as it is not supported;

3. ScriptLink and ScriptBlock:  as ScriptLink is not supported, any user custom action relying on ScriptLink will not run in the “modern” experience; and

4.  Image Maps:  Image maps is not supported but you can specify individual images that are only 16 x 16.

Custom Branding

If your site employs a custom theme, then this custom theme will be respected in the “modern” list and library experience. 

 

 

Configuring End User Experience

The “modern” or “classic” list and library experience can be controlled at multiple levels:

1.  Tenant Level Configuration:  Highly suggested for disabling the “modern” experience completely.  In your tenant admin center, go to settings, select “classic” experience;

2.  Site/Web Level Configuration:  For preventing a web or site collection from using the “modern” experience, one can enable/disable features; and

3.  List/Library Configuration:  Control can be found at the library level by going to list settings, advanced settings, and then choose how you want to change the behavior.  Optionally, it can also be done using CSOM. 

As the SharePoint Team continues to add more supported features, it is highly recommended that one transitions to the “modern” list and library to take full advantage of the user-friendly environment which results in a satisfying end-user experience. 

 

 

SharePoint and Office 365: Patterns & Practices – Part 1: The Basics

 

What is SharePoint Patterns & Practices (PnP)?

SharePoint Patterns & Practices (PnP) is an initiative that was launched in 2013 with the vision to simplify development by providing an open source, reusable components, and solutions that have been built collaboratively between the community and Microsoft. Through sharing of knowledge of implementation practices in SharePoint and Office 365, Microsoft and the community collaboratively create the starting points for PnP guidance and code samples. 

How does it look like?

There are three levels of engagement.  Imagine a target with 3 concentric circles with the centre of the target being the Core Team.  Encircling the Core Team is the second layer comprised of the Special Interest Groups (SIGs) while the final outer third layer is the Community. 

1.   Core Team:  As the title implies, the Core Team has the greatest direct involvement with the PnP library of code samples and guidance documentation.  Comprised of a small group of individuals from Microsoft and the community, they have been granted permission and direct access to the PnP library to merge approved changes in the PnP library.  By keeping the Core Team small, control can be maintained to ensure proper and appropriate value is added to the PnP library.  

 

2.   Special Interest Groups (SIGs):  Special Interest Groups are being brought together and are currently being piloted with SharePoint client side development to develop the JavaScript Library.   SIGs meet weekly to exchange thought, processes, and code to build the JavaScript Library.  SIGs do not have access to the PnP library though what they produce will have an impact on the PnP Library.

 

3.   Community: With the least access to the PnP Library, this group is comprised of both the internal and external community.  Their involvement is through either of the following methods: 

 

a.    Bi-weekly office hours: hosted by members of the PnP initiative, they review and explain what the Core Team is doing, what they plan to do, and they provide suggestions as to the various areas or topics that could use community contribution.  At the end of the session is an open mic where the community is provided the opportunity to voice suggestions as to what they would like to contribute to the initiative.  These are then pitched to the Core Team, who is then tasked to render the final decisions.    

b.    Monthly Community Calls:   a unidirectional communication informing the community what changes have been proposed, names of members who have been contributing, and names of those who have been doing demos or presentations for the bi-weekly office hours.  Recognition during these calls improves the exposure of members who participate, which in turn, provide endless networking opportunities.  These Monthly Community Calls are held the first Friday of every month.  On every second Tuesday of every month, the community is provided the latest changes in the PnP Library.

 

What benefits do I receive from PnP?

By becoming an active member and recipient of PnP, not only will you gain a community of peers and experts, but you will also have access to useful libraries and an unfathomable amount of code.  Some of the libraries include the PnP Core Library, which is a NuGet ready to go package, PnP Components, Samples and Solutions, PnP Provisioning Engine, and PnP PowerShell. These are just a few examples of the libraries that you will gain access to.  Under one umbrella, there will be an establishment of common architectural patterns and standardize guidance that is available upon immediate publication of the code.  For those who would like more detailed instructions, there are webcasts available as well as on-line training material.  The best part of joining and participating in the PnP Initiative is that all materials, including videos, presentations, webcasts, are not only available for your viewing, but they are free for re-use in any way that you want! 

 

How am I supported in the PnP Initiative?

Being an open source community program, there are no sales level agreements (SLAs) for Microsoft support.  As PnP is not a product like Word or MS Office, it is not supported through Premier Support or other official support channels.  Instead, support can be accessed through the SharePoint Developer Group in the Microsoft Tech Community to provide input and/or to ask any questions regarding existing material. 

Microsoft and the community work collaboratively to provide open source code samples with standardized guidance documentation.  Both the code samples and guidance adhere to the PnP guidelines for support and recommended techniques.  These materials are maintained by Microsoft while all PnP implementations are reviewed and approved by SharePoint Engineering.  Most importantly, PnP retains its uniqueness by being supported from within the community by the community.

Microsoft Graph API – Part 3 – Customizing Queries for Results


This is our last article of 3 parts about Microsoft Graph API. In the first article, Microsoft Graph API – An Introduction, we had a quick overview of the Graph API and how it evolved from the Office Graph API. We also talked about what you need to know about setting up your endpoint API and tokens to build your custom solutions.

In part 2, Microsoft Graph API – Bringing it together, we showed you the structure of the Graph API that are composed of four layers: Data, Authentication and Authorization, Development Environment, and Solutions Layers. We also reviewed the importance of Active Directory and how organizations have started to build applications on the Graph API.

In this article, we will go a bit deeper in developing queries and syntax with the platform.

 

Common Microsoft Graph Queries 

Microsoft Graph API is currently available for preview only with two endpoint versions.  The first addresses users, groups, contacts, calendars, mail, and files.  The endpoint is https://graph.microsoft.com/v1.0 and is available for your production environment.  The second addresses tasks, people, OneNote, Excel, contacts (organization).  The endpoint is https://graph.microsoft.com/beta and is available for preview.  

Microsoft Graph API v1.0

Common queries that can be used to access the Microsoft Graph API is as follows:

Operation

Service endpoint

GET my profile

https://graph.microsoft.com/v1.0/me

GET my files

https://graph.microsoft.com/v1.0/me/drive/root/children

GET my photo

https://graph.microsoft.com/v1.0/me/photo/$value

GET my mail

https://graph.microsoft.com/v1.0/me/messages

GET my high importance email

https://graph.microsoft.com/v1.0/me/messages?$filter=importance%20eq%20'high'

GET my calendar

https://graph.microsoft.com/v1.0/me/calendar

GET my manager

https://graph.microsoft.com/v1.0/me/manager

GET last user to modify file foo.txt

https://graph.microsoft.com/v1.0/me/drive/root/children/foo.txt/lastModifiedByUser

GET unified groups I’m member of

https://graph.microsoft.com/v1.0/me/memberOf/$/microsoft.graph.group?$filter=groupTypes/any(a:a%20eq%20'unified')

GET users in my organization

https://graph.microsoft.com/v1.0/users

GET group conversations

https://graph.microsoft.com/v1.0/groups/<id>/conversations

Source:  https://graph.microsoft.io/en-us/docs

Microsoft Graph API Beta

Queries that are available in the beta version are as follows, but is important to note that they are in beta and it is not suggested that these be applied in the production environment:

Operation

Service endpoint

GET people related to me

https://graph.microsoft.com/beta/me/people

GET files trending around me

https://graph.microsoft.com/beta/me/trendingAround

GET people I am working with

https://graph.microsoft.com/beta/me/workingWith

GET my tasks

https://graph.microsoft.com/beta/me/tasks

GET my notes

https://graph.microsoft.com/beta/me/notes/notebooks

Source:  https://graph.microsoft.io/en-us/docs

 

Syntax Patterns

For developers, the syntax patterns, at this time of publication, are as follows:

1.  Microsoft Graph API Endpoint:

{Graph Endpoint} https://graph.microsoft.com

2.  Target Service Version: 

{Version} such as v1.0 or beta

3.  Tenant Name or Specific Entities: 

{Tenants} such as users, groups, files

4.  Particular Item from Entity Set: 

{Id} such as single user and file

5.  Specific Property of Particular Object Selected from Entity Set: 

{Property}

Query Parameters

Microsoft Graph API supports the following query options which allow you to specify and control the amount of data that is returned in a response: 

  1. $Select – include in response comma separated list of properties:  https://graph.microsoft.com/v1.0/me/messages?$select=from,subject
  2. $Expand – include in response expanded comma separated list of relationships:  https://graph.microsoft.com/v1.0/me/drive/root?$expand=children($select=id,name)
    Note: maximum number of expanded objects for a request is 20 and if the query is placed on the user resource, the properties of only one child object or collection can be retrieved at a time. 
  3. $OrderBy – include in response comma separated list of properties used to sort order of items in response collection: https://graph.microsoft.com/v1.0/users?$orderBy=displayName%20desc(asc)
  4. $Filter – filters response based on a set of criteria:

    1. By name: https://graph.microsoft.com/v1.0/users/?$filter=startswith(displayName,{Name})
    2. By entity type: https://graph.microsoft.com/v1.0/me/messages?$filter=from/emailAddress/address%{Value}eq%{EmailAddress}%27
  5. $Top – Number of items to return in a result set: https://graph.microsoft.com/v1.0/users?$top={Number}
  6. $Skip – Number of items to skip in a result set:  https://graph.microsoft.com/v1.0/me/events?$orderby=createdDateTime&$skip={Number to be skipped}
  7. $skipToken – paging token used to get next set of results:

    1. https://graph.microsoft.com/v1.0/users?$orderby=displayName&$skiptoken=X%{value}%
    2. To return the next page of users within your organization, the syntax is: https://graph.microsoft.com/v1.0/users?$orderby=displayName&$skipTokes =%{value}
  8. $Count – A collection and the number of items in the collection: https://graph.microsoft.com/v1.0/me/contacts?$count=true
  9. $directReports – Gets user objects, each with up to 20 directReport objects in the directReports collection: https://grap.microsoft.com/v1.0/users?$expand=directReports

By applying custom queries and setting specific parameters, Microsoft Graph API can be customized to provide tailored solutions to your corporation on a platform of your choice, including Android, Windows, and iOS.

Microsoft Graph API is an excellent solution from Microsoft to meet the demands of businesses in today’s world of cloud computer based business.  Flexible, seamless and efficient, Microsoft Graph API is the solution for obtaining aggregate data from various Microsoft cloud-based services including SharePoint, SharePoint Mobile, Office 365, Outlook, Calendar and social media apps such as Twitter and Yammer.

 

Microsoft Graph API – Part 2 – Bringing it Together


In our first Part, Microsoft Graph API – An Introduction, we reviewed the evolvement of Office Graph into Microsoft Graph API.  We also looked at the reasons as to why a change in process for accessing data was required.  Next, we delved into how the transition of obtaining aggregate data from various cloud services with a complex system of individually specific APIs and multiple tokens became one singular endpoint API and one token.  Customizing app solutions has become easier with a single endpoint API, and the possibility to provide these solutions in Windows, Android, and iOS platforms is becoming a reality with the move to open source developer tools.   

The Structure of Microsoft Graph API Developer Stack

In order to develop applications based on Microsoft Graph API, a basic understanding of the developer stack in needed.  There are four layers:

1.  Data Layer

Office Graph and Microsoft Graph API reside in this layer.  Information regarding people, emails, notes, documents and relationships with each other is delivered from this layer. 

2.  Authorization and Authentication Layer

Authorization and authentication use OpenID Connect and OAuth2.0 to perform these functions.

3.  Development Environment Layer

Software Development Kits (SDK) for Windows, iOS, and Android reside in this layer.  Development tools such as Visual Studio, XCode, Eclipse, Android Studio and REST (Representational State Transfer) are available in this layer.

4.  Solution Layer

Your app or solution is deployed from this layer on either Microsoft Azure or on other hosting platforms such as LAMP and IIS while enabling the developer to use their choice of language such as .NET, JS, HTML, and Ruby depending upon the apps solution that is being targeted (Windows, Android or iOS). 

This is best illustrated in the infographic below (source: https://graph.microsoft.io/en-us/docs).

Microsoft Graph API Developer Stack

Microsoft Graph API Developer Stack – Illustration

 

The Importance of the Microsoft Active Directory (AD)

Microsoft Active Directory (AD) is a structure used on computers and servers running a Windows operating system.  The primary function of the AD is to store network, domain and user information, such as user accounts, passwords, and profiles, in a single, protected location.

The AD is only as useful as the information that has been submitted and entered.  The importance of having a complete and accurate user profile is the key to successfully accessing user and business information.  For many corporations, the AD is lacking substance and with the lack of key information, collaboration, communication, and efficiency is greatly decreased with collaboration tools such as SharePoint, Delve, and business processes built on flow. Achieving AD compliance has always been a challenge for organizations with the lack of Governance and AD maintenance. This particular issue is being addressed by Hyperfish.   

Recognizing this as a point of need for businesses, Hyperfish was developed to achieve corporate compliance with each user by interactively engaging the user to complete the necessary information fields.  Hyperfish monitors the AD, or the Azure Active Directory (AAD) for missing, incomplete or out of date information.  After analysis, the system will then contact the user at the most appropriate time and method to elicit responses from the user to complete their profile.  The user will be prompted with suggestions which are based on information gathered from email, social media, and other data sources.  An AD that is complete will improve the quality and speed of communication between team members, and can be combined with Workflow, Office 365, SharePoint and SharePoint Mobile to maximize the effectiveness of collaboration. 

The Microsoft Active Directory serves as the hub of corporate user information, allowing administrators to set rules and trusts according to teams and privileges and when populated correctly, provides pertinent information which ensures utmost proficiencies in collaboration and communication.

Our last part will be an in-depth look at the most common Microsoft Graph API queries, syntax standards and parameter settings in Microsoft Graph API – Customizing Queries for Results. 

 

Microsoft Graph API – An Introduction


What is Microsoft Graph API?

Microsoft Graph API (Application Programming Interface) is the evolvement of Office 365 Unified API into a single stop for a cloud solution by exposing multiple Microsoft cloud service APIs through a single REST (Representational State Transfer) API endpoint. Microsoft Graph API provides seamless navigation between service entities such as users, groups, mail, messages, notes, tasks, and calendar, and Office Graph. Data can be accessed from multiple Microsoft cloud services such as Exchange, OneDrive, SharePoint, OneNote, Planner and Azure Active Directory.

As business and society move towards storing and accessing data in the cloud, the increase in traffic and increase in data volume results in data congestion. This translates into lost productivity, delays in decisions and miscommunication between groups and management. With each step towards cloud-based computing and collaboration, Microsoft is addressing the issue of cloud data congestion with Microsoft Graph API.
 

What is the Difference Between Office Graph and Microsoft Graph API?

When we examine Microsoft cloud services, we can see services that include SharePoint Mobile, Office 365, OneDrive, Outlook, Calendar, Skype, and Yammer. Each of these services is used to manage documents, email, events, collaboration and social interactions. These services can then be viewed as two types of entities: content and communication.

Let’s back up a bit to fully understand how Microsoft Graph API works. Before API, there was Office Graph. Office Graph was developed to link the two entities of content and collaboration together. Imagine the user centrally located on a blank page. As the user connects to various content and communicates with team members, a thin spider web connects the user with each action thus creating a web of all his actions and relationships to users around him. This spider web network shows the direct and indirect relationships the user within his work environment and how he responds and actions out his responses and questions.

With machine learning algorithms built into Office Graph, the user’s daily activity and the relationships between nodes, such as who the user reports to, who the colleagues of the user are, which documents are most frequented by the user, and so on, can be determined. By collecting and analyzing, this algorithm allows Office Graph to learn the user’s most frequented services and bring them to the top of the page for easy access.

With Office Graph, the user has created a web that consists of content and communication. Each piece of content is a node. Each person is a node. Each form of communication is a node. Office Graph connects these nodes together through specific APIs. Each one has its own API. Office Graph creates a small web for each user, whereas, Microsoft Graph API creates a web not only for one user but interlinks related users across an entire organization resulting in a large web of collaboration and communication.

Here is an image that shows how we can use Office Graph to connect and surface data among different areas of the Office 365 and Azure stacks.

Office Graph

The larger the web, the slower the time to access and find data. Microsoft Graph API retained the inherent machine learning capabilities as one of the responses to this issue. By collecting and analyzing, the machine learning algorithm allows Microsoft Graph API to learn the users working relationships and brings to the forefront the most frequented services not only for each individual user but as an organization as a whole by connecting each individual with collaborators and teams.

The single and greatest response to cloud data congestion is that Microsoft Graph API was evolved further so that multiple API exposures from Microsoft Cloud services are handled through a single REST API end point. In other words, there is one endpoint to rule them all!
 

How does Microsoft Graph API work?

In Office Graph, data in Office 365 is filed in individual silos. These standalone silos are labeled users, groups, files, mail, calendar, contacts, tasks, people, Excel and insights and relationships. Each silo has it very own unique API which caused a challenge for developers to access the data and eventually, it became cumbersome due to the complexity of accessing the individual APIs for different types of data and linking them to each other in different services. For example, accessing users and people in Azure Active Directory required one set of rules while accessing users and people in SharePoint required a second set of rules. In addition, separate access tokens had to be created to access data from different data silos. This was time intensive and not clean methodology! And so, Microsoft Graph API was born.

Microsoft Graph API provides access to Office Graph data with a single endpoint to display the data in your cloud app. Gone are the days of multiple tokens. With Microsoft Graph API, only a single access token is required regardless of which Microsoft cloud service that information is being retrieved from. Microsoft Graph API provides sleek, seamless and efficient access to information when you need it and how you need it.

Microsoft Graph API

In short, Microsoft Graph API provides a unified REST API endpoint, https://graph.microsoft.com, for accessing aggregated data from multiple Microsoft cloud services in a single response by using a single authentication token. Yes, it’s that simple.

In Part 2, Microsoft Graph API – Bringing it Together, we will delve into the developer stack and the importance of having a substantial Microsoft Active Directory. In our last Part (3), we will look closely at the common Microsoft Graph API queries in Microsoft Graph API – Customizing Queries for Results.

Introduction to SharePoint Framework: The Nuts and Bolts


What is SharePoint Framework?

SharePoint Framework is a new page and web part model that provides full support for client-side SharePoint development with easy integration of SharePoint data and Microsoft Graph through open source tooling which enables the building of SharePoint customizations for mobile, on-prem, online and OneDrive for Business. With SharePoint Framework, modern web technologies and tools provide a development environment to build experiences and apps that are ready and mobile-ready from the start.

In the next 3 blog articles, I will be shedding some lights on the new Framework and how you can start preparing to adopt the new development platform.

SharePoint Framework is written in JavaScript which allows developers, both inside and outside of Microsoft, to use their preferred web developer tools to develop SharePoint and customized solutions. This is an incredible leap as this allows developers on any platform to extend SharePoint’s standard capabilities. In addition, SharePoint Framework accompanies the new SharePoint UX, which is designed for the world’s mobile-first, cloud-first communication era. By moving towards open source resources, not only has a new door for developers has been opened, but it is also creating a new relationship between developers and SharePoint, resulting in a complete win for the client.

By moving to open source, will SharePoint Framework solutions work on classic sites? The answer is simply this: eventually, on existing team sites, it will and on new modern team sites, yes it will. However, classic solutions will not work on the new modern team sites. Moving forward, it is highly advisable to become familiar with SharePoint Framework and the tools to prepare yourself when SharePoint Framework is released.

Let's talk Framework, Development and Scaffolding tools in my next article!

Next Generation SharePoint Collaboration

 

I just got back from an amazing Microsoft Ignite Conference held in Atlanta. A conference where Microsoft shows their latest and great releases of products, features and take the opportunity to hold new announcements. Collaboration is at its peak in this conference, where attendees, exhibitors and Microsoft product groups come together to share their knowledge and experience around the Microsoft technology stack.

So many announcements, releases and features that were presented to us by the product team that is making everyone in the SharePoint and Office 365 world so excited about the future of SharePoint. There are so many technical details on the upcoming features, but I will summarize the major ones in this blog.

This is all started with the Future of SharePoint event that took place in May 4th. You can read about it on my blog post, the Future of SharePoint.

Announcing Team News

A new feature in SharePoint is Team News. It is pretty much the new "Announcements" for SharePoint, and I call it Announcements web 3.0. you can now create and publish beautifully branded announcements, in a very easy "wizard type" process. The news item will be available on mobile devices the minute you publish it.

SharePoint Team News

For more information on this new feature you can check this Microsoft Office Blog Post.

OneDrive and SharePoint Sync

We can say goodbye to the Groove.exe process, because we have a new Sync technology is on its way. Currently, we are in preview mode and the new Sync technology should reach availability to everyone in 2017.

SharePoint OneDrive Sync

 

SharePoint sync is being added to the OneDrive sync, and should offer superior sync reliability and performance compared to the current process. Through this preview, users will be able to sync SharePoint Online document libraries and OneDrive folders with each other.

We will also have the ability to decide where to store synced file from the OneDrive. The "On-Demand Sync" allows you to choose if you want to keep the offline files in the cloud or locally on your OneDrive for Business sync folder.

New People Profile

Based on the new Graph API, we are going to tap into a new power with People Profile. People cards will surface profile information and content throughout Office 365 and updates to the Office 365 profile. From anywhere in Office 365, you can click on the user's name and the user's card will pop-out that shows information about the user along with recent collaboration activities the user has participated in.

User CardUser Card Detalis

Office 365 Groups

Every time you create an Office 365 Group, you will get a full site collection. This means the members of the groups will have full control of the content in SharePoint.

Also the Yammer will be moving in with Office 365 Groups. Now users can get into Office Online and SharePoint from within Yammer. You can share documents from Yammer or you can share to Yammer from Outlook.

Other new features

Intelligence Services for PowerPoint where you can build a complete presentation deck based on existing session templates. Can you say build my session in few minutes? This is huge if you want to present a specific topic to a client without the need to create a deck from scratch. The Intelligence Service will build the outline for you.

Machine Learning will be integrating with Excel, as well as co-authoring within the Excel App.

Delve and Mail will be a match made in heaven, where Delve will get into your email and start showing how much you spent in your email or calendar, after hours, during business hours, etc. the MyAnalytics is the new name for Delve Analytics.

And so many more around new canvas experience with team sites, new team site experience, integration of Cortana with OneDrive, the new SharePoint Framework (FX).

I must say, very exciting time ahead of us and we will be seeing the birth of new innovative portals, machine learning applications, and beautiful integration between all Office 365 applications and Azure Services.

 

SharePoint and PowerApps


PowerApps is a powerful tool aimed at power users.  Since teams use SharePoint lists to access, share and collaborate around structured data, PowerApps utilizes SharePoint lists as the data source.  By bringing PowerApps,  Flow and SharePoint together, capturing data and producing useable business apps is a natural progression for cross platform data integration.

PowerApps can be created on mobile (PowerApps Mobile), on the web (PowerApps Studio) or on-prem (On-Premises Data Gateway) and can be published on the web or on mobile.  Not only can data be derived from SharePoint lists, but the data can also be derived from Excel files, Dynamics CRM record, custom APIs, Dropbox, Azure Blob, Azure Service Bus and a host of other sources.  As with Flow, PowerApps does not require any coding on your part.  PowerApps supplies a variety of templates which are customizable to your business needs.  The business apps that you build can use the device’s capabilities such as the camera, pen control and GPS. 

There is a major difference between Forms and PowerApps.  The functionality and purpose of each is very different.  Forms, which is currently under preview in the Education module, behaves very much like a questionnaire whereby the creator poses questions and the user will answer the questions in multiple choice style.  For more details of how Forms works, please refer to my article Microsoft Forms in Office 365 and SharePoint 2016

PowerApps, on the other hand, is not a questionnaire, but a business application which provides the user information that is derived from actual data via an app that is created with PowerApps and SharePoint lists.  For example, from the SharePoint list view menu, you will have an option to create a PowerApp for this list.  By initializing the Create PowerApp option, the PowerApps web designer will open in your web browser and the web designer will automatically create a default app for you based on the schema and data of that list.  You can then customize the app to suit your business needs.  These apps will show up as views and can be shared and launched from the SharePoint list. 

By leveraging the functionality of PowerApps to build custom and mobile capable views of your existing lists and sharing them with your team, it further enhances the collaboration aspect of SharePoint.  PowerApps is a cross-platform service and can run on all your devices, including Windows, Android, iOS and web browsers.

Microsoft continues to build upon the collaboration aspect of SharePoint and is integrating many of its services to strengthen collaboration amongst team members.  SharePoint and Office 365 are continuing to become stronger applications with greater versatility and functionality with the integration of PowerApps.