Microsoft Flow Archives - Thrive https://thrivenextgen.com/category/microsoft-flow/ NextGen Managed Services Provider Mon, 17 Jan 2022 17:20:34 +0000 en-US hourly 1 Power Automate – Avoiding “File Locked For Shared Use” Failing Your Workflow https://thrivenextgen.com/power-automate-file-lock-fail/ Mon, 18 May 2020 14:00:44 +0000 https://www.timlinenterprises.com/?p=1668 In our workflows, we often need to perform file metadata updates, check-ins, moves, etc. If a file is locked and we do not account for it, it can fail our workflow entirely and prevent it…

The post Power Automate – Avoiding “File Locked For Shared Use” Failing Your Workflow appeared first on Thrive.

]]>
In our workflows, we often need to perform file metadata updates, check-ins, moves, etc. If a file is locked and we do not account for it, it can fail our workflow entirely and prevent it from moving forward. 

Consider a common scenario of running an approval flow that updates a Status field or other fields based off of the stage of the workflow and end-user responses. Utilizing a “Do until” loop and configuring the “run after” settings of actions we can ensure metadata updates are performed before moving onto the next steps of the workflow.

How does it work?

The basic premise is to create a variable to store the state, then use a Do Until loop to keep trying to update the item. If the update fails, execute a Delay and try again. If it succeeds, update the variable to exit the loop. The Run After conditions need to be set on both the Delay and the Set Variable. The Delay will run when the Update fails or is timed out, while the Set variable will run if the delay is skipped.

1. Initialize a Boolean variable and set it to False.

Update Metadata

2. Create a Do Until loop to run until the variable ‘UpdateMetadata’ = True.

The Change limits configuration controls how long the Do Until loop runs, or how many times it tries before moving onto next workflow actions. I set timeout to PT720H, which is 30 days using the ISO-8601 duration notation, and leave count empty so it retries unlimited times. 

Place your “Update item” or other action susceptible blockage within the Do Until. After the Update item, add a Delay action to configure how long you wish to wait between retries. 

After the Delay, add a Set variable to flip the marker variable to True, indicating the update was successful and the loop can stop.

Creating a Do Until Loop

3. Configure run settings on ‘Delay’ and ‘Set Variable’.

If the Update is successful, the “has failed” and “has timed out” options will instruct the workflow to skip the Delay action and move onto the Set Variable. 

Setting “is skipped” on Set Variable means it will only run if Delay didn’t, which would indicate a successful update.

Delay Run Time

Set Variable Run Time

Conclusion

In a shared environment, there is a good chance you will try to update a file while it is in use by others. When it’s a human being performing the update, the consequences are usually minimal — we just wait a few minutes and try again. When a workflow is blocked, it can cause downstream issues and leave data and files in an unexpected state. By adding some protection and retry logic around the updates, we can help ensure they are completed successfully before moving on to other tasks.

The post Power Automate – Avoiding “File Locked For Shared Use” Failing Your Workflow appeared first on Thrive.

]]>
How To Use Multi Choice People Picker Fields With Microsoft Flow Approvals https://thrivenextgen.com/how-to-use-multi-choice-people-picker-fields-with-microsoft-flow-approvals/ https://thrivenextgen.com/how-to-use-multi-choice-people-picker-fields-with-microsoft-flow-approvals/#respond Wed, 29 Jan 2020 10:49:49 +0000 https://www.timlinenterprises.com/?p=1491 Users looking to assign an approval to multiple people in Power Automate (or Microsoft Flow) using a Multi Choice People Picker field in a SharePoint list, may find that it isn’t as straight forward as…

The post How To Use Multi Choice People Picker Fields With Microsoft Flow Approvals appeared first on Thrive.

]]>
Users looking to assign an approval to multiple people in Power Automate (or Microsoft Flow) using a Multi Choice People Picker field in a SharePoint list, may find that it isn’t as straight forward as it might seem. When users feed the field value into any approval step, it will throw it into a for each loop (as shown below).

A challenge arises since users now face an approval being individually assigned to each person defined in the list item. The goal is to have one main approval and if someone in that list approves or denies it, the approval process is completed. To do this, users need to build a string array separated by semicolons and feed that into the “Assigned To” input. First, initialize a variable called “Approvers” and set it’s type to “String”.

Next, set up a for each loop based on the Approvers field in the SharePoint list and append each Approver Email to the string variable using the “Append to string variable” action. At the end of the variable, simply type in a semicolon so the completed string will be the email with a semicolon at the end.

Lastly, users can recreate an Approval step and feed it the new Approvers variable.

With this, users will notice notice that it is no longer thrown into a for each loop and they will get one single Approval tree to work with.

The post How To Use Multi Choice People Picker Fields With Microsoft Flow Approvals appeared first on Thrive.

]]>
https://thrivenextgen.com/how-to-use-multi-choice-people-picker-fields-with-microsoft-flow-approvals/feed/ 0
Microsoft Power Automate Flow Trigger Conditions https://thrivenextgen.com/microsoft-power-automate-flow-trigger-conditions/ https://thrivenextgen.com/microsoft-power-automate-flow-trigger-conditions/#respond Mon, 20 Jan 2020 10:00:59 +0000 https://www.timlinenterprises.com/?p=1476 It’s common to use the ‘When an item is created or modified’ trigger when creating Flows for SharePoint with Power Automate. This can be a very chatty trigger as every change can result in the…

The post Microsoft Power Automate Flow Trigger Conditions appeared first on Thrive.

]]>
It’s common to use the ‘When an item is created or modified’ trigger when creating Flows for SharePoint with Power Automate. This can be a very chatty trigger as every change can result in the Flow executing. Users can utilize Conditions, Scopes, and Run After settings within the Flow logic to determine if they should really act on an item. This still results in yet another unhelpful entry within the Run History.

Leveraging Trigger Conditions offers the option to check Trigger Properties and additional logic to determine if the Flow should run at all. Users can continue to use the same Trigger while streamlining both Flow logic and Run History.

Trigger Conditions are found by selecting the menu from the three dots or ellipsis in the upper right-hand corner of the Trigger Card. Once there, look to Settings, then at the bottom, Trigger Conditions. Users can add more than one Condition and that the Trigger will only run when the Conditions of which at least one must evaluate as True.

Since the Dynamic Content menu isn’t available at this point, users must use the available Functions. Whatever expression is entered should return a Boolean value. A non-Null value like an Object or Number won’t allow the Flow to run at all.

Expression Result Type Valid Condition
@add(1, 0) Integer No
@true Boolean Yes
@equals(1, 1) Boolean Yes
@json(triggerBody()) Object No

Note that List One which has two Content Types with differing Fields. Item has only the Title column and Item 2 adds the Example column.

Content Type Fields
Item Title
Item 2 Title, Example

Normally, users would have no means of filtering processed items within the Trigger with When an item is created or modified as no OData filtering is provided. By using the following Trigger Condition, users can ensure Flow doesn’t process any items where Example is missing data.

Two Compose actions are added to show the values of the Content Type and Example properties of the triggering items. When the Test functionality is used, three scenarios can be run:

Item Content Type:

Create a new Item which has only the Title column; no processing should occur.

Item 2 Content Type Without Example Value:

Create a new Item 2 which has both Title and Example columns, complete only the Title; no processing should occur.

Item 2 Content Type With Example Value:

Create a new Item 2 which has both Title and Example columns, complete both; the Test should now fire and process the Trigger.

Here are the results showing the Item 2 Content Type and the text from the completed Example field:

Alternately, we could use the Content Type itself as the Trigger Condition:

@equals(triggerBody()?[‘{ContentType}’]?[‘Id’], ‘0x0100ACFF228D0E467842B04850DDAE19C31C00BBAE74759D28534CB0A8EEAFC9908541’)

Trigger Conditions can be grouped to create complex AND/OR logic. While adding multiple conditions acts as an AND, where all must be True, there is no UI method for OR. Adding @false as a secondary condition illustrates this as if we run a Test — it will never trigger. 

Fortunately, Microsoft has provided both and() and or() logical comparison functions, allowing the introduction of OR in a single condition.

@or(equals(triggerBody()?[‘{ContentType}’]?[‘Id’], ‘0x0100ACFF228D0E467842B04850DDAE19C31C00BBAE74759D28534CB0A8EEAFC9908541’), not(equals(triggerBody()?[‘Example’], null)))

With this condition, the Flow would fire only if either the Content Type is Item 2 OR Example isn’t empty. This would run anytime the Content Type was Item 2, regardless of the value for Example, as well as for any other Content Type so long as Example isn’t empty. Tests do not fire when the Trigger Condition isn’t met, which means no more Run History entries when no real processing occurs. 

Condition Breakdown:

@: Allows the use of a Function within an Expression (anytime it isn’t entered via the Dynamic Content / Expression menu).

or(<expression1>, <expression2>, …): Return true when at least one expression is true. Return false when all expressions are false.

equals(‘<object1>’, ‘<object2>’): Return true when both are equivalent. Return false when not equivalent.

not(<expression>): Return true when the expression is false. Return false when the expression is true.

[, ], and ?: These operators are used to navigate data structures. In addition to accessing indexes in an array, the square brackets also allow access to Properties or Keys.

For users currently filtering on Trigger properties with Action Cards, it’s recommended to use Trigger Conditions instead. Users can even leave your existing logic in place as a matching condition would ensure that the same values are passed. They work particularly well in instances where Flow may trigger itself, such as updating a column value when a List Item is modified. In organizations with complex Flows or a large inventory, Trigger Conditions can cut down on Nesting Depth, Actions Per Flow, and Flow Executions — all of which contribute to staying within service limits and getting the most value from your subscriptions.

The post Microsoft Power Automate Flow Trigger Conditions appeared first on Thrive.

]]>
https://thrivenextgen.com/microsoft-power-automate-flow-trigger-conditions/feed/ 0
How To Configure Microsoft Approval Flow For Multiple Unique Approvers https://thrivenextgen.com/how-to-configure-microsoft-approval-flow-for-multiple-unique-approvers/ https://thrivenextgen.com/how-to-configure-microsoft-approval-flow-for-multiple-unique-approvers/#respond Wed, 08 Jan 2020 09:03:36 +0000 https://www.timlinenterprises.com/?p=1466 As a manager, portions of your day are typically associated with review and approval processes. You’re the one who pushes project progress along or allows your employees to take that much-needed vacation. Previously in Microsoft…

The post How To Configure Microsoft Approval Flow For Multiple Unique Approvers appeared first on Thrive.

]]>
As a manager, portions of your day are typically associated with review and approval processes. You’re the one who pushes project progress along or allows your employees to take that much-needed vacation. Previously in Microsoft Flow, an Approval Flow would be a cumbersome process. Users would have to let a manager know that a file is ready for review, then the manager would have to email the reviewers and track progress via email in order to know if the review process was complete. Another email would then need to be sent in order to inform the user who submitted the review that they can move onto the next task.  The process becomes even more complex when the people who have to review the file changes based on its content. 

So how can you configure an approval Flow for multiple unique approvers without this manual effort? 

This blog post will show you all the configuration steps necessary to support this scenario. 

Configuring Approval Flow 

Often when configuring approval Flows, we typically pull the manager information from a user’s profile and assign the approval task to said manager. This is a typical use case for a vacation request form. However, this is not always the use case where approver details are static. 

Occasionally, who the approval task is assigned to depends on a file or list item being submitted for review. For example, you have a document library where users want to submit drafts to colleagues for review but the people reviewing file is not always the same. You can create a Flow that allows users to submit the approval Flow, and upon submission enter in the unique persons for this individual item that need to review. Colleagues can then go in and add comments or make updates to file prior to approving or rejecting it. 

Follow along below to learn the steps on how to configure multiple unique approvers for an approval action in a Flow. 

Create The Flow

Build an instant Flow from Power Automate, and for trigger use “For a selected item” or “For a selected file” depending on your list. 

Begin by choosing your site and list the Flow will be ran on. Select “+ Add an Input” and choose Email. When users start the Flow, they will be prompted to add in “Reviewers” information via People Picker prior to kicking off Flow.

Next, add action to get properties of the file. The expression used to pull Id for file is triggerBody()?[‘Entity’]?[‘ID’]

Add the approval action. In the ‘Assigned to’, configure it to the “Reviewers” variable that users are inputting when submitting the Flow.

Manually Trigger The Flow 

Users can now execute the Flow on list items to submit them for review.

Read Next: How To Invite External Users Using Microsoft Flow And Microsoft Graph API

The post How To Configure Microsoft Approval Flow For Multiple Unique Approvers appeared first on Thrive.

]]>
https://thrivenextgen.com/how-to-configure-microsoft-approval-flow-for-multiple-unique-approvers/feed/ 0
How To Invite External Users Using Microsoft Flow and Microsoft Graph API https://thrivenextgen.com/how-to-invite-external-users-using-microsoft-flow-and-microsoft-graph-api/ https://thrivenextgen.com/how-to-invite-external-users-using-microsoft-flow-and-microsoft-graph-api/#respond Wed, 20 Nov 2019 00:39:50 +0000 https://www.timlinenterprises.com/?p=1411 Timlin recently helped a customer automate the creation of new SharePoint site collections designed for external sharing. Prior to our work, the client had a number of manual steps that included completing a PDF form,…

The post How To Invite External Users Using Microsoft Flow and Microsoft Graph API appeared first on Thrive.

]]>

Timlin recently helped a customer automate the creation of new SharePoint site collections designed for external sharing. Prior to our work, the client had a number of manual steps that included completing a PDF form, manually logging and tracking the request, spinning up the site and associated security, and manually inviting the external users.  With the new automated process, the client simply fills out a Power Apps form that allows them to specify email addresses for the external access, and all the remaining steps are fully automated.

When looking for the underlying solution to automate this process, we decided on Microsoft Graph API.  We needed to be able to authenticate with Microsoft Graph API and execute actions against it via Microsoft Flow.  We have used this for many of our solutions, and in this post, we will detail just what is needed to authenticate with Microsoft Graph API and how to use its Invite API to invite guest users to your tenant.

Setting Up an Azure AD App Registration

The main requirement for this process to work is the Azure Active Directory App Registration. This App Registration serves as the authentication handshake between Microsoft Flow and Microsoft Graph API. You will need an elevated level of privilege to create the app registration and assign it the permissions we need in this example.

First, navigate to your Azure Portal (https://portal.azure.com) and click on Azure Active Directory.

If Azure Active Directory is not present in your quick links section, simply search for it and click on it from there. Next, navigate to “App Registrations” on the left-hand navigation menu and then “New Registration”.

You can name this Registration whatever you’d like, leave the rest of the settings as they stand and click “Register”.

Authentication and Permissions for our Azure AD App Registration

Now that we have our App Registration created, we need to setup two things: our App Secret and the required App Permissions.

First, navigate to “Certificates & secrets” and click on “New Client Secret”.

We can call our Secret anything we’d like. In this instance, we’ll just name it “Secret”. The expiration date is up to you but keep in mind if you select an expiration date other than “Never” that you will need to update this Secret key down the line in order for your functionality to continue working.

You should now have a Secret key appear. Make sure to copy and save the key somewhere safe as you will only see it this one time.

Next, we need to give our App Registration a single permission called “User.Invite.All”. This gives the App Registration access to invite guest users to our tenant. To do so, navigate to “API Permissions” and click on “Add a Permission”.

In the now visible pop-up menu, click on “Microsoft Graph” followed by “Application permissions”.

If we now search for “User.Invite”, we will see our required permission. Check it off and click “Add permissions”.

Lastly, we need to grant the permission itself to the Application. To do so, click on the “Grant admin consent” button found at the bottom of the screen. If this is greyed out for you, it means that you do not have admin permission on your tenant to execute this action.

Setting Up Our Microsoft Flow

Now that we have our App Registration setup, we can create our Flow that will invite external users to our tenant. Be sure to keep our App Registration up in a separate window/tab as we will need some information from this shortly.

Our Flow consists of only two actions and a trigger. For now, we’ve set this up to be on a manual trigger, but you can always alter this for your needs. The two actions are an “Initialize Variable” action and an “HTTP” action (the HTTP action does appear as a Premium action but is available with appropriate licensing). The Initialize action will simply hold the Graph API invitation’s URL.

Next, our HTTP action will consume our GraphURL variable and build the JSON Body that we will send to the Graph Invite API.

Each property we specified in the Body is detailed below:

  1. Invited User Email Address – The email address of the external user we will be inviting
  2. Invite Redirect URL – The URL the external user will be redirected to once accepting the invitation
  3. Send Invitation Message – If set to false, the user will not receive their invitation email, but they will still be added into Azure AD. If set to true and no Customized Message Body is sent, the default invitation email will be sent to the external user.
  4. Invited User Message Info and Customized Message Body – This allows for you to send a customized invite message to the user. This object is optional.

Next, we need to take care of authentication on this HTTP call. Click on “Show advanced options” to reveal the authentication options.

In your example, replace the first part of the tenant URL with your tenant name. For Client ID, this can be found in your newly created App Registration on the Overview page.

Next, select “Secret” for “Credential Type” and paste in the Secret you saved from earlier in the field labeled “Secret”.

You’re Finished!

With this, the Flow should be fully configured and ready to go. If you run the Flow, you should be presented with the following email upon completion in the inbox you specified. The user will have a guest user profile generated in your tenant’s Azure Active Directory. Within 5 to 10 minutes after this invitation, the user will also have a SharePoint User Profile created as well.

 

Let us know if you have any questions on this process or would like us to help you set it up.  

The post How To Invite External Users Using Microsoft Flow and Microsoft Graph API appeared first on Thrive.

]]>
https://thrivenextgen.com/how-to-invite-external-users-using-microsoft-flow-and-microsoft-graph-api/feed/ 0
How to Initiate Flows from PowerApps https://thrivenextgen.com/flows-from-powerapps/ https://thrivenextgen.com/flows-from-powerapps/#respond Tue, 08 Oct 2019 19:34:25 +0000 https://www.timlinenterprises.com/?p=1319 Flows and PowerApps go hand in hand recently. They can transform many different business processes such as Employee Onboarding/Offboarding, Nominations, Permissions, Site Creation, etc. A great way to utilize Flows and PowerApps in tandem is…

The post How to Initiate Flows from PowerApps appeared first on Thrive.

]]>
Flows and PowerApps go hand in hand recently. They can transform many different business processes such as Employee Onboarding/Offboarding, Nominations, Permissions, Site Creation, etc.

A great way to utilize Flows and PowerApps in tandem is to allow a PowerApp to initiate a Flow and feed the Flow that information which is already provided in the PowerApp Form.

Creating the PowerApp

In this example, we are going to create a simple blank PowerApp that will have two fields: Subject and Body.

If you haven’t guessed already, the PowerApp will contain a button that when clicked will initiate a Flow that consumes the information entered by the user into the Subject and Body fields and send an email to whoever the Flow has defined as a recipient (you could theoretically go a step further here and define the recipients in the PowerApp but I’ll leave that up to you).

Your new PowerApp should contain at a minimum two Text Input fields. You can make one of them multi-line if you’d like for the Body. Ours looks like the image below.

Next, we will add a simple button to the PowerApp labeled “Send Email”.

With the button highlighted/selected, navigate to the “Action” tab and click on “Flows”.

You’ll notice in our example, one Flow already appears. This is because any Flow you have created in this environment that has a plain trigger of “PowerApps” will be consumable in the PowerApps themselves.

Creating the Flow

For this example, click on “Create a new flow” to start the Flow Creation process. We want to make a simple two-step Flow so click on the first template available which is the PowerApps to Custom Action flow template.

Next, we will want to create a single new step called “Send Email”. You can define yourself or anyone you’d like as the recipient and when clicking on the “Subject” or “Body” property, you will be given the dynamic content property of “Ask in PowerApps”.

If you use that property for both values, you should then be presented with something like the image shown below.

Setting Up The Action Button

Save your Flow and head back to the PowerApp we created earlier.

If you close and re-open the “Flows” panel, your new Flow should now be available. While you still have the “Send Email” button selected, click on our new Flow to add it to the button. Once added, you will notice that the “OnSelect” property has been filled in with the action of “SendEmailfromPowerApp.Run(“.

The name of this action may vary based on what you named your Flow. You will also notice that it is asking for two parameters. These parameters are the Subject and Body we asked for in the Flow.

We can now feed the Text value from the first Text Input in for the first value and the same for the second.

With this, the PowerApp and Flow should now be integrated. If you run the app, fill in the values and click on “Send Email” your Flow should kick off emailing your recipient with the values you input for Subject and Body.

Read Next: How to Create Filtered Relational Drop-downs with Choices in PowerApps

 

The post How to Initiate Flows from PowerApps appeared first on Thrive.

]]>
https://thrivenextgen.com/flows-from-powerapps/feed/ 0
6 Takeaways, Trends, and Observations from SPTechCon 2019 https://thrivenextgen.com/takeaways-sptechcon-2019/ https://thrivenextgen.com/takeaways-sptechcon-2019/#respond Fri, 06 Sep 2019 22:33:38 +0000 https://www.timlinenterprises.com/?p=1281 The successful completion of another SPTechCon Boston is under our belt. As I like to do after these events, I stop and think about the people I talked to in the industry, the problems, and…

The post 6 Takeaways, Trends, and Observations from SPTechCon 2019 appeared first on Thrive.

]]>

The successful completion of another SPTechCon Boston is under our belt.

As I like to do after these events, I stop and think about the people I talked to in the industry, the problems, and challenges they are encountering with various aspects of Office 365 tools and their businesses, plus what they hoped to achieve by attending the conference.

One of my main goals at SPTechCon is to speak with attendees and understand why they came to the event.  Most people come with some problems or ideas and hope to get more direct-human feedback on technology issues. 

Here are the big takeaways, challenges, and trends that I uncovered from conversations throughout the week:

Takeaways and Trends from SPTechCon 2019

1. Collaboration and Automation Are The Future

Microsoft Teams, Flow, PowerApps are the big winners over the past year and continue to lead today into the future. The desperate need for a powerful workflow engine to replace classic SharePoint features has put us in the driver’s seat to create real-world applications in SharePoint Online.

Microsoft Teams has been such a needed addition to the toolset that it’s no surprise how quickly it has taken off.  Users have switched over almost entirely to this tool for communication and collaboration, relying on classic SharePoint features for more process-based on document and information management.

2. Change is Constant in the Office 365 Ecosystem

Office 365 users have a difficult time making sure their team (often a team of one) can keep track of the features being updated and introduced by Microsoft. 

From small changes that derail a training exercise to whole new applications becoming available to an entire organization, changes to the platform are constant and can have a huge impact on how teams do business.

We, collectively, haven’t fully converted from the classic installation, service pack, and major revision model of yesterday. In the past, users and admins could review the release notes, understand the changes, test the installation, and release several feature changes on our schedule. Now, enhancements come in an unsteady stream.

This is a scary proposition to those who try to build and maintain the confidence of business while offering cutting edge capabilities.

It’s one of the reasons I publish the Timlin Office 365 Monthly Buzz Newsletter every month with updates, trends, and goings-on related to Office 365 and SharePoint. If you’d like to receive it, sign up here.

3. Understanding the Longer Microsoft Roadmap is Challenging at Best

Microsoft has never done a great job at helping us build a 3-5-year technology plan based on their feature and release roadmap – the guidance just isn’t cohesive enough. 

For example, if we knew that InfoPath and Workflow were going to be abandoned and replaced with PowerApps and Flow, we could have planned for it in advance. Also, the new versions of these tools don’t have feature parity, so they aren’t completely compatible as replacements.

This is a frustrating proposition for CIOs and technology leaders to recommend a plan, not knowing if the technology will be abandoned, what its possible replacement may be, and if something else will take its place within 2-3 years. 

The strategy, training, and political clout required to correctly implement these tools are too high to guess and hope.

4. Using Strategy and Governance Helps Identify the Right Tool(s) for the Job

The features in the Office 365 Suite contain several overlapping and interconnected capabilities.  Organizations struggle to understand how set the proper guidance, support, and train people down a path they are comfortable managing.

When there are too many ways to manage tasks, it becomes almost impossible to severely limit the choices, so many organizations turn to a “free for all” approach.  This methodology can increase initial user adoption, but almost always creates major problems if the platform takes off.

Organizations should consider when to use which tools and how to set the stage to provide solutions to their internal business problems in a well-orchestrated capacity. Information architecture, business analysis, governance, training, and ongoing support are all crucial to the success of user adoption and achieving digital transformation. 

5. Guaranteeing Proper User Adoption Isn’t Easy

Hopefully, you are noticing a theme here.  Most of these issues stem from similar problems.  Without the time or resources, you often have one of two paths to choose, or possibly both paths at the same time:

  1. Pick and choose high-value problems/solutions and solve for those.
  2. Open the spigot and let people use the tools in whatever way works for them.

Both approaches have their pros and cons, but I talked to a lot of frustrated business analysts and administrators that were expected to make these tools useful for thousands of people with no help beyond their knowledge of the platform.  This is not a good recipe.

6. Limited Time and Resources for Management and Maintenance are Commonplace

The obvious final piece of the puzzle is there isn’t enough time to make the impact these professionals want to make on their businesses.

For example, if an organization decides it needs a new ticket tracking system, it will create a team, spin up the plan, work it through to completion, provide training, support, and ongoing resources for management.  They will then require that all new tickets come through this system, thus ensuring its viability.

When organizations start using Office 365, they treat it much differently.  They bought it for email, Microsoft Office, and possibly OneDrive, and go into it assuming these are essentially desktop/individual tools.

The mindset and business approach to implementation are entirely different. Unlike a mandated/required ticketing system, many of the capabilities and solutions within Office 365 are not a pure requirement to complete work.

Instead, they are optional tools designed to create efficiency and error reduction.  You must think ahead, build solutions, and entice or require people to perform certain activities within these tools to solve specific problems.

The Roadmap Ahead In The Office 365 Industry

As you will note from these takeaways, the world, and the businesses that thrive within it, are changing.

Where we used to work so hard to create process, efficiency, and predictability, the new methods of succeeding are based on adaptability, flexibility, and some bravery to embrace and accept that the world around will be adjusting a pace that we’ve never seen before. 

Information (and misinformation) is given to the entire world in seconds, ideas, concepts, and features show up without warning. 

The classic IT mentality has been tested and appears to be failing in a world that needs something different.

In conclusion, Office 365 and SharePoint continue to help organizations harness the power of technology to improve operational efficiency. As with any technology that has numerous, regular updates, it can be challenging to keep up, though, but it’s worth it.

Reach out if you need any help as our team is very well versed in all of Office 365’s tools and capabilities.


The post 6 Takeaways, Trends, and Observations from SPTechCon 2019 appeared first on Thrive.

]]>
https://thrivenextgen.com/takeaways-sptechcon-2019/feed/ 0
How to Fix Timestamp Issues Between Exchange and SharePoint in Microsoft Flow https://thrivenextgen.com/time-stamp-issues-microsoft-flow/ https://thrivenextgen.com/time-stamp-issues-microsoft-flow/#respond Tue, 06 Aug 2019 14:00:43 +0000 https://www.timlinenterprises.com/?p=1205 Microsoft Flow is often used so users can consume emails and post their content and attachments into a SharePoint list for processing. The date and time that an email was received are common metrics that…

The post How to Fix Timestamp Issues Between Exchange and SharePoint in Microsoft Flow appeared first on Thrive.

]]>
microsoft flow tutorial

Microsoft Flow is often used so users can consume emails and post their content and attachments into a SharePoint list for processing.

The date and time that an email was received are common metrics that users would like to track in SharePoint lists, and the metadata on the email contains that information. However, when you try to use this field, the date and time that flows into the SharePoint list isn’t the date and time the email was received.

Why Is There an Automatic Timestamp Issue in SharePoint? 

The problem stems from the variation in date formatting.

The date and time format that comes back from Exchange emails will resemble the following: 2019-07-02T17:10:36+00:00.

To compare, the date and time format that will be stored in a SharePoint list defaults in the following format: 2019-07-02T17:10:36.0000000Z.

Due to the difference in formatting, if you simply try to store the date and time from Exchange in a SharePoint list without converting it, you will end up getting completely different times than what you would expect.

How to Fix Timestamp Issues with Microsoft Flow 

The easiest way to solve this problem is to simply convert the time we receive from the email into the SharePoint friendly format. To do so, we can use the “Convert time zone” action in Microsoft Flow.

By default, the time zone that items come back in is the UTC Coordinated Universal Time and then it is converted into the end-users local time zone from that base.

With this information, you can convert the Base Time (the email’s received time) into the “Round-trip date/time pattern”. Our source time zone and destination time zone will remain the same as we do not want the actual timestamp itself to change.

The output from this action can then be used to store the proper timestamp in a SharePoint list item as shown below and from there the issue has been resolved.

If you have any questions with this process, let us know. Also, if you work a lot with Microsoft Flow, check out one of our most popular blogs entitled How Substring Works in Microsoft Flow.


The post How to Fix Timestamp Issues Between Exchange and SharePoint in Microsoft Flow appeared first on Thrive.

]]>
https://thrivenextgen.com/time-stamp-issues-microsoft-flow/feed/ 0
How to Use Custom Vision Intelligence with Microsoft Flow to Recognize, Identify, and Index Your Pictures, Videos, and Digital Content https://thrivenextgen.com/custom-vision-intelligence-microsoft-flow/ https://thrivenextgen.com/custom-vision-intelligence-microsoft-flow/#respond Tue, 09 Jul 2019 14:00:53 +0000 https://www.timlinenterprises.com/?p=1192 Recently, we came across a problem with a constructed Microsoft Flow that takes incoming emails to a Shared Mailbox and posts the information into a SharePoint list. The Flow picks up on attachments and stores…

The post How to Use Custom Vision Intelligence with Microsoft Flow to Recognize, Identify, and Index Your Pictures, Videos, and Digital Content appeared first on Thrive.

]]>

Recently, we came across a problem with a constructed Microsoft Flow that takes incoming emails to a Shared Mailbox and posts the information into a SharePoint list. The Flow picks up on attachments and stores those as attachments in the list item created.

The issue: the majority of people include the company logo in their signature, but the name of the file itself would vary, so there was no way to easily filter out the logo in order to not store it as an attachment. This is where the Azure Custom Vision Intelligence came in – you can easily customize your own computer vision models that fit with your unique use cases.

Here are a few examples of labeled images and how Custom Vision can do the work once it’s set up properly.

Custom Vision Intelligence Overview and Setup

Custom Vision Artificial Intelligence allows you to train an AI to perform certain actions.

In this instance, we will be training our Custom Vision AI to recognize the Timlin Enterprises logo. It will tag the images fed to the AI as being the logo or not being the logo. We can trigger the Custom Vision AI and feed it the image we are curious about in a Microsoft Flow.

To start, navigate to https://www.customvision.ai and sign in or create an account*. Once signed in, we will want to create a New Project. Simply click on “New Project” and fill out the prompt as shown.

*Note: The account you use should be linked to an Azure Subscription that it has access to. Also, in our example, our Resource Group was already created and set to the F0 Plan (Free Plan). During the original creation process of a new Resource Group in Custom Vision AI, it only allows you to create a new resource group under the S0 plan. If you want to avoid any costs, be sure to switch the plan for this resource group to F0 after creation (this will be shown later on in this post). In addition, the resource group must remain as the South Central US location as the functionality we are using is only available in this location currently.

Once you’ve created the project, you want to start off by creating two tags on the left-hand side. One tag can be called “Timlin Logo” and the other can be called “Not Timlin Logo” to keep everything simple. The “Not Timlin Logo” will be marked as negative as images that fall in this category are the opposite of what we are looking for in the logo.

In order to have enough data for your workflow, the AI will require a minimum of 5 images per tag you create. What you want to do is give the AI between 5 and 10 images that either is or look like the Timlin Logo and 5-10 images that look nothing like it. An easy way to do something like this would be to take the logo and slice it into different quadrants (as shown below). Upload each of these spliced sections as separate images into the AI and assign them the “Timlin Logo” tag.

Spliced Images

Spliced Images in Custom Vision AI

Tags

Next, we will want to feed it the Negative images. You can use any image that does not resemble the logo. In this example, I’ve used some stock Office logo images (as shown below).

Training Our Custom Vision Intelligence

Now that you have your sample data, we can start to Train our AI. To start this process, navigate to the “Train” button at the top left-hand corner.

You are then given two options: Fast Training and Advanced Training. What you are looking for is rather unique and easily identifiable, so you can simply use the “Fast Training” process.

If you were training an AI on hundreds or thousands of images to identify a very particular object/set of objects, you may look into using the Advanced Training process which will train the AI over a specified period of time. For now, select “Fast Training”, navigate to “Train” and wait for the training process to complete. If all went well, you should get your two tags with (most likely) a 100% precision rate in identifying whether an image is the logo or not.

You can test this with other images that aren’t in your sample pool as well. If you click on “Quick Test” you can feed the AI a separate image and ensure that the proper tag is being pulled back. For example, if I feed it the last screenshot referenced in this post, I should receive “Not Timlin Logo” back (as seen below).



Triggering Custom Vision Intelligence from Microsoft Flow

Triggering your Custom Vision AI from Flow and feeding it an image to test is very straight forward.

You can start by creating a new Instant Flow (one we can trigger manually). In this example, you will use a file stored in a library in our SharePoint tenant.

To do so, you first get the file content by using the “Get file content using path” function in Flow.

Now that you have access to the file and its content, you can add the action to determine the tags.

Search for and add the “Predict tags from image” action in Flow.  You first need to configure the Custom Vision connection. Give the connection a name and your prediction key (found on the settings page of your Custom Vision application). Once that has been configured, the action itself will request your Project ID, which can be found from the Settings page of your Custom Vision AI project, the Image Content (which is the File Content stored in the last action) and you can also input an Iteration ID if no default is set.

To find the Iteration ID, you can access the “Performance” tab within Custom Vision AI, click on an iteration and copy the “Iteration id” value into the Flow Action.

The completed Flow action will look like the one below.

When run, the Flow should trigger the Custom Vision AI and give you a JSON output that you can use for any future conditions with probabilities assigned to them.

With this, you will have completed your first Custom Vision Intelligence setup with Microsoft Flow integration.

If you have any questions on the setup, or anything else related to Microsoft Flow, let us know. Our team of Microsoft experts is available to help you!

The post How to Use Custom Vision Intelligence with Microsoft Flow to Recognize, Identify, and Index Your Pictures, Videos, and Digital Content appeared first on Thrive.

]]>
https://thrivenextgen.com/custom-vision-intelligence-microsoft-flow/feed/ 0
How Substring Works in Microsoft Flow https://thrivenextgen.com/microsoft-flow-substring/ https://thrivenextgen.com/microsoft-flow-substring/#respond Mon, 08 Apr 2019 14:00:16 +0000 https://www.timlinenterprises.com/?p=1105 In most programming languages, we have access to an extremely helpful function called substring. We can use this function to extract snippets of a string that we need the most. Microsoft Flow is no different…

The post How Substring Works in Microsoft Flow appeared first on Thrive.

]]>
In most programming languages, we have access to an extremely helpful function called substring. We can use this function to extract snippets of a string that we need the most. Microsoft Flow is no different in the fact that it offers us the use of this function, but the way we use it is a bit different than typical modern approaches.

How Does Substring Work in Microsoft Flow?

In a programming language like JavaScript, we can use the substring functionality in various ways. Microsoft Flow, however, has one way of using it. When entering the substring expression into a Flow, you will see the inputs required to complete the function (shown below).

This looks relatively standard, but the one part of this that might throw you off is the length parameter. In normal conditions, the length of the string would simply be exactly that, the length of the entire string you are trying to pull a substring out of. However, in this case, if we wanted to subtract a file extension from the name of a file, it would not work.

Let’s take MyWordDocument.docx as an example.

We want to extract “docx” from the string. Typically, we could use the string as the “text” parameter (which would be MyWordDocument.docx), start index would be the index in which the period is, and length would be the entire length of the string. If we do this, we will encounter an error saying that the length parameter we used cannot be longer than the length of the string itself.

There’s a reason this happens — the length is assumed from the starting index. If we had a starting index of 5 and the length of the string was 8, we would come out with a length of 13 instead of the original length of 8, resulting in the error.

How to Use Substring without Error

In order to remedy this problem, we need to do a couple of extra steps. Let’s initialize four parameters in our Microsoft Flow: FileExtension, IndexOfPeriod, LengthOfString, and NewLength as shown below.

First, we will get the index of the period in the string using the following expression:

indexOf(“MyWordDocument.docx”,‘.’)

We can store this in the “IndexOfPeriod” variable by using the “Set Variable” command in Flow. Next, we can store the entire length of the string in our “LengthOfString” variable using the following expression:

length(“MyWordDocument.docx”)

Now, in order to get the actual length, we are going to put into the substring function, we need to subtract the full length of the string from the index in which the period sits. We can store this in the “NewLength” variable and process this using the following expression:

sub(variables(‘LengthOfString’),variables(‘IndexOfPeriod’))

Finally, we can use the substring function to store the final output (which should just be “docx”) in our “FileExtension” variable using the following expression:

substring(“MyWordDocument.docx”,variables(‘IndexOfPeriod’),variables(‘NewLength’))

With that, we should now see that the FileExtension variable now stores the output “docx”, which is exactly what we were looking for.  Below is a screenshot of how the Set Variable commands look within Microsoft Flow.

If you have any questions about Microsoft Flow, please reach out to our team here!

Read Next: Thrive’s Shift from SharePoint Designer to Flow & PowerApps

The post How Substring Works in Microsoft Flow appeared first on Thrive.

]]>
https://thrivenextgen.com/microsoft-flow-substring/feed/ 0