K2, PowerApps and Flow: When and Why?
Since Microsoft released PowerApps and Flow in 2016 there have been a lot of questions about how these new tools compare with K2.
Do PowerApps and Flow do the same things as K2? Are PowerApps and Flow a competitor to K2. Can they be used together?
For businesses making the important decision on what process automation platform to use, these are relevant and critical questions. If you are an Office 365 customer you may already have PowerApps & Flow available, and you will need to evaluate these tools to see if they meet your needs.
At the first glance, PowerApps and Flow display a list of similarities when doing a feature comparison with K2. Both offer connectors to allow you to get data from your business systems, a forms designer and a workflow engine.
Both can also be classified as low code platforms.
However, there are a few key points of difference between PowerApps/Flow and K2 that you need to consider before embarking on your process automation journey.
While it will take thousands of words to describe all differences, this introductory article will focus on two of the most obvious differences.
Firstly, K2 has more a more advanced design experience in most areas of the stack, making it faster and easier to build more complex form and workflow scenarios to address the business problem at hand.
Secondly, and most importantly, K2 is a mature Business Process Management (BPM) platform, which means that it not only offers the tools to build more advanced process automation applications, but it also has tools to manage and analyse your applications. This is a very important consideration in evaluating automation platforms that can get overlooked.
Let’s explore these two points of differentiation in more detail.
Design and Build Experience
I am not going to dive into a detailed technical feature comparison between PowerApps/Flow and K2 for a couple of reasons.
One is that the landscape for both platforms is constantly evolving, with more features being added for both all the time, making a comparison done today redundant tomorrow.
The other is that when assessing the suitability of a toolset it is more important to look at the type/s of process automation application you are looking to build.
What do I mean by “type/s of business process applications”?
The following diagram provides a useful reference point for answering this question. The process-driven application landscape/framework below leverages some of the application portfolio management concepts in Gartner’s Pace-Layered IT Strategy as outlined 
According to Gartner:
- Systems of record — Established packaged applications or legacy homegrown systems that support core transaction processing and manage the organisation’s critical master data. The rate of change is low because the processes are well-established and common to most organisations, and often are subject to regulatory requirements. Systems of record have the longest life cycle, at 10 or more years.
- Systems of differentiation — Applications that enable unique company processes or industry-specific capabilities. They have a medium life cycle (one to three years) but need to be reconfigured frequently to accommodate changing business practices or customer requirements.
- Systems of innovation — New applications that are built on an ad hoc basis to address new business requirements or opportunities. These are typically short life cycle projects (zero to 12 months) using departmental or outside resources and consumer-grade technologies.
In the context of K2:
- “Systems of Record” applications, which includes large business systems like SAP & Oracle (ERPs) are pre-packaged vertical applications which cost a lot to purchase, implement, and extend. Implementation of systems in this layer tends to be strongly IT led and often involves the software platform vendor by necessity. K2 can quite often fill some gaps in this space, for example by providing an alternate user interface for your SAP system and integrating it with other systems. These systems typically have rigid and tight business processes built into the system (for good legal and compliance reasons). Still, within the System of Record context, some organisations also choose to use K2 as the enterprise workflow layer in large-scale line-of-business system type, custom development projects.
- “Systems of Differentiation” applications meet reasonably complex business needs that require integrations into other business systems and flexible reporting. These applications are typically developed to automate a business process which will provide the business with some competitive advantage, whether it be cost reduction, better customer experience or better decision making. Valuable intellectual property that differentiates the organisation from its competitors often lives in this application layer in organisations. Implementation of applications in this layer tends to involve business, IT and external consulting assistance as necessary. K2 plays very well in this layer, allowing business applications with medium and high complexity level workflow logic, sophisticated forms and advanced data integration to be built quickly with little or no code.
- “Systems of Innovation” applications are typically simple workflow and/or form applications that solve a specific business need across a team or department. These applications are usually developed by individuals within the team or department and are cost effective to implement using widely available toolsets. This is also referred to by many as “citizen developer” type activity in organisations. With specific reference to the use of technologies like PowerApps, Flow, IFTT, and Zapier, we also see a rising trend around the creation of Personal Productivity Applications in this layer in organisations.
As the diagram above illustrates, K2 can play a meaningful role in any of these application layers, but its main strength lies in the “Systems of Differentiation” layer. PowerApps and Flow are mainly used in the “Systems of Innovation” layer.
One reason for this difference is that the K2 platform allows you to more easily design the medium and high complexity workflows and forms that “Systems of Differentiation” demand than PowerApps/Flow. Flow is designed to solve “If This Then That” type workflow problems. For example: “if a new account is added to a CRM system, then send an email”. Flow also does simple data orchestration well, using its large number of connectors it can respond data being created or updated in one system and then create or update data in another.
Flow can be very useful for personal or team-based workflows, such as sending notifications or reminders. However, when requirements start getting more complex – things like rework patterns, parallel paths, sub-workflows, multiple user actions (beyond approve & decline) and task escalations – implementing these in Flow often becomes quite difficult, where K2 can handle these with ease.
PowerApps is a “mobile first” forms platform, primarily used to capture and display data for a single data object (e.g. a SharePoint List). When you want to start doing things like creating complex user interfaces for desktops and mobile (e.g. displaying/updating from multiple data sources on different tabs, offline forms and sharing forms with external users) PowerApps often hits limitations that may be difficult to overcome without significant workarounds or custom development.
K2 uses a simple declarative form rule to drive form behaviour, whereas PowerApps requires Excel-like formulas to be used. Another aspect to consider is the ability in K2 to create reusable objects. K2 Forms, Views, SmartObjects, and Workflows can all be re-used in K2 across multiple applications, reducing your build time and making updates quicker and easier.
A final, and very important, consideration with respect to the design experience, is the management of the application development lifecycle. In K2 you can build an entire application (Forms, Views, SmartObjects and Workflows) and package that up and deploy to a test or production environment in a few clicks.
This is a powerful feature that lets you totally segregate your development, test and production environments and have full control over the deployment process and application development lifecycle.
I am sure we all know by now that almost anything is possible with most development platforms given enough time and energy. In practice, choosing the appropriate tool for the job is often the difference between success or failure though.
So, you have built a business-critical process-driven application, released it into the wild, and it starts getting used in anger. Soon, the business starts asking questions like “How many workflow processes are running right now?”, “What happens if someone is on leave and cannot approve an urgent request?”, “By who and when was a particular request approved?”.
This is when having the tools and features that a proper BPM platform come in very handy. K2 offers a comprehensive set of functionalities to manage your processes, including:
- Out of Office notifications
- Task list for all workflows
- Task escalations
- Task redirections and sharing
- Working Hours
- Workflow permission management (who can start, administer and report on workflows)
- Workflow error management
- Workflow version management
- Workflow instance management – starting & stopping workflow, go to specific workflow steps
- Workflow Reporting – workflow analysis and insight
- Centralised and secured management interface
- Design Permissions – control who can build and deploy applications
Microsoft PowerApps and Flow working with K2
A final thought to consider when looking at K2 and PowerApps/Flow is that they can actually work together quite nicely when building an automation application, utilising the strengths of each platform.
Take the example of a CRM system and an onboarding process for new accounts. A user can add a new account directly into the CRM system, however for the account to become active, we need an onboarding process to occur that involves verification from different business departments and data from other systems.
This workflow might have a parallel approval pattern with rework steps and inputs required from other systems (e.g. the account is added to the Finance system and the new account ID is input back into the CRM system by the finance team.). To implement this application, we need to monitor the CRM system for new accounts, and when one is added we need to start a reasonably complex account onboarding workflow.
Now, we could try and do all this using K2, or similarly by only using Flow/PowerApps.
To trigger the K2 workflow for account onboarding from your CRM system will probably require some sort of custom development in that system – not something you really want to do, but possible.
On the other hand, trying to create a Flow and PowerApp that implements the account onboarding process will quickly become very difficult and complex. In addition, you don’t get the additional benefits of things like task lists, out of office task redirection and task escalations. As the kid on the Old El Paso advert says, “porque no los dos?” (Why not both).
We could also expose the new account form in CRM as a PowerApp, allowing users out on the road to use their mobile device to add new accounts on the run. We could then use Flow connectors to monitor our Salesforce or Dynamics system for new accounts – there are out of the box connectors for these systems that are relatively simple to set up in Flow.
We could then use an action in Flow to start a K2 workflow to start a more complex business process to onboard the new account (involving legal and finance teams, and other LOB systems). A Flow connector for ease of integration with K2, is available . K2 SmartForms can be used as the task forms, exposing data from not just the CRM systems but other business systems as well.
This hybrid application approach is playing to the strengths of both platforms. Flow gives us the nice and easy way to monitor our line of business system by providing loads of connectors, PowerApps provides a mobile form for new account submission, and K2 gives us both an enterprise-grade workflow engine that can easily handle complex scenarios, and a user interface to allow task completion, as well as all of the other baked in platform, features such as task management and process reporting.
While Flow and PowerApps are constantly evolving and getting more and more features, the types of business problems they are focussed on solving are fundamentally different from the ones that K2 is aimed at. And while there is of course cross-over in the terms of functionality, you need to look at what type of business application you are building based on the application portfolio management approach chosen by your organisation. (i.e. is it a System of Innovation or Differentiation etc.?). Lastly, find a toolset that can deliver for not only your technical requirements but also provides features to let you manage your processes.
Solution Architect, K2