Banner - Working with AI

Working with the AI Spark partner program

Engage Squared recently had the opportunity to spend two days in Hobart with our partner LiveTiles, as part of their AI Spark Partner Program.  

AI Spark is a Microsoft and LiveTiles accelerator program for partners working with the LiveTiles Bots platform. Through the program, Engage Squared will be able to build AI capabilities that we can use to help customers develop and deploy AI solutions. 

LiveTiles Bots is a ‘no-code’ bot builder powered by Microsoft Azure’s bot framework and language understanding intelligence service. It takes a huge amount of the complexity and required technical know-how out of the bot-building process, allowing users to quickly create an AI tool relevant to their needs. 

We’ve been hearing more and more of our customers talking and asking about bots and AI, and it’s clearly an area set for a huge amount of growth, with enormous opportunities for businesses to take advantage of the technology to transform the way they and their people work. 

We’ve learned so much about bots and artificial intelligence over the past few days, being able to work with a no code solution that integrates with so many SaaS based applications, utilising complementary technologies such as Microsoft Flow has clearly outlined why AI is of great focus to Microsoft. 

Using the LiveTiles bot platform means the approach to building bots becomes less about investing technical effort and navigating technological boundaries, and much more about understanding what our customers are trying to achieve and supporting them with the design thinking process that is necessary to deliver a successful bot scenario, and the creation of custom connectors to the services and platforms they use.  

This flexibility is a testament to how LiveTiles have made it so easy to configure a bot and connect into an enormous number of data sources – basically any that have exposed API’s. 

The wide-ranging two-day AI Spark workshop started off with a review of the underlying Microsoft bot framework and suite of AI services, followed by a detailed walkthrough of the LiveTiles Bot product, and how it overlays the technology to provide a far simpler interface for users.  

We talked about the value of bots and some of the many real-world use cases that they can help with, from HR Bots returning your leave balances, to a public facing bot that helps customers check the status of their order and answer complex questions instead of calling a dedicated support number.  

Through this process, it became apparent that the quality of data and inputs in a production scenario was something that needed to be reviewed and be given thought to spend the time working on retrieving quality data, and putting it into a format that works well for a bot interface.  

We also discussed some of the many lessons that LiveTiles have learned from working with customers to develop bots. For example, often there is a temptation to want to jump straight into building an “uber-bot” that can do everything, but typically a much more successful approach is to start by thinking about your most valuable use cases and starting with one or more simpler, targeted bots that do one thing well – this approach is quicker, more reliable and more likely to be a success. From there, we can start to build on this success and look to more advanced things like starting to combine bots’ abilities. 

We also got a sneak peek of some of the many enhancements and innovations that LiveTiles are continuing to work on to make the platform increasingly useful and powerful for users. Bots and AI are set to be a major growth area and both Microsoft and LiveTiles have made clear that this is an area they will continue to invest in heavily with native integration with different systems and an evolving language model. 

The second day of the workshop was spent rolling our sleeves up with LiveTiles Bots and getting into some rapid prototyping. We brainstormed some use cases that would be valuable internally at Engage Squared, and after settling on two examples started to build our custom bots. This was a great experience to put what we had learned into practice and get us practicing design thinking, solving problems and building our familiarity with the product and everything it can do. We’re looking forward to putting some finishing touches on our working bot prototypes and sharing them with the team back at Engage Squared! 

If you think your organisation could use a bot to help your staff, or it’s something you would like to know more about, we would love to chat to you about how bots can help to drive productivity and bridge gaps between systems and users, contact us to arrange an overview of LiveTiles bots. 


Written by Thomas Lalor & James Di Blasi

Banner - Yammer and Skype for Business

Yammer & Skype for Business integration

Another week, another round of Office 365 updates and of course, they’re awesome!

Recently Microsoft released the ability to open the Skype for Business chat module through Yammer. The browser based chat isn’t exactly a new feature available in Office 365, it was originally released to Outlook Online quite some time ago.

However, what is new is the ability to open the Skype for Business chat module while working in Yammer and this is fantastic news! The recent release further aids in collaboration, allowing you to connect with your colleagues in a consistent and familiar way.


So what does it look like?

If you receive a message whilst browsing Yammer, a pop-up display message will appear on the top right hand corner. You are then given the choice to either respond or ignore the message. By choosing to respond, the Skype for Business chat window appears as an overlay on the page.

If you click the Skype for Business icon, located on the top right hand side of the suite bar the yammer module loads, it allows you to get in contact with your colleagues and external organisations/users using Skype for Business.

The great thing about this feature is that it isn’t limited to desktop devices either, allowing for a feature rich instant message experience across mobile devices too.

Using Mobile devices

Not only does this show the commitment Microsoft have to enhancing and supporting Yammer, but this is another show of strength by Microsoft that you don’t always need a desktop computer with software installed to work out loud and collaborate effectively! Remember anywhere, any device, any time!

Go give it a try today, and let me know what you think!

Microsoft Flow - Azure Automation

Flow and Azure Automation, working in harmony!

Microsoft Flow

Recently, the Microsoft Flow action Azure Automation was released, allowing us to interact with Azure Automation from Flow.

Although since early releases of Microsoft Flow we’ve been able to interact with Azure Automation by creating WebJobs, it has proved that many technical staff are not yet familiar with these. I believe this partly has a hand in why we haven’t yet heard the amount of integration stories between Microsoft Flow and Azure Automation as first anticipated.

To me, the integration between Microsoft Flow and Azure Automation means we can now fill in the gaps where there may not be a Microsoft Flow action available yet. It allows us to run scripts on demand or on a schedule. All that being said, let’s focus on the now.

Today, I’ll be creating a Flow that is triggered manually and requires user input; on execution of Flow it will start a run job in Azure Automation. This job will be executing a PowerShell script to reset a user’s password.

If we think of the scenario where a Desktop Support Technician is walking by the good old water cooler and a staff member pulls them aside and says ‘Hey, IT guy… can you help? I can’t login. I forgot my password… again. Can you reset my password?’ Rather than the wonderful person in support being required to go back to their desk and log back into Office 365 to reset the user’s password, they can simply enter the user’s email and execute the Microsoft Flow to reset it for the forgetful employee. Super simple! While this example is valid for the moment, there may well be an action released to reset a user’s password in the near future. But the focus of this blog post is that, while there are many actions available in Microsoft Flow, there may not yet always be one available to meet your particular business need – that’s where Azure Automation could fill the gaps!

Okay, let’s start – we will need to have an Azure tenancy, along with Azure Automation Service added. I won’t go into these basic steps as there is plenty of information about these on the web.

Right, so you’re now in Azure and you’ve added the Azure Automation Service and created a runbook. For this Demo, I’ve created a runbook called ‘ResetUserPassword’

Before we can start, we will be requiring the MSOnline Module so we can access the Office 365 tenancy, so let’s go ahead and add this in.

Access your Azure Automation account and click Assets > Modules

I can now either browse or search the Gallery to find the MSOnline module I’m looking for. Click Import and the module is now available for use.

Next, we will be required to set up our credentials for our Office 365 tenancy. From the Azure Automation left hand panel click Credentials > Add a credential. When adding your credentials, you will be required to provide a friendly name (this is important for when we are creating our script), and the username and password for the Office 365 tenancy. In this example as I am resetting a users password I have an account with Administrator privileges. Depending you’re requirement you may need to use a service account or equivalent with elevated privileges.

Now that both the module and credentials have been set up for the Office 365 tenancy, we can begin writing the PowerShell script that will be resetting the user’s password.

For demo purposes, I have written this script directly into the browser and tested with the testing panel, which proves a little slow and clunky at times, but overall an okay way to test.

When creating Azure Automation scripts that are to include parameters to be provided from other applications, I find it best to start by adding in these parameters as the first things to write.

As I am looking to reset a user’s password, I want to pass the user’s email, so I will be setting up a string variable named $UserEmail – pay particular attention to this parameter name as it will be required in Flow to pass the parameter to Azure Automation.

         [Parameter (Mandatory= $false)
         [String] $UserEmail = "",

Once you have added your parameter it’s time to add the authentication details to connect to your Office 365 tenancy. In this example I’m doing this in two small lines of code.

 $creds = Get-AutomationPSCredential -Name 'MyDemoTenant’

Note: the name ‘MyDemoTenant’ is the friendly name created when you first added your Office 365 credentials above; this adds the credentials to a secure variable that we can use to connect to Office 365.

 Connect-MsolService -Credential $creds

If you happen to jump ahead and are testing as you go, you will most likely find that you cannot access and pass the parameters through Microsoft Flow to Azure as intended. I find that the parameters are not available either for consumption in Azure Automation or transmitting to Microsoft Flow until both the Azure runbook and a version of the Flow is published. This could be a bug and something soon to be ironed out, but it did require me to publish both before I could work with the parameters.

TIP: You may need to publish your runbook and Flow to access the parameters.

Now that the script is written and ready to go, let’s head over to Flow and provision a new personal Flow.

Login to Flow from:

Click Create new Flow > Create from Blank.

Now that a new Flow has been provisioned we can begin to configure our Flow.

As I am intending to reset a user’s password, I have selected ‘Flow button for mobile’ which will be used to pass on the user email address on the user account’s password to be reset.


Select the trigger ‘Flow button for mobile – Manually trigger a flow’

Once you’ve added the manual trigger action you will need to give the input a name and description; in this example I will be using UserEmail as the input name.

Now that the trigger is added, it’s time to add an action. In this example i’ll be using the Azure Automation (Create Job) action which allows me to fill out start my ‘ResetUserPassword’ runbook created earlier  and pass on the UserEmail parameter

So, we now have all the components we need to start wiring everything up!

As the Azure Automation action is added, you will need to logon with an account to your Azure tenancy. This can be the Azure tenancy connected with your Office 365 account or separate, it’s entirely up to you.

Fill out the details for the Subscription, Resource Group, Automation Account & Runbook Name.

The bit we are paying attention to is the Runbook Parameter that is now available to us: ‘UserEmail’. This becomes available once we have selected the RunBook name and it has recognised that the Runbook is requiring a parameter.

Select inside of the parameter input field and you will see that a whole range of options become available on the right hand side of the page. Select as the input name the name you created as part of the ‘Flow button for mobile – Manually trigger a flow’ trigger that you created.

IMPORTANT – I’m not sure if this is a bug while the Azure Automation action is in preview, but to get this working I did need to publish the Azure Automation PowerShell script first so that the parameter was available for consumption.

So now we have the parameter (user email address) executing and passing to our runbook, it’s time to finish off the script by adding in the Office 365 PowerShell goodness.

 [Parameter (Mandatory= $false)]
 [String] $UserEmail = ""

Write-Output "connecting to the demo tenant"
$creds = Get-AutomationPSCredential -Name 'MyDemoTenant'
Connect-MsolService -Credential $creds

#Resets the user password to Password1 temporarily, but is forced to reset the password on next logon
Set-MsolUserPassword -UserPrincipalName $UserEmail -NewPassword "Password1" -ForceChangePassword $true

So, now that both our flow & azure runbook’s are published it’s time to give it a go. I’ve installed the Flow app on my mobile, and as you can see there’s an awesome interface to start a new manually executed flow.


How easy is that!!!! If you have any questions please leave a comment.

Until next time.

See another one of our recent posts about – Azure Automation – What it is? Why should I use it?

Office 365 Matter Center

6 tips to deploying Office 365 Matter Centre

What a busy, and exciting time it has been over the past few weeks full of new releases into Office 365. Today, I’m focusing on something that may not be new and something that isn’t really an ‘official’ Microsoft product either. Introducing: The Office 365 Matter Center.

The Office 365 Matter Center was developed by Microsoft’s Corporate, External, Legal Affairs (CELA), it’s a SharePoint based document management tool making it easier for both Legal and Business Professionals to organize files by matter.

This blog article will focus on some of the key learning’s and top tips for deploying the Office 365 Matter Center.


Tip #1

Use Visual Studio 2015, by using 2017 the solution isn’t totally compatible and requires the solution to be upgraded. The results by upgrading aren’t very consistent and will most likely lead to a failed deployment. So for now, keep using Visual Studio 2015!

Tip #2

While the documentation lists the following as pre-requisites, it doesn’t really explain how to do so.

Make sure Visual Studio has the following features installed:

  • Microsoft Office Developer Tools
  • Microsoft Web Developer Tools
  • PowerShell Tools for Visual Studio

Download and Run Microsoft Web Installer

Once the Web Installer loads, ensure the following are also downloaded and installed;


Tip #3

Filling out the excel spreadsheet for the first time.

One of the pre-requisites to deploying Office 365 Matter Center,  is to fill out a spreadsheet that adds pages to the root tenant url, content types to the content type hub, and configuration lists to the app catalog.



CatalogSiteURL (this is the app catalog site, make sure an app catalog has been provisioned)


Client_Config tab

With the owners group and Visitors group column, add a user full name to each (example,

Alternatively, write NA as you cannot leave this column empty.


Tip #4  –

When you run the Deploy-AzureResourceGrop.ps1 you will be requested to provide a few pieces of information, these are pretty straight forward but there are some gotcha’s with names, spaces and capitalization. Below I’ve explained a few of the important bits of mandatory information.

ResourceGroupLocation – this is the location that you would like to deploy the Azure Resource Group to, for those in Australia I’ve been using “Southeast Asia”

ResourceGroupName – Obviously a simple one, but is important to get right. Choose a name with no spaces, ensure that the name you chose here is the same you choose for the next step WebAppName, completing this provides consistency.

WebAppName – The webapp name is to be the name of the web application, this will be used in the url of the Azure App, again keep this consistent with the Resource Group Name if you can.

CentralRepositoryUrl – This is the url of your app catalog, it’s not documented anywhere so this can may be confusing.

Don’t get bogged down populating the  Sample data, you can create this through the system later.

Tip #5

Not ideal, but depending on the version and when you download the package there may be a hard-coded reference to ‘Microsoft’, this does cause issues with creating matters and having matters roll up to display on the Home page. This may not be valid at the time of reading but be sure to check the createMatter.controller.js located at –

“\tree\master\cloud\src\solution\Microsoft.Legal.MatterCenter.Web\wwwroot\app\matter\createMatter.controller.js” for a hard coded Microsoft reference.

Check line 2232 if you see a reference to Microsoft, change this to cm.selectedClientName

Tip #6

I’ve only seen this happen once, but on occasion you may have an issue with provisioning matter’s and an error referring to content types. I’ve found that it’s because the content types are either not published or because the because the managed metadata fields are not mapped to a term.

If the error you are receiving is referring to managed metadata.  Browse to your content type hub, go into the site columns and make sure that each managed metadata field under the “_Matter Center” group has a term selected.

There is so much business benefit to deploying the Office 365 Matter Center, it’s definitely worthwhile the invested time to deploy.

Thanks for reading.
James Di Blasi

Microsoft Ignite talk - Azure Automation

Azure Automation – What is it? Why should I use it?

After spending a fantastic week learning some of the new features of Office 365 and Azure at Ignite Australia 2016 on the Gold Coast it’s time to give back some of the learnings to the community.

So, what is Azure Automation and should you be using it?

Azure Automation was released in 2016 but it’s adoption and use is still low. This is because it’s seen as a relatively new addition to most enterprise customers’ Azure suite. Azure Automation brings the capability to create and execute run books that are essentially PowerShell scripts on a schedule, on demand or even integrated with HTTP enabled systems that can communicate with the book.  Azure Automation is free up to 500 hours of run time per month, which will satisfy most customers while trying out the service. After that the costs are 0.003 per minute,  more information on costs can be found

Now the traditional techs would say but we can do this on a windows server and have it scheduled using Windows Task Scheduler. While this is true there is a truck load of features and benefits Azure Automation provides you by default that you just can’t get with your traditional server approach.

No more servers required to run a script 

In many cases a primary function of a server or machine is to run a script on a schedule or even worse the script is scheduled to run on a server that has nothing to do with the script and activities. Either way both scenarios aren’t desirable and ultimately are not the best way we could be Automating our processes.

Credentials managed in a secure way 

As an IT professional you need to ask yourself, how many times have you seen credentials baked into a PowerShell script? For me, I’ve seen it far too often and as the industry on a whole continues to heavily invest to SaaS offerings and a cloud first mentality security is as critical as ever. The Azure Automation Credentials Manager allows you enter your username/password which can be used in the PowerShell script by making a simple call to the azure automation credential manager

Scripts managed in runbooks

A runbook is essentially a script that can be run on a defined schedule. However, the awesome thing is you’re not limited to just setting a defined date and time. You can configure the runbook to have custom triggers using web hook. Web hook allows you to connect and pass on information through a simple http request.

There are so many use cases of how web hooks could be useful to your organisation.  Imagine a scenario where you have a Web based HR system where HR submits all the details of a new on-boarding staff member. Once those details are submitted and approved we can do a simple REST Post to the Webhook. This passes on the information of the user to the PowerShell script that runs some simple Azure Active Directory cmdlets to create a user. This is an example of a simple and achievable automation of what is generally an IT heavy process, where with Azure Automation would require zero IT intervention to have these users on-boarded.

In Summary, Azure Automation is a powerful tool. To connect and automate repeatable processes whether they are in the cloud or on premises is achievable with Azure Automation.