Tag: Dynamics 365

  • A few notes on the Timeline: model-driven Power Apps form tweaks

    A few notes on the Timeline: model-driven Power Apps form tweaks

    In the default form components arrangement for tables in model-driven Power Apps or Dynamics 365 CE apps, the Timeline is usually front and center. This makes perfecet sense. Scenarios that revolve around accounts and contacts typically include the need to show activities and notes related to these records.

    Compared to how things used to be just a few years ago, meaning mostly hard coded, we now have an amazing amount of configuration options for the Timeline control. This is reflected in the MS Learn article “set up the Timeline control” which has an estimated reading time of 32 minutes! And that’s just the “how” part of official documentation, not the “why” that you’ll learn as the settings are applied in real world business application context.

    This blog post is my attempt to highlight the recent, most useful features that the modern Timeline form component enables for improving the user experience of your model-driven apps.

    Rolling up the notes

    The one huge feature that 2022 Release Wave 2 has delivered for model-driven Power Apps has been buried deep into the release plan. It seems almost like an intentional “let’s hope no one notices this” move since the feature is listed under Dynamics 365 Customer Service and called “Improve agent productivity with timeline enhancements”:

    Notes that work like other activities and roll up on contact, account, and opportunity form timelines.

    Woohoo! We’ve been waiting for this feature close to 2 decades already! If you haven’t experienced the Dynamics CRM era, then the significance of the rollup capability in the platform may not be immediately obvious. I won’t go deep into it now, instead I’ll dig up an illustration that I created 11 years ago for a blog post I wrote about the native activities associated views vs. form subgrids:

    Unlike other standard or custom tables in Dataverse, activities have one superpower: they can be shown not just from the directly related child records but also rolled up from deeper in the hierarchy across many different record types (tables, entities, you pick the terminology). This means that in the account Timeline you’re able to see tasks, phone calls, emails, appointments that are set regarding a child record, like an opportunity where that account is the potential customer.

    While the same form component has been used to display both activities and notes (and activity feed posts, in case someone’s still using them), the rollup functionality has been exclusive to activity data. This has lead to a classic CRM functional gap where a note record added onto a lead will not be carried over once the lead is qualified and becomes an account/contact/opportunity. Notes have been “sticky” in the sense that you slap them on a specific record and that’s where they’ll forever stay.

    Well not anymore! While the official docs on Learn are still pending to be updated to describe the feature in more detail, the “Notes rollup type” setting already appears on the Timeline component properties:

    Setting this to “Extended” for the Timeline control on the account means that we’ll now see notes that have been added to the originating lead, any of the account’s contacts or opportunities. Here’s an example where there are zero notes on the account itself, yet we can see 3 notes on the Timeline:

    All the notes from these child records appear just as like they were the traditional notes on the account record itself. In fact, you can simply click the pen icon to start editing a note on the account form Timeline, even if it has originally been added via a different record:

    This can be a bit confusing for the user, since there’s no visual indication on the Timeline card on which exactly is the original hosting record of that note. Which probably is due to the Dataverse data model that doesn’t treat the notes (annotation) table as something where the users could freely set the Regarding record information. With such a non-standard implementation it might be tricky even for the team developing the Timeline to surface this information in the UI.

    You need to keep in mind that this notes rollup isn’t applicable to custom tables, nor across all system tables either. Just like the activity rollup, this is feature of showing relational data from beyond a single relationship “hop” is not a generic platform capability in Dataverse. It works in these basic CRM style scenarios using predefined record types. And when it does, it can be hugely beneficial to end users.

    Alternative Timelines

    There are more goodies in 2022 Release Wave 2 under the release item “Try enhancements to timeline maker experience”. One of them is the support for having multiple Timelines on a single form. This means you could add a dedicated “Notes” tab on the account form and configure it to include only notes data, not activities or posts. The benefit from this would be to tailor the display settings in the main Timeline differently than in the Timeline dedicated for notes only.

    In the example above I’ve ticked the box “expand first component to full tab” in the tab settings. This removes all the whitespace and labels around the Timeline, giving it maximum space. Yeah, it’s not the prettiest tab in the world when applying this technique to the Timeline. Yet from a purely functional perspective it’s an option worth trying out.

    One common question from customers who want to customize their CRM system’s terminology has been “can we rename the Timeline to something else”? The answer is still: no. However, now that you can have multiple Timelines on a form, the workaround you can apply is this: 1) under Timeline – Properties – Advanced – Additional Settings, check the box “Hide Timeline label”, 2) set your form column label to show the string you want.

    Now the custom text will appear and the place where it used to read “Timeline” is blank:

    Native controls like search or options menu will still use the timeline terminology, though. It’s always worth asking a few times whether it’s absolutely necessary to try and change such native features of a SaaS product like Dynamics 365. (The argument “because we had it like that in our previous system” is always the wrong answer.)

    Timeline forms and actions

    An area of the Timeline that has really exploded in terms of configuration options is the forms used for interacting with records shown on or created from the Timeline. Let’s look at one example of how the default functionality for tasks could be optimized on the opportunity form Timeline. Without any customizations, it looks like this:

    Looking at the standard Timeline, there’s a bunch of command buttons available for every activity. Problem 1 is: it’s not easy to spot which icon opens the task’s detail form (at least I’ve never learned to immediately pick the right one). Problem 2: when we open the task, it takes us to a whole different web page, thus we lose the context of the original business record (opportunity).

    The Timeline allows us to fix both these problems by changing the settings just a bit. By going to Record settings – Activities and clicking on Task, we get a flyout pane with options specific to that activity type in this specific Timeline instance. Problem 1 can be fixed by disabling rarely needed actions like “Assign”, “Add to queue” (who uses queues anyway?) and “Delete” (deletion of data in CRM does not need to be easy!).

    Problem 2 is resolved by changing the “Open Task using” setting to “Main form dialog”. What does that do exactly? It gives you a modal window on top of the current record, which is a much less jarring experience than bouncing between full forms. Closing it from the X icon will allow you to keep working on the opportunity without forcing any page refresh.

    Want to learn about the Power Apps main form dialog? Read my earlier blog post on how to leverage MFDs for making it easier to work with relational data.

    Timeline configuration sprawl

    The one caveat of all this configurability that we’ve received via the modern Timeline control is that we now have a huge number of different settings we must remember to change. Performing any of the above mentioned changes is relatively easy as an isolated task, but we need to do it for all the tables and their forms where the Timeline control is used. There is no global system setting or “apply to all” option to help us. With any larger business application you’ll quickly need your own Excel sheet just to keep track of all the N settings and N forms that you must manually harmonize.

    Where things can potentially get really laborious is modifications to the card forms used for displaying activity and note data on the Timeline. If the standard date fields aren’t what we want to show, for example (created on vs. modified on vs. due date etc.), there’s a way to change most of them. However, as you can quickly see after browsing through the documentation, the card form editor from the CRM 2011 era and the modern Timeline control have nothing in common when it comes to rendering the visible UI:

    If you want to include some custom columns from your activity tables into the Timeline cards, the good news is that it’s supported. The bad news is, you’ll likely need to keep the documentation on one screen as a reference, the form editor one the second screen, and the card form legacy editor on the third one. Good luck doing these tweaks from only your laptop screen while working away from the office!

    These configuration tasks start to quickly add up. Let’s say we need to change one date field on the task card and configure its display options and label options. Perhaps our application has 20 tables where the Timeline is used for showing this activity type. Maybe we’ve also created role based forms and targeted them via different model-driven app modules, like “Sales” and “Admin”. That single requirement could mean updating the settings on maybe 30 different forms. With all the loading, saving and navigating in the Maker portal – it could easily take more than an hour to complete.

    Now, let’s say that in a Dynamics 365 project you’ve been assigned the responsibility to take care of all the details for activity and notes management features on every Timeline in the system. Sorting, filtering, control display options, supported activity types, form types per activity, actions per activity… Planning, configuring and validating all these changes will quickly consume many days, even in an SMB level CRM system. And because it’s so easy to miss a few clicks in performing this repetitive work over & over again, you’ll also need to reserve time for fixing the things that were missed.

    Achieving a consistent user experience requires plenty of work – this simple truth has not changed from the early days of Dynamics CRM projects. As Microsoft invests money in modernizing their client controls and introducing more no-code configuration options, the customers must also do their part in ensuring the changes and new possibilities in the evergreen cloud platform are taken into use in a controlled manner. Striking a balance between what can be customized and what should be customized – this remains the eternal question.

  • How to control the lookup view columns for a customer field

    How to control the lookup view columns for a customer field

    It’s the little things in a user interface that can drive me nuts – at least when I keep running into them repeatedly.

    One such detail in Dynamics 365 CE apps / Model-driven Power Apps is the scenario where you’re creating a new contact record and linking it to a parent account. Filling in the lookup field gives a nice little preview of the matching records. Like this:

    Now, look at the first two results: aren’t they actually saying the same thing, but in different order?

    At least I have a hard time distinquishing which record I should pick when I want to link this new contact under the account Forward Forever Oy. So, why is row nr. 1 the right answer and row nr. 2 the absolutely wrong choice to pick here?

    The underlying dilemma is that this lookup field is a customer field (column). It can reference either an account or a contact record (row). It’s one of those non-simple types of lookups that Dataverse has contained since forever, thanks to it being originally designed for the purpose of being a CRM database.

    Now, in a B2B CRM scenario you would almost never want anyone to link child contacts under other contacts. Unfortunately, even after 2 decades of shipping a mighty fine CRM product, Microsoft still hasn’t considered it worthwhile to offer customer organizations a configuration option to force contacts to be linked only to parent accounts.

    Being an extensible enterprise business application platform, you can of course get a developer to write some JavaScript to change the default behaviour of the lookups that bother you. As for me personally, I always like to explore if there are no-code ways that would allow me to achieve a similar result without adding even a few lines of script into the environment for the future me / someone else to manage.

    In this case what I want to do is this: don’t show the Primary Contact field in the lookup view of an account. As we’ve seen, it can be highly confusing, since this very same contact itself can also show up in the list of results. For a contact, it’s very logical that the parent account should be shown in the lookup preview results. (and used as a search field). For accounts, the Primary Contact value would likely be irrelevant in 99% cases when looking up records.

    To give Microsoft some credit on the UX front, they have invested in developing a new Advanced Lookup feature that gives the end-users more filtering options to find the right record to link to. Opening up this modal dialog also gives us a way to examine why the previews behave the way they do.

    Initially this lead me to scratch my bald head even more. Based on what the documentation says about lookup field behavior, I shouldn’t see the Primary Contact field value in the dropdown preview of the lookup, as there are columns like Account Number before it in the view.

    “For system lookups that allow for multiple table types, the first two columns of the table lookup view are shown.”

    It turns out this is not true anymore. To demonsrate the real behavior, l added an Account Number “111” for Forward Forever Oy account record. This is what happens with the lookup preview:

    Ah. The current lookup in the modern Unified Interface is so darn clever that it shows the first non-empty column from the lookup view.

    The solution is simple then. You can just add columns at the beginning of the table’s lookup view that are always going to have data. These will then push further left the lookup fields that aren’t relevant in the dropdown preview. This means you can still keep the other fields visible by default when opening the Advanced Lookup dialog. Even that confusing Primary Contact field can be left there, just in case we need it.

  • Is Dynamics 365 data now “free” in Microsoft Teams?

    Is Dynamics 365 data now “free” in Microsoft Teams?

    In the opening keynote for Microsoft’s partner conference Inspire 2021, Satya Nadella stated the following:

    Today, I’m excited to share that Microsoft Teams customers will receive access to Dynamics 365 data within Teams at no extra cost.

    Wow! That’s a major licensing related announcement – with not too much details to go with it yet. The feature is also covered in the summary blog post “From collaborative apps in Microsoft Teams to Cloud PC—here’s what’s new in Microsoft 365 at Inspire.”

    Together, Dynamics 365 and Teams offer powerful new ways for everyone across an organization to seamlessly exchange and capture ideas right in the flow of work. Today we announced a new collaborative app that brings together the best of Dynamics 365 and Teams. We’re also eliminating the licensing tax that has historically held organizations back from this kind of integration, making these experiences available within Teams to any user, at no additional cost. No other technology vendor offers this kind of integration and accessibility across the organization without the need to pay for multiple underlying software licenses.

    Clearly this is quite a big factor for Microsoft when competing against the likes of Salesforce. The features are therefore unlikely to be merely on a “check the box” level that the competition could undermine with their counter arguments. Obviously Teams is the platform that Microsoft is betting pretty much everything on, so a deeper integration with Dynamics 365 is hardly a surprise.

    The brand new 2021 Release Wave 2 release plans for Dynamics 365 that came out on the same day have multiple references to new Teams integrated features:

    …And I won’t even go to things like Mixed Reality. You get the idea by now: if a Microsoft product doesn’t have any Teams integration today then it might as well be nearing the end of its natural lifecycle.

    Collaborative apps in practice

    Today we’re limited to the product marketing materials published by MS, but let’s try and make the most of it in our feature analysis and licensing speculation. Starting from the Dynamics 365 + Microsoft Teams landing page, we can watch a promotional video that includes some UI footage of the collaboration scenario. To start off, sharing Dynamics 365 records into a Teams channel is obviously a key to unlocking the collaborative scenarios, so a new experience for attaching records like opportunities or accounts will be provided:

    From the resulting Adaptive Card we see that the user is offered not just an option to “open in Dynamics 365 for Sales” but also to “edit in Teams”:

    We don’t get to go very deep in this video, so let’s switch over to the Inspire session called “The Cloud Built for a New World of Work” where Alysa Taylor introduces the Teams + Dynamics 365 story to the MS partner audience. The story has a similar “attach a Dynamics 365 record to a channel message” scenario. Here the button says “View details” rather than “Edit in Teams” but since these videos probably need to created well in advance, we can assume these two feature to be the same.

    Here we then get to see the actual details/editing experience. An opportunity record opens in a modal dialog within the Teams client’s channel context (no tabs) and presents a simplified form with key fields in the Summary tab. All the fields appear locked here, but the dialog has a Save button, so presumably the security roles from Dynamics 365 will be reflected here on the UI level already.

    Next we see the Activity tab, which is again a simplified version of the full Timeline view found on a Model-driven Power Apps form (meaning Dynamics 365 for Sales et al.).

    The user in question has the ability to add a new note for the record, which will get stored within Dataverse rather than just the Teams thread. Tasks also appear to be an option presented in this modal window.

    What happens next in Alysa’s demo scenario is not entirely clear from a licensing perspective. The marketing executive performing the actions in this demo has also the access to any Dynamics 365 views pinned as Teams tabs. Also the full forms are accessible, including Command Bar buttons allowing record creation and editing.

    Whether these rights have been inherited merely from the Teams collaboration scenario depicted in the demo is not disclosed here. The user might as well be a fully licensed Dynamics 365 user and MS just wants to show off the seamless experience of working with CRM data within the Teams client.

    In addition to the licensing story, there’s also the access management angle that isn’t revealed in detail yet. Obviously not any person within your tenant will just automatically have access to records inside a Dataverse environment. Therefore the process of sharing the record with non-users of Dynamics 365 when attaching a record into a Teams message and mentioning users within a message is likely to have a lot of interesting new functionality for any Dynamics 365 admin or solution architect to consider.

    Contextual presentation of business application data inside Teams is not limited only to channel messages or chat. Meetings can also be associated with Dynamics 365 records in the future, thus opening up further possibilities to make use of this new “free” access to Dynamics data for any Teams user.

    Licensing implications in practice

    Let’s think about the broader context of this licensing announcement. The big picture of what Microsoft wants to draw with their Collaborative Apps story is a stack like this:

    When I’ve drawn a similar diagram for customers I’ve labelled the top layer as “OS” rather than UX. Understandably MS may not want to rock the boat that much yet, keeping in mind that they also have concrete operating system announcements like Windows 365 and Windows 11 to pitch to the partner audience. Still, the logical layering is the same and that’s what matters. Teams is how MS can regain its relevance inside the users’ devices that are today running Android, iOS or even Linux. Therefore making things not just easy to use but “free” to use within Teams makes perfect sense.

    Dataverse for Teams has considerably lowered the barrier for organization wide usage of the low-code apps built on Power Platform tools, with its bundled rights to basic Dataverse features for no additional fee if used within Teams. To me, this Inspire announcement of unlocking access to Dynamics 365 data “without the licensing tax” (Microsoft’s words, not mine) is a logical continuation on this same path. You won’t get full features for free, but the upsell potential with the massive audience of Teams users globally is what makes this bargain lucrative for MS product teams.

    From a Dynamics 365 perspective, there are similarities here to the earlier Team Member licensing model that MS launched back when their CRM+ERP vision of a 365 cloud saw the light of day exactly 5 years ago. It was a $10 license that helped to close deals but ended up being a big headache for MS in practive. The launch of Power Apps as the official platform SKU eventually made the TM license pretty much redundant.

    Whereas Power Apps is the story for custom low-code apps, it isn’t exactly meant to be used for Dynamics 365 scenarios (if you ask MS). Yet the licensing terms currently do make it an interesting option for unlocking light use of Dynamics 365 data. Especially given the coming 50% price drop for Power Apps licenses, the fact that you can use these in a Dynamics 365 environment would certainly make them ever more interesting for customers to evaluate as an option.

    Depending on how far the read rights on Dynamics 365 data for Microsoft Teams users will actually go, this latest change might be able to deflect some of these Power Apps “misuse” threats. It’s a fact that not such a big share of a typical organization’s employees will need to work daily with updating CRM data, yet from a reporting and data referencing perspective it’s pretty darn valuable if you have access to the records within the customer data master system.

    If there’s one thing I hear from pretty much every customer (and many partners), it’s that they think Microsoft Business Applications licensing is complex. I’m hoping that whatever this new Dynamics 365 + Teams licensing announcement turns out to be in practice, it wouldn’t create more seemingly arbitrary lines for what data can be used in which context for what license. I’ll need to revisit this topic once we have the full story on today’s Inspire 2021 announcement, to see which way the licensing model is turning this time.

    Update 2021-07-22

    From the comments section in the original Dynamics 365 product team blog post for this announcement, we can gather the following details around Dynamics 365 privileges that will be embedded within Microsoft Teams:

    • Scope: “We are initially launching Teams experiences for Dynamics 365 Sales and Dynamics 365 Customer Service but working on the possibilities of additional experiences across the Dynamics 365 portfolio.” So, further CE scenarios like Field Service and the ERP side for HR, FinOps, BC will be covered later.
    • Schedule: “These experiences will start to become available as part of our Dynamics 365 Wave 2 release which begins in October.” As expected, 2021 Wave 2 release plan is where you should go and check the current target dates for public preview / early access / general availability dates for these Teams related features.
    • Technical implementation: “We are entitling all paid Microsoft Teams users with ‘Team Members’ level access to Dynamics 365 allowing Teams users to read Dynamics 365 data and action upon designated scenarios. These new connected experiences between Dynamics 365 and Teams will make it easier for Teams users to access Dynamics 365 records but only from within Microsoft Teams.” Quite similar then to the earlier technical enforcement of Team Member licensing on app module level. Except that direct browser access outside of Teams clients will be restricted, so presumably the current Dynamics 365 Team Member license SKU will still remain in place at $8 per user per month.

  • Why Power Platform licensing is complex, part 2: multiplexing

    Why Power Platform licensing is complex, part 2: multiplexing

    In my previous post in this series on Power Platform’s sources of licensing complexity I explored the internal product structure at Microsoft and why changes in this commercial packaging of different technnologies may lead to confusing messages. Now it’s time to move further into the actual usage of these products and discuss how the depth of integration that you – the customer – build between the systems can affect the licensing requirements.

    Multiplexing is a term that isn’t necessarily familiar to anyone who hasn’t worked with either selling or buying enterprise software. This is the core definition that Microsoft is using in all of its documentation:

    “Multiplexing refers to the use of hardware or software that a customer uses to pool connections, reroute information, or reduce the number of devices or users that directly access or use the [X] service. Multiplexing does NOT reduce the number of subscription licenses of any type required to access the [X] service. Any user or device that accesses the [X] service – whether directly or indirectly – must be properly licensed.”

    There’s has never been that much information made publicly available by Microsoft on how the multiplexing topic – probably because it’s a hairy beast that no one would want to let out of the closet. But the beast is there nonetheless, an if you’re not careful in how you design the technical solution architecture and the software products included in it, that beast may jump at you when you’re not ready and mess up all your plans.

    The price of data entry

    Let’s look at a simple example first, one that is a very common requirement from customers. Imagine there are employees out there in the field that work with customers and may hear about their future plans or identify current needs for which the organization could offer services or products to. They’re not in a sales role themselves but would love to pass on the info to the actual salespersons who manage these customer accounts. The lead entity in Dynamics 365 would be the obvious place to record such information, but this would require the employee in question to have the necessary license for creating new records into it. So, even if these field employees would be equipped with a Team Member licenses or even the Field Serivce Enterprise app, this is not an operation that they’re allowed to perform, according to the Dynamics 365 licensing guide.

    “But wait, we don’t need to actually have the users themselves interact with the lead record in the Dynamics 365 application in order to achieve this!” you might think, if you’d be viewing it purely as a functional requirement. Yes, technically we could create a custom entity like “Incoming Sales Information” and store its records into CDS, then run a workflow or Power Automate to copy that data into the lead entity’s corresponding fields automatically. Commercially speaking this would not reduce the need for licensing the users who are initiating the process. You’ve just designed a software solution that does the multiplexing, but the end result is still exactly the same, thus the actual problem remains. First of all, you are automating the data entry into CDS, and second, you are indirectly using an entity that is not covered by all Dynamics 365 license types (funnily enough, it IS covered by Power Apps, but that’s another story).

    The important thing to remember about multiplexing is that it essentially only concerns the internal users of an organization (this includes employees, contractors, vendors, agents). You can have a “Contact Us” web form on a public site with the same fields as you have on your Dynamics 365 lead entity, then have that form call a webhook and use Power Automate to write the submitted form’s data as a new lead record. Everyone else in the world can use that, but if any of your internal users would go onto this public web form and use it for data entry into Dynamics 365, they would have to have a user license that grants them sufficient privileges. (How would you in practice stop employees from using a web form that requires no user identification? Good question.)

    Multiplexing within Dynamics 365

    As Microsoft is making their Dynamics 365 apps more & more tightly integrated, we’re encountering scenarios where the traditional boundaries between the CRM product and the ERP product get very much blurred. The GA launch of the Dual-write feature means that Microsoft now provides an out-of-the-box way for entities common to both sides to have near real-time two-way synchronization. For example, you might modify the field of an account record in CRM (or “model-driven apps in Dynamics 365”) and this will right away be reflected on the customer record in ERP (“Dynamics 365 for Finance & Operations apps”). From an end user perspective, there is only a single system to work with. Awesome!

    How does this align with Dynamics 365 product licensing then? As of today, I haven’t seen Microsoft make any announcements on the multiplexing definition being relaxed as a result of their Dual-write feature. So, if a user creates or edits any record in one of the entities on the CRM side that gets almost instantaneously replicated over on the ERP side, they are using two systems at once and should be licensed for them both. All of a sudden, that $95 Sales Enterprise app license isn’t enough and you’d need something bigger. With Dynamics 365 Finance or SCM App starting at $180 as the base licenses, then adding a bit more of attach licenses to cover the Sales App, you’d be looking at a doubling in costs for the users who are stil working in the one and the same user interface but leveraging functionality that now connects seamlessly with another Dynamics 365 system behind the scenes.

    Setting the licensing dilemma aside for a moment, there are scenarios with very clear benefits from having the CRM and ERP side work together hand in hand, where the cost from the current way of working may well be higher. For example, being able to transiently call the product data and pricing engine of the ERP system to produce the details needed for quoting a customer on the CRM side can potentially remove a lot of context switching from the end users as well as reduce the amount of custom code you need to build and maintain. In the far end of the spectrum, brand new product offerings like Project Operations can emerge from this unified platform that can now replace the prior mix of apps like PSA, Finance and MS Project. They don’t actually need to suffer from the multiplexing “tax”, since all Microsoft needs to do is design a targeted commercial model for offering this functionality.

    Power Multiplexing

    The concept of charging for access to data that has originated from of flowing to another system has been invented at a time when software was deployed to dedicated servers and data had clear boundaries of the system in which it resided. Back when the old Dynamics CRM era rules on multiplexing were defined, I bet most of the Microsoft people working with the product surely couldn’t have imagined that the data used in managing the business processes for sales, marketing or service might one day also be stored elsewhere than the application’s own SQL database. We are living in very different times today.

    With Power Platform the whole purpose of these new cloud native tools is to combine data sources and manipulate their contents by sometimes bypassing the original application altogether – at least on an UI level, when talking to an API via Connectors. It’s effectively a whole platform designed to multiplex all the things!

    In today’s world many of us no longer perceive the value of a software application to be delivered only via the user direclty interacting with the user inteface. Especially in the context of business processes, we’re more concerned with the outcomes from the digital orchestration of data, business logic, and users – both the internal ones and the actual end customer. Despite of this, on commercial level we still need to pay attention to the number of individual systems involved in a process that’s triggered by the user. In a recent interview, Charles Lamanna from Microsoft stated that you should be able to instinctively know when you’re crossing the line to multiplexing.

    “At its core, if you’re using or doing something to circumvent a user license and you’ll know you’re doing it because it will feel unnatural because the system’s not built to behave that way, that’s multiplexing and not allowed. Everything else, the intent is to have it be allowed.”

    The question of whether data is replicated between systems in real-time or in scheduled batches used to be a reasonable criteria for evaluating whether something was multiplexing or not. Today when any citizen developer can build a Flow that pushes data across systems almost immediately, or construct a custom app that pulls & pushes data via Connectors and presents it in potentially a much better UI than the originating enterprise systems, the lines have blurred down to a level where they become almost useless in trying to navigate the licensing maze. The systems are built one way but the business users are now armed with low-code tools that they’re going to use to try and get the systems to work their way. Governance of remaining compliant in this new world is certainly going to become more and more challenging for organizations as a result.

    The business of software

    We can’t escape the fact that while the code based PaaS of Azure is mainly charged by API and resource consumption, the low-code application platform (aPaaS) of Microsof Power Platform is founded on the per-user licensing model. The pricing dynamics of a platform are such that the more workloads you can move away from individual applications (be it legacy on-prem systems or SaaS point solutions) onto a common app platform with a Per User licensing model, the more cost savings you can achieve. However, if you were to try and automate the processes up to a level where the number of licensed employees needed in total is reducing as a result, then that’s actually not a favourable result to the platform provider financially. Hence the strong stance on requiring every user involved in the business process someway to have a license.

    It’s not only Microsoft that has this complexity built into its product licensing. SAP is known for chasing the Indirect Access of data that has touched their system. Oracle talks about Named User Plus. It is one of the core principles through which enterprise software vendors have traditionally defined the rules under which their IPR can be made to be a part of the digital processes of an organization. What this means is that any modern platform which strives to connect these type of systems as data sources or targets in the new application UIs or automations built as low-code solutions is subject to the same licensing impact. Creating new avenues to use the data and business logic of these third party systems may well incur new costs as a result of extended usage.

    It’s tempting to argue that systems like CRM and ERP should not be able to place down a commercial lock on access to core information like the organization’s customers or the pricing of the products they sell. We should still keep in mind that often there would be no such single source of valid records that reflect the business reality in a digital form, had there not been the design and implementation of an enterprise system that can govern all the various processes around it. The API to any system may look deceptively simple, precisely because it abstracts the complexity behind it. Managing that data and process complexity is one of the key reasons why these systems exist, and why companies are usually willing to pay their licensing fees in exchange for the value they get. Unfortunately this tends to push down the complexity to those scenarios where power users and citizen developers might want to build new, creative solutions to that tap into the data managed in these systems.

    Other parts in this article series can be found here:

    Read more about Microsoft Business Applications licensing

    There are plenty of articles in my blog for you to browse in this category: Licensing.

  • Why Power Platform licensing is complex, part 1: products

    Why Power Platform licensing is complex, part 1: products

    It’s hard to avoid this question whenever people discuss the business scenarios for Microsoft Power Platform. The tools and experiences for creating apps are getting more & more streamlined, yet it feels like the complexity of rules on what licenses are needed for each specific scenario just keeps growing. With great powers for designing creative new solutions comes also great responsibility for understanding the commercial factors of implementing them. This means that the solution architecture needs to take the licensing aspects into consideration, even if many technical people aren’t very comfortable with the topic.

    The main factors I consider to be sources of complexity in the licensing discussion around Power Platform, Dynamics 365 and Office 365 are these:

    • Protection of intellectual property as well as development budgets across Microsoft product portfolio
    • The old world of apps as data silos & the concept of multiplexing
    • Light use scenarios for information workers vs. “Real Business Applications”
    • The role of CDS (now: Dataverse) as the platform, not just a data source/target

    I’ll cover each of these dimensions in a separate blog post, to avoid building up too many stress factors into a single post and scaring away people. None of these obstacles are insurmountable, instead I believe raising awareness of them will make it easier for everyone to answer the question of “why” and move on to the “how” part of planning the actual solutions and business cases for leveraging the full potential that lies within the Power Platform.

    Let’s begin from the complexity source nr. 1: Microsoft’s product portfolio structure.

    Protecting the products & investments

    XRM, the predecessor of CDS and partially also Power Apps, was never sold as a platform. The business model was built around selling a suite of CRM applications, which you could then customize and extend to cover business processes not originally within the scope of the product shipped by Microsoft. This meant that a lot of money was left on the table because customers that weren’t looking for a new CRM system didn’t really have much reason to consider XRM as a platform their other business apps needs. From the perspective of Dynamics CRM as a product, there wasn’t much threat of competing apps within the MS ecosystem, but unfortunately it also meant that investments into the core platform weren’t likely to grow very fast if the Dynamics offering was to remain outside the mainstream product portfolio of Microsoft.

    Now that Power Apps is offered specifically as a platform where your citizen developers, pro developers and ISVs alike can all come and build their apps, the upside to everyone is that the common infrastructure for data and application management is evolving crazy fast. The new problem that arises from this is the battle of the internal buckets where money should be flowing in. Unless all customers unanimously purchase both the platform (Power Apps premium licenses) and the first party applications (Dynamics 365 Enterprise Apps), someone could easily consider their bucket to have a leak caused by these new buckets. Cannibalization of revenue is a rational fear to have when there is overlap between product offerings within the organization.

    The way how Power Platform has been positioned as the extensibility layer for both Office 365 and Dynamics 365 is undoubtedly one of its key strenghts from the business perspective on Microsoft level. PP is everywhere because so many customers already have it, underneath their existing information worker tools and CRM systems, whereas low-code competitors like OutSystems or Appian will need to find a way to get their foot in the door somehow. However, this mechanism of having “seeded” Power Apps and Power Automate features inside other products just delays the commercial discussion to a later point in time. “Why do we need to buy these new premium plans if we already have the Office/Dynamics features?”

    Before Power Apps merged with XRM, what we know call “Canvas apps” were introduced to the markets as a technology that could easily work with the ubiquitous Office 365 services as data sources. The same with Microsoft Flow. I believe this really was more of a marketing positioning strategy rather than a deep architectural commitment from MS, since many experiences weren’t really that seamless once you got down to working with SharePoint, for example. Still, this approach made it possible for the community of citizen developers to start gathering around Power Apps, when power users all over the world discovered how they could go beyond Office 365 standard capabilities with these no-code tools – while still remaining within the existing corporate licensing of Office tools offered by IT.

    Had Power Apps and Power Automate (Flow) remained there as just tools in the Office waffle that come with the subscription, we would have likely seen only a tiny fraction of the features that now are rolling out into Power Platform. After all, if you’re not paying any additional licensing fees for the products, then are they really products in themselves at all? “Freebies” like Sway or Bookings that we’ve seen appear in the cloud service nowadays known as Microsoft 365 are examples of what you could expect from technology that isn’t large enough to warrant a SKU of its own in the MS product portfolio. Not a very lucrative position for any ambitious app team in the long run.

    There’s this dilemma that if you raise the barrier of entry too high for a product, the adoption curve is going to take a hit and you’ll miss out on the viral effect of “free” software. At the same time, if you can’t directly tie the usage rate into a visible stream of new money, it’s difficult to collect funding for product development investments beyond the initial hype and excitement of launching something new & cool. In the enterprise software business you can’t even monetize the users by exploiting their data and eyeballs for selling ads, because privacy and confidentiality tend to be bigger factors here than in the consumer market (where unfortunately everything is moving to “pay with your data” business model). Just look at the example of Google, who did build up their own App Maker product into the G Suite, then saw too low usage numbers for it and ended up killing the service and customer apps built on top of it. Now they’ve acquired the low-code application development platform provider AppSheet and are trying to gain a foothold in this growing market.

    While this explains why Microsoft couldn’t just keep the doors open for ever more advanced Power Apps development on top of exisiting Office 365 subscriptions, there’s also the other direction to consider. At some point these apps become so advanced that they’ll start to challenge the Dynamics 365 applications formerly called “CRM” or “Customer Engagement”. These commercial apps from MS are nowadays just called “model-driven apps in Dynamics 365”, which further underlines the role of Power Apps Model-driven Apps as the infrastructure that makes these apps tick. They are preconfigured instances of applications on top of CDS, but they are not the same as the platform itself. Therefore, starting from October 2019, buying a Dynamics 365 Enterprise App no longer gives you an Access All Areas pass to using apps in just any vanilla CDS environment that hosts a custom app for process X. You’ll need to be wearing the lanyard that specifically says “Power Apps” if there’s not Dynamics 365 applications installed in the environment you want to enter.

    In short, buying the Dynamics 365 product doesn’t give you the Power Apps product, just a “seeded plan” to work within the boundaries defined by the application context. The same holds true the other way around: buying a Power Apps Per User license doesn’t grant you the rights to use everything that’s running on the platform within the tenant. Similar to how ISVs (independent software vendors) would charge you a fee to use their application features via their own licensing mechanism, Microsoft is setting up mechansims that will control who can access which App Module.

    Regardless of how that might sound like initially, I believe it could actually be a good thing in the long run. The reason being that the way how Microsoft has previously attempted to limit access to the schema and data of CDS by drawing lines on restricted entities available only to Dynamics 365 license holders (aside from data read operations) isn’t really going to be a sustainable model. In his third chat with MVP Steve Mordue, the Corporate Vice President of what MS internally refers to “Citizen Application Platform”, Charles Lamanna, has stated that an alternative licensing model is being prepared right now:

    “So there is something in the works that we’re working towards and I would say at a high level, restricted entities as a concept are largely antithetical to our common data service, common data model and vision. And they were just like the least bad option to go make sure that we appropriately can license Dynamics apps. So we are working feverously on many proposals to get out of that restricted entity business, but still have a model which more appropriately captures and protects the value of the Dynamics apps without introducing restricted entities.”

    I’ll dive deeper into the whole Common Data Model (CDM) discussion in the next part of this blog series. In general, what I believe to have been a big barrier for the licensing options available to MS work with is the amount of effort needed in making the application/platform separation initiative a technical reality. It has surely been also holding back many teams in terms of how a specific Dynamics 365 App like Sales can deliver features that differentiate it from the sea of business applications that are to be built on Power Platform, by citizens, by customer development teams, by ISVs. A level playing field is needed for the future solution ecosystem to bloom, yet in the short term it requires work behind the scenes that doesn’t surface as application features directly.

    The fact that such investments and also compromises have been made during the past couple of years is a clear signal of how Microsoft believes the demand for its different services will evolve & how they will be competitive because of their dedicated low-code application platform product offering. Customers will continue collaborate via Office 365 productivity tools, likewise they’ll keep on adopting readymade business applications from the Dynamics 365 family of Apps for scenarios like omnichannel customer service. There in between lies the opportunity for 450 million new low-code apps to be built within the next 5 years, as Charles Lamanna states in the recent CNBC article “Next frontier in Microsoft, Google, Amazon cloud battle is over a world without code”.

    It is not a market that the Office products could easily rise to cover, nor is this bottom-up innovation a natural fit for the Dynamics way of delivering top-down enterprise systems. A dedicated product offering is needed here, which is why the Power Platform exists. Since Microsoft has chosen not to follow the “buy” path of Salesforce, Google and other competitors, but has rather adopted a “build” strategy to create their low-code application development platform from in-house technology, many of the elements in this platform have already been used somewhere else, and as a result also commercially licensed for scenarios that predate this new low-code era. This is the reason we’ve seen so frequent changes in the licensing model across Power Apps and Dynamics 365. It is a source of licensing complexity that is difficult to avoid when the different apps don’t live in their dedicated silos but rather share so much of the common platform capabilities.

    Microsoft talks a lot about having three clouds: Office 365, Dynamics 365 and Azure. Where Power Platform fits in is right smack in the middle, and with plenty of overlap in relation to the existing clouds. It’s a new “aPaaS” layer added between the SaaS apps of Office & Dynamics and PaaS/IaaS offered by Azure. As a result, the relative position of existing products needed to shift a bit, which created a before/after dimension into both how Microsoft envisions each cloud to be used and as well as how they commercially offer the services to be licensed.

    Other parts in this article series can be found here:

    Read more about Microsoft Business Applications licensing

    There are plenty of articles in my blog for you to browse in this category: Licensing.

  • Time to go Forward with 2020 Wave 1 (webinar)

    Time to go Forward with 2020 Wave 1 (webinar)

    Our company, Forward Forever, is 1 month old today!🥳 It’s truly been exciting times starting a company that goes all-in on Microsoft Power Platform. And that’s even without considering all the surprise elements that COVID-19 is bringing into the equation right now…

    The start of April also happens to be the official launch moment for Microsoft Business Applications 2020 Release Wave 1. Since MS will host their own Virtual Launch Event on April 2nd, we though this is a good moment to also set up the first ever FF webinar. So, without further introducions, here it is:

    Please join me, MVP Timo Pertilä, Jouko Nyholm and Lasse Teeriaho in our 2020 Wave 1 Release Highlights webinar on Monday, April 6th, 11:00 AM (Central European Time). We’ll be talking about the coolest Power Apps, Power Automate, Power BI and Dynamics 365 features in this April-September release wave, as well as analyzing the many demos that MS will undoubtedly show in their own event.

    Just fill this Forms Pro form, which will create a record in our CDS, then trigger Power Automate to send you an ICS calendar invite file hosted on my OneDrive. The link for the Teams Live Event will go live on Monday, if everything works according to plan. Yes, obviously we need to be dogfooding these tools in everything we do😊

    Register for our webinar!

    First 50 people get in for free, the rest will have to… Oh, alright then – you’re all welcome to join our event, no strings attached.

  • Why we’re betting on the Power Platform

    Why we’re betting on the Power Platform

    This Monday we publicly launched our new company: Forward Forever.

    There are many reasons for why we as a team of experienced professionals in Microsoft technologies wanted to build a company of our own, which I’ll talk about later once we are actually fully operational and have shown how we operate. Right now, though, I wanted to explain why we’ve decided to go all in with Microsoft Power Platform. It boils down to the interplay of three elements: data, apps, processes.

    Data

    James Phillips, President of Business Applications at Microsoft, said in a recent interview (behind a paywall):

    “These applications, Dynamics 365 and the Power Platform that sits beneath are designed to be data first, designed to allow you to collect data from across the organization, from all of your various systems and to analyze that, to deeply understand it and to predict. And that’s what’s leading to I think the success that we’re seeing in the market.”

    The idea of data-first design as opposed to app-first is very much in line with what we’ve seen happening in the Dynamics 365 product portfolio during the past 1-2 years. Microsoft has placed big emphasis on making the traditional systems of record more intelligent by building various Insights products to broaden the Business Applications stack as well as bringing Insights into the familiar sales, service and marketing apps. Since there is no AI without data, building the connectivity from Dynamics 365 and Power Platform into as many existing business data sources as possible is where the Business Apps are heavily relying on the R&D of MS Data Platform to outrun the competition.

    Even before James, the leadership team at Microsoft revealed their true ambitions of grabbing a much bigger share of the pie than what CRM & ERP as an app-first market could offer them. Already back in 2016 when I was visiting Redmond, the leaders of the product engineering for Dynamics CRM at the time were describing the two sides of the complete end-to-end offering as Transactional Stack (XRM) and Analytical Stack, giving us the following guidance:

    “Analytical Stack will be 10 times more powerful than the Transactional Stack. This is where you need to be. Transactional apps will be commoditized, monetization will happen on Analytical apps.”

    That moment really stuck with me. While I knew that such forward looking statement probably wouldn’t have a visible impact on Dynamics partner business within the next year or two, it was obvious that these targets Microsoft had on turning things around with their intense focus on data would eventually shake things up. The products would evolve into something different and so would the competence demands for anyone working with them.

    Apps

    There is a lot of power on the commoditization side of the stack, too. If we look at things only from the traditional business applications perspective, how Dynamics 365 capabilities are typically used by organizations who manage their sales, service, marketing processes, it might at times seem like we’re just in a race to the bottom. Packaged offerings replacing project work, ready-made integrations replacing customer specific code, online learning resources replacing in-person training. This is simply what naturally should happen, when technology and past experience allow us to move from solving unique problems to solving common problems in the most efficient and scalable way.

    Let’s look at another perspective, though: 500 million apps in the next 5 years. This is the statement Satya Nadella made about the exploding demand for new apps within organizations who are aiming to digitally transform their businesses. You don’t get to 500M with the normal software project methods and tools, which is why the no-code/low-code movement has such momentum behind it today. Because this is exactly the way. Turning the app users into potential app makers is the ultimate method of commoditizing business applications.

    So, this is the second major shift that will shake up the Microsoft partner business. What may well happen is that the existing partner channel for CRM and ERP based solutions that has formed around the Dynamics products over the years will not be the ones who can eventually cannibalize their own offering and grab this new space in the market. At the same time, it’s also difficult for me to see the Modern Workplace partners from the Office ecosystem all stepping up into a new area of higher business value consulting. It’s not exactly a walk in the park. Helping customers to define how a particular business process with all its actors, inputs and outputs should actually work in the digital domain, inside the frame of existing lines of business and different industries, isn’t necessarily the natural path for Microsoft 365 specialists to follow.

    Processes

    Regardless of all this new AI potential found in huge data sets and the possibilities of new app creation via citizen friendly tools, in the minds of the decision makers in customer organizations it still tends to boil down to the question of money: how to make more of it & how to spend less of it. The faster we can draw a line between these technological innovations and the financial results, the faster it starts to pay off and the more future investments will be made here. This is why the role of Dynamics 365 is still of highest strategic importance for Microsoft to turn the aforementioned vision into reality. In the above mentioned interview, James Philips described this alignment of products vs. platform:

    Our customers are telling us that, if we can give them an application to start with versus a collection of tools to go build solutions, they would strongly prefer that.

    James has communicated already at MS Ingite 2019 that they’ve recently tripled the size of their Dynamics 365 sales organization by adding 1000 new people in past 3 months (referred to as “D1000”). With the growing stack of first-party apps in the portfolio, it’s only natural that MS needs to assume a more active role in bringing these solutions in front of customers. The very nature of many of these data-first apps is incompatible with the kind of partner channel that Microsoft built back in the MBS era. For the system of record type of core business infrastructure you’ll still want a reliable service provide to steer the slow moving cargo ships. For these new speed boats that require quick maneuvering skills, a very different kind of crew is needed.

    The old model for Dynamics partners to sell a bit of everything that the product can do to anyone who happens to ask for it is becoming obsolete – or has already become, depending on how much competition there is in the local market you happen to be operating in. The new role of the Dynamics partner would appear to be in offering very specialized expertise on the delivery of application A, preferably focused on target industries X, Y and Z. Microsoft will have done the solution selling part for the latest cloud apps already before you step through the customer’s door. If you can’t fit your offering into this new role that’s being presented, then… Well, it isn’t really Microsoft’s problem but rather your very own problem as a partner.

    It’s time to go forward

    Based on this perception that I have about the business applications landscape around us, what kind of a partner would Microsoft customers then actually need in order to achieve business success with this technology? My first answer is: they will need many, I’m sure. The platform and the apps on top of it have grown well beyond the boundaries of what the initial deployment of a single CRM system may have been ~10 years ago. It’s time for the customer to own their digital business platform and then choose the suitable products and service providers for their different development initiatives that utilize this common stack. This needs to be an ongoing process, not a one & done deal for X years with a single company that got the best scores from your RFP Excel sheet a long while ago.

    The second answer is more to do with the skill set that the experts in the partner’s team should have. As I described in the Process part, each app in the Dynamics 365 suite will require deeper and deeper expertise. What about the horizontal aspect – the platform that connects all the apps? I would say that the partner you’re working with should posses the following traits:

    • Understand the Data Platform underneath the Power Platform.
    • Be citizen-ready in their business app development practices.
    • Know the past, present and future direction of Dynamics 365 products.

    At least that’s what we as Team Forward Forever are striving to achieve. We’ve decided that the competence we will build and the solutions we will offer are going to be 100% focused on Power Platform:

    This is the foundation that Forward Forever is built on. Our team consists of professionals with several years of experience on delivering customer solutions with Power BI, Power Apps and Dynamics 365. What we’re NOT planning is sticking to doing what we already know, though. The fact that we all see the clear need to evolve our skills towards the demands that the unstoppable onslaught of Power Platform will gradually force upon every partner out there is precisely why we are joining forces. This is how individuals like us can move forward as a team:

    • Timo Pertilä, a fellow Microsoft Business Applications MVP has a loooong history in Office 365 world and has jumped head-first into Power Apps and Power Automate in his 100+ blog posts over the past 2 years.
    • Jouko Nyholm is a leading expert in the local MS Data Platform scene, with background as a full stack developer who later decided to fully embraced Power BI well before it exploded into the dominant BI tool that it is in the market today.
    • Lasse Teeriaho is an entrepreneur with a solid Dynamics 365 CE background from both partner and customer roles, with hands-on experience on cutting edge MS technologies in machine learning, AI and bots.
    • Jukka Niiranen is… well, I am what I’ve become over the past 20 years.

    Honestly, I couldn’t hope for a better crew to sail with on this journey of helping our customers navigate the Power Platform seas. To quote the lyrics of a song by the late & great Andrew Weatherall:

    Fail we may, sail we must.

    Andrew Weatherall interview: “It’s bollocks, it’s discos, tell me tales of the sea.”
  • Microsoft FY20 Q2 earnings and the rise of CDP

    Microsoft FY20 Q2 earnings and the rise of CDP

    Yesterday, January 29th, Microsoft reported on their earnings for the Oct-Dec 2019 quarter, which is Q2 in their fiscal calendar. It didn’t come as a huge surprise that the cloud revenue keeps growing at an impressive pace everywhere you look. 12% growth for Dynamics products and cloud services revenue is nice, and 42% for Dynamics 365 is… even nicer!

    What I find more interesting than these financial numbers is the earnings call transcript, where we get the opportunity to hear CEO Satya Nadella and CFO Amy Hood describe how they see the Microsoft business evolving. Picking up the terms and products from here should give us a better understanding of not just the past (i.e. the quarterly revenue and operating income) but especially the future outlook of what the company considers to be the shining stars in its portfolio. So, in the spirit of Thinking Forward, here’s a summary of what I though was relevant in that earnings call from a Business Applications perspective.

    Power Platform

    “We are empowering not only professional developers but those closest to the business problem – from citizen developers to business decision makers – with no code, low code tools so they can create apps and intelligent workflows that solve unique needs. Today, 2.6 million citizen developers use our Power Platform to make better decisions using self-service analytics, build a mobile app, automate a business process, or even create a virtual agent – all with no coding experience.”

    The new type of market for app makers that previously could have only been app users is of course a very critical area of success for Microsoft. Low-code development is one of the hottest games in town, where also other tech giants are looking to grab a seat at the table. A couple of weeks ago Google acquired AppSheet to provide no-code/low-code tools for their customers. Almost right after it, they announced that their in-house equivalent Google App Maker would be shut down within less than a year. Google cited low usage as the reason for running down App Maker, which gives us an indication that you can’t succeed here merely by having just any citizen developer tool available out there.

    Meanwhile, Microsoft is investing heavily into ensuring Power Apps plays nice with their whole productivity stack. Satya especially highlighted the platform effect that Microsoft Teams carries with it, so expect this to be the UI through which the broad user base will discover Power Apps and Power Automate. At the same time, Power Platform’s role as the shared extensibility model for both Microsoft 365 and Dynamics 365 is also of high strategic importance:

    “There’s no such thing as a canonical business, and no such thing as a canonical business over time, right? Business processes change. The question is how rapidly can people and domain experts keep up with the change. And that’s where Dynamics 365 absolutely shines.”

    Dynamics 365

    Even though many XRM professionals have shifted into blogging and talking more about Power Platform these days (myself included), that doesn’t mean the role of Dynamics 365 in Microsoft’s product portfolio would have decreased one bit. No, of course Dynamics 365 is not “dead” – it just isn’t the platform product anymore. The rapid launch of new first-party Apps under the Dynamics 365 brand is a key source for revenue growth, as described by Microsoft CFO Amy Hood:

    “The Dynamics 365 excitement we have, when I think about the comment I made around adding workloads, what’s so important about what Satya just talked about is how this reaches into new budgets for us, new opportunity for us in terms of being able to tap growth that we had not been able to access before.”

    Many of these new workloads are about going beyond what the traditional CRM + ERP suite of Dynamics 365 covered. While I suspect that we haven’t yet seen much actual license revenue come in from this next generation of business applications, Satya firmly believes that the new opportunities in this field will rise out of the not-so-secret magic ingredient: data.

    “We are very excited about what’s happening with Dynamics 365, in particular, because when I look at what the world needs is it needs a business application suite that is more comprehensive that can turn what is the real currency of this next era, which is data, into predictions, insights, and automation without boundaries.”

    Customer Data Platform

    Now we get to the interesting, forward looking part, which I believe hasn’t yet been fully grasped by the general tech media. What specific products and technologies is Microsoft using as the spearhead for getting the message across when they talk about data and AI being brought into business applications?

    “The competitiveness of every business going forward will be defined by their ability able to harness the full value of their data. Dynamics 365 enables organizations to move from reactive, siloed transactional processes – to proactive, repeatable, and predictable business outcomes. Dynamics 365 Customer Insights, that’s layered and built on Azure Synapse, is the only Customer Data Platform operating at scale today.”

    Let’s highlight the CDP part first. What is it, to begin with? Well, we don’t have time to dig into the dirty details here, but in short: a Customer Data Platform is about creating a unified customer profile from a number of structured and less structured data sources, deriving new insights from it and then performing smarter (automated) actions towards the customer as a result of this. It’s not a single relational database like CRM, it’s more like a database of databases, ad-hoc data sources and APIs that change rapidly over time. The common use cases for CDP have mostly been in the marketing space, but the concepts and scenarios are evolving fast into other areas, too. As Satya Nadella points it out:

    “There is a new category, in fact, and a new race starting with CDP, and we’re leading.”

    Why is Microsoft so confident about being a leader in CDP already? Yes, we’ve seen Dynamics 365 Customer Insights being demonstrated at every MSFT event for the past half a year already, but is it really such a revolutionary application in its own? The real source of Microsoft’s competitive advantage is found from within their Data Platform in the cloud, and how all the new Insights products in the Dynamics 365 family are leveraging the very latest Azure tech. Looking at the earnings call transcript and the order in which the different categories were addressed during the session, before Satya even mentions Power Platform or Dynamics, he highlights the importance of Azure Synapse:

    “Azure Synapse is our new limitless analytics service. It brings together big data analytics and data warehousing with unmatched performance, scale, and security. In concert with Power BI, it enables data scientists to generate immediate insights from structured and unstructured data, and build custom AI models.”

    These are some of the cornerstones in how Microsoft envisions it can enable organizations to “build their own digital capability and tech intensity”. You can find a recent example from the Dynamics 365 product team blog about how the Customer Data Platform story fits in with the shifts in the retail industry: it’s not just about capturing the customer’s email at the checkout counter but rather offering a comprehensive solution to manage signal data from social channels, chatbot interactions and even augmented reality.

    So, if I were to summarize what’s happening here in a simplified formula, it would be:

    Azure Data Platform + Dynamics 365 = Customer Data Platform

    jukkaniiranen.com

  • Application/Platform Separation in New PowerApps Licensing Model

    Application/Platform Separation in New PowerApps Licensing Model

    Ever since Spring 2018 when the XRM and PowerApps platforms merged on a commercial level, I’ve found myself spending an ever increasing number of hours per week involved in licensing discussions and scenario planning. My initial exploration of the platform licensing back then came to the conclusion that many of the crucial details for actually determining what you can & can’t do with PowerApps licenses vs. Dynamics 365 CE licenses were simply not available at the time. Obviously this was not an ideal starting point for Microsoft to start pushing their Power Platform into new business areas that should see it capture the next 10 million developers from outside the traditional CRM field. But still, it is the legacy that came with the underlying platform that was designed to be sold as Sales, Service, Marketing etc. solutions delivered via traditional enterprise projects via partners that mostly had started back in the Microsoft Business Solution (MBS) days. What can you do about that, huh?

    This year at the Inspire 2019 partner conference, Satya Nadella framed the role of Business Applications and Power Platform in particular with the following numbers:

    (Click here to watch this segment of his Inspire 2019 Corenote.)

    If there are indeed 500 million new apps that will be created in the coming five years, then those sure ain’t gonna emerge from the MBS style business model and development methodology. Today the world is full of both cloud service providers that offer low-code/no-code tools for building your own apps very rapidly, as well as savvy power users who are interested in seeing if they could take their Excel workbook desktop wizardry to the next level with these cool new tools that promise to deliver modern apps for this smartphone era. Since MS has obviously identified this new business potential that Power Platform can unlock for them, are they going to let the prior licensing model of Dynamics 365 stand in their way? Probably not.

    It just so happens that Inspire 2019 was also the place where the upcoming licensing changes for both Dynamics 365 and Power Platform were introduced to the partner audience. Since Inspire is a public conference that anyone can attend, it also meant that any customers paying attention to the Microsoft ecosystem are already aware of the changes announced to take effect on October 1st, 2019. The slide decks for both sessions are available for download on the Inspire website for a more detailed look. On the PowerApps blog there is also a summary of these changes, which is nice. What’s really nice is that the comments section is open, which often isn’t the case for corporate announcements related to licensing (is it even a “blog” if there is no reader interaction opportunity given?). The product team has been responding to a lot of the feedback around the topic, which makes me optimistic about the possible fine tuning of the licensing model to align with what the outside world thinks about it.

    Pay per App

    As with licensing always, there’s far too many details in the Inspire 2019 news to cover in one blog post. Maybe I’ll eventually do a revised version of my “Demystifying Dynamics 365 & Power Platform Licensing” session from January, but right now I want to focus on one aspect: the price of an App. This is something the new PowerApps licensing model highlights in particular:

    In short, what Microsoft will do in October is to retire the earlier PowerApps P1 and P2 plans and introduce new “Per App” and “Per User” plans. Nothing (major) is going to change with how the rights bundled into Office 365 and Dynamics 365 licenses work. The “Per User” plan will be the same price ($40) and mostly the same capabilities as the earlier P2, whereas the earlier “lite edition” of PowerApps P1 at $7 will be discontinued completely.

    “What?!? How can they just take away the $7 plan and push everyone to buy a license that’s almost six times the price of that?” Yes, this is the hardest part about the changes, no doubt. I was a bit surprised to see this as the direction where Power Platform is heading, given how the citizen developers who’ve been playing around with the seeded Office 365 PowerApps license should rather be pushed into learning more about CDS, solutions and all those “real” application development tools that P1 previously offered. Nevertheless, after letting the new model sink in for a few days, I believe that this pricing mechanism makes a lot more sense than the earlier version.

    A fundamental problem with the current P1/P2 divide was that it attempted to draw the line on app complexity. There were limitations like the inability to attach real-time custom business logic (workflows, plugins) on entities that were used by PowerApps P1 license holders. This was particularly problematic when operating within CDS environments that also serve as the Dynamics 365 CE app database (yes, they’re all CDS now): any developer or 3rd party app registering a plugin step on an entity like account would instantly have put all P1 users attempting to access it out of compliance with the license terms. Also the rights on “complex entities” and “restricted entities” differed between P1 & P2. Sounds complex? Yup. I had to write a blog post for demystifying these PowerApps “starter” plan capabilities just to get my head around on where the lines were drawn.

    Something that would have eventually become a big problem with the old P1 definition was that it only allowed the users to run Canvas apps. Sure, those pixel-perfect mobile-first applications are what most people think PowerApps is made of, but that is a view of the world that needs to be deprecated. Model-driven apps are just as important area of what Power Platform represents (on CDS in particular), but that capability was reserved for P2 license holders only. Given that Microsoft is aiming to remove all of these artificial limitations between app types and eventually get all PowerApps customers to Run One UI, keeping P1 users locked from this future app convergence simply wasn’t a viable option anymore.

    (more…)