Integromat – A review and overview

Introduction to Integromat

About one year ago I had been a major user of Zapier, and while this tool was able to fit most of my needs as my org started to enter hyper-growth I found that it become too limiting. Another issue, specifically for those working in the EU is how Zapier handles their data processing with their processing, currently, occurring within the US which is a major issue within my industry. As a result, I spent a while exploring other tools with my team looking over tools such as automate.io and Integrately. In the end, the very cheap entry cost of Integromat is ultimately what drew me in to start with and what kept me was their ability to complete automation’s I struggled to create within Zapier with the simple fact I was able to dig deeper than relying on a simplistic WYSIWYG interface.

What is Integromat?

In short, it’s a powerful integration tool that allows you to create automation flows. Integromat allows you to make these using a very simplistic and simple to use GUI that allows you to both visualise and design your flows meaning you don’t need to be a programming expert to make use of the tool. The added perk here is, if you want, you have the ability to go further than simply using the GUI and making your own custom modules.

Below is a pretty simple example of what Integromat can look like, it’s a simple flow that simply automatically deletes files from Slack after the file reaches a certain age, the added benefit of having reports to track these events for future use.

Simple flow

However, not all automation flows need to be that simple, ultimately if it has an API then you can automate the entire process. Below is a much more complex flow that automates most of the onboarding flow of new users from an IT perspective, handling a large number of tasks from account creation, manager notification and so on. Overall there are well over 100 modules in this flow.

Complex flow

Integromat, to put it simply, is a tool that allows you to automate apps and tools which have the ability to communicate via an API (Application Programming Interface). You also have the ability to create your own, unsupported app which isn’t already pre-made by Integromat themselves.

Costs involved with Integromat?

Integromat, currently, has two different approaches to costs. For most, their simple monthly payment plans will suit the majority of those who are in need of an automation tool. There is also a free option to allow you to evaluate the tool before going further. The main differences in plans are the number of operations you’re able to perform within a month, the amount of data being transferred and how often you’re able to schedule your flows to run.

Integromat price plan

Effectively you are paying for how many operations you’re able to run during a month, so the question becomes what exactly is an operation? Every time your flow runs it will trigger a number of operations as long as it completes successfully at each step. To give an example, if you searched a google sheet and queried it for specific information, that itself is only one operation, however, if you were to send each result to another step which makes separate actions per request those are multiple operations.

You additionally have the ability to go beyond this and move towards an enterprise plan which gives you a number of other benefits which can be found here.

Integromat Benefits

So outside of what Integromat does, the costs and who they compete with what else should you know about integromat? Well, for one, they have a massive app & service library of applications and tools which already have pre-built modules. This is what ultimately made me stick with them, they’re adding new tools every single week, developing on the modules they currently offer and taking feedback and requests on what to bring next. You can find the full list here.

showcase of number of applications

In addition to these apps their support team deserves massive kudos. With your payment plan, you get access to raise tickets for technical problems or assistance with your flows if you run into issues and from my experience they have been extremely helpful.

Custom logic and Integromat

Something I’ve found to be rather appealing is how simple creating flows that aren’t pre-built into integromat using their tools. To give an example I was looking to create a flow between Google Sheets and Notion for tracking data within the sheet. Until recently Notion had not had the ability to delete a DB item via API, when Notion was added to integromat this wasn’t an option and as such, it wasn’t there by default (although I expect this to change in the future). As such, I made simple use of their custom module for API calls which looks extremely simple.

Notion custom API example

You may also find that the specific app or tool you want to use has yet to be added officially into Integromat, if you find this to be the case you’re not out of luck. While you do also have the ability to make custom requests you have the ability to start writing your own modules making use of HTML, SOAP, XML or JSON.

HTTP, JSON, SOAP and XML Modules

Finally, you also have the ability to check out their developer support here.

The future for Integromat

Integromat itself was recently its own start-up, founded in 2012. In that time it has built up from a small org to a relatively big group valued at over $100,000,000. As of 2020, Integromat was bought over by Celonis for a sum larger than $100m who have already started investing into the tool with large plans. With goals of focusing more on Enterprise and meeting the needs of a large organisation, it’s safe to say that the future is looking bright for Integromat.

Grab a list of all groups and their member count on AzureAD with PowerShell

First thing will be to install and import the needed modules

Install-Module AzureAD
Import-Module AzureAD

Install-Module Az
Import-Module Az

From here we need to define what we will feed into our foreach loop with the following

$groups = Get-AzureADGroup

Note you can call $groups whatever you want, you will then feed this into our loop with the following

Install-Module AzureAD
Import-Module AzureAD

Install-Module Az
Import-Module Az

$groups = Get-AzureADGroup

foreach ($group in $groups){

Write-Output $group.Displayname (Get-AzureADGroupMember -ObjectId $group.objectid -all 1).count 
}

You can export an output similar to
“Group name
Count”

You can easily change this to your needs, export it with export-csv and so on.

How to add and configure Azure SAML / SSO into your new Slack environment

The goal of this guide will be to go through the process of creating an SSO connection between Azure and a Slack Workspace. Before going through this guide there are a number of prerequisites:

– You must have created your own Slack environment
– You are using business+ tier with Slack, this is needed for SAML-based SSO
– You already have your own tenant set up in Azure.

1. Be sure to confirm your workspace has the correct tier by going into your slack settings and permissions and going into the Authentication tab

2. Log into Azure and navigate to Azure AD and select Enterprise Apps. Add a new application here via New application.

3. You will now search for Slack as an application, once found select it. Once you’ve selected the app be sure to name it appropriately.

4. Go back into Enterprise apps and select your new app

5. Once selected click onto “Single sign-on”

6. Click on the basic SAML config

7. Enter your specific domain into Entry ID, Reply URL and Sign on URL. Your address will look similar to https://yourslackinstance.slack.com. IMPORTANT be sure to delete https://Slack.com before saving the changes or you will run into issues.

8. Next select edit attributes and click onto User.Email you will need to change this value to User.principalname, once you have hit save.

9. Next we will click onto edit on the SAML cert, we will need to generate a new SAML assertion SHA-256 certificate and save this.

10. We will now need to create a group that will be automatically provisioned and deprovisioned. To do this go into Users and groups from the left hand slide. Then click onto Provisioning. You should switch this from manual to Automatic and save.

11. Now we will need to Authorize, after you save you should have a pop up, be sure to approve this. Once you have be sure to test this connection and save it.

12. Once the connection is successful and saved we will need to toggle provisioning status to on, you will find this in the Provisioning section you were in earlier. If this doesn’t work after your first try do not be too concerned, this can take a few attempts to complete correctly, the first sync can take up to 30 minutes to run too.

13. We will then need to go back into Azure AD and then select App Registrations. Select the app you have been working on. Go to API permissions and add a permission.

14. Under API’s select the 3rd option and select the API for your instance, once selected hit save

15. We will then need to add 1 more permission. Go to Add another permission, go with Microsoft Graph and select delegated permission. We will then choose openID and user.read.

16. You will then need to grant consent with the tenant admin account, similar to the imagine in step 13.

17. Now we must return back to the app. Go to Azure AD, select Enterprise Apps and find the app. From here select Single Sign on where you will need to download the Base64 Cert as well as copying the Login URL and Azure AD Identifier URL.

18. Now it’s time to set up settings on the slack side. First go to your Slack instance and go into Settings and Permissions and be sure to navigate to the Authentication tab.

19. Click on the change settings button next to SAML authentication settings, you will see a menu which asks for SAML SSO URL, Identity Provider Issuer etc. You should now put the Login URL into SAML SSO URL and Azure AD ID into Identity Provider:

20. After you’ve completed this expand advance options, confirm that your FQDN Slack name is in the “Service Provider Issuer Field.

21 (optional). Now under settings tab select “it’s optional” under Authentication for your workspace must be used by:” otherwise change to fit your needs.

22 (optional). Customise your sign in button and save.

Note when this is published, Microsoft are known for updating and making changes to their UI.

How to change screen resolution through Intune and PowerShell

Something that is rather niche is the need to change users displays. This need can occur for a number of reasons, one reason perhaps some systems require a specific resolution to work correctly. The issue here is when you need to have this applied across 100s and sometimes 1000s of devices suddenly it becomes a massive job and so we must turn to our great friend, PowerShell.

The first thing to do would be to open up PowerShell ISE add the following

Set-ExecutionPolicy RemoteSigned -Force -Scope CurrentUser

Import-Module PowerShellGet
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser
Set-PSRepository -InstallationPolicy Trusted -Name PSGallery

The reason we are forced to make use of the execution policy cmdlet is due to how we’re forced to deploy this via Intune. Normally when deploying a PowerShell script as a Win32 app we would set the system to run, however, in this case this simply is not an option. If the system attempts to run the change to the resolution nothing will happen, it has to be the user which runs this.

The second part handles the installation of the needed module which actually applies these changes via PSGallery. For this to work a minimum version of NuGet is needed. From here we have the final part of the script which actually completes the changes.

Install-Module -Name DisplaySettings -Confirm:$false -force
Import-Module -Name DisplaySettings -Confirm:$false -force

Set-DisplayResolution -Width 1366 -Height 768

This is pretty self explanatory, we are installed DisplaySettings module via PSGallery which allows us the ability to use the Set-DisplayResolution cmdlet. Be sure to change the actual -Width and -Height to what you need. From here you have the option to add a simple detection e.g mkdir and created a folder for testing later in Intune.

Now it’s time to convert this script into a usable .intunewin format which allows you to put it into Intune as a win32 app. I will need to create a guide on this later but for now you can find details on this here.

Once you have this ready you should go into Intune (https://endpoint.microsoft.com/) and navigate to all apps where you will create the app. You will then need to go through the app creation processes

Be sure to have Install behaviour switched to user or this will fail, you should also use the following install command.

powershell -windowstyle hidden -ex bypass -file ScreenResolution.ps1

Be sure to select both 32 and 64 bit systems via operating system architecture.

The last import thing to do is create a Detection rule, for myself I added the ability to create a folder in the primary script and set up Intune to detect this folder on it’s creation. This way I have the ability to detect if the script ran successfully.

And now simply complete until you have the app saved and having it applied to the correct groups, from here it should complete without issues. Below is the full script.

Set-ExecutionPolicy RemoteSigned -Force -Scope CurrentUser

Import-Module PowerShellGet
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force -Scope CurrentUser
Set-PSRepository -InstallationPolicy Trusted -Name PSGallery

Install-Module -Name DisplaySettings -Confirm:$false -force
Import-Module -Name DisplaySettings -Confirm:$false -force

Set-DisplayResolution -Width 1366 -Height 768

mkdir c:\test1 

Welcome to my first post

Welcome to my first ever post, hopefully one of many to come. This website has a mixture of goals for me and I imagine it’ll evolve somewhat into something I didn’t originally plan for but that’s part of the excitement. Part what I’ll hopefully turn this website into:

  • A useful resource for those looking for guides and info related to certain technologies.
  • A place to share photos to, part of a personal hobby project.
  • Help me have a place to just write whatever is on my mind.

With regards to guides and info you can expect most of these to relate to Microsoft given this is what my background is in, additionally I’ll be adding a number of PowerShell related guides. PowerShell being a personal joy of mine which has helped me make my life much easier, I’m hoping to help those looking for something niche and encourage others to learn it.

I’m pretty new to this sort of thing, something which is out of my comfort zone for sure, if you want to send me feedback please do! Even the negative stuff as long as there’s actionable changes is welcome!

Thanks for taking the time to read through this and spending some time here. Hopefully you found something useful and helpful, that’s the ultimate goal.