NO ADMIN REQUIRED: Launch your canvas PowerApp from a Dynamics 365 Record

My latest canvas PowerApps creation provides a streamlined interface for managing “technical close plan” records in Dynamics 365 (set of configured entities associated with Opportunities). I built this app for myself and my peers to spend less time navigating between screens when building out our close plans so that we could have timely and accurate close plans visible to the whole pursuit team.

I estimate a time savings of a few minutes per deal per week. Over time that really adds up. Also, there’s a great peace of mind that I get personally knowing that I’m on top of it.

The only trouble is, I typically work with records inside of Dynamics, and didn’t want to have to jump out to a new browser window (or grab my phone), open the PowerApp, search for the specific record, etc.. That would chew into the time savings too much for my liking.

Why not just embed a PowerApp in the record form or add a menu button?

Unfortunately, both of those assume you have System Customizer or Administrator access to the environment. That’d be a great way to go, but I’m just a regular old user this time—and I don’t have an “in” with the admin either.

I didn’t want to recreate the saved Opportunity lists (system and personal views)…because I’m not a fan of reinventing the wheel inside of my apps, especially when I’m using the Dynamics 365 or CDS connector.

So I built my PowerApp with the assumption that I would spoon-feed in a specific Opportunity record through some other means (with some TBD level of automation).

Then I built a bookmarklet

“What’s a bookmarklet?” You know what a bookmark is in your browser: click a link and go to a website. A bookmarklet looks like the same thing, except when you click, it runs a little script to do something.

screenshot of bookmarklet in the browser window

In my case, the bookmarklet finds the record GUID based the page I have open, then opens my PowerApp in a new window and passes in that GUID as a parameter.

I couldn’t find something readymade, but I did borrow the script to get the GUID. Big thanks to Benjamin John, who published a couple of blogs with a bunch of Dynamics 365 bookmarklets.

Handling the parameter

When the PowerApp is launched, specifically when the first screen loads, I use a function to check for the parameter and store it as a global variable:


The second function (the If… after the “;”) checks to see if the parameter was there and the app navigates to the details screen. There are a bunch of ways to do this, so I picked one that’s overly complicated but fun to look at. Oh the joyous freedoms of being a Citizen Developer 😉

Conclusion and call for collaborators

All in all, this was a couple of hours from initial research to final product and it’s already saved me a bunch of time in accessing the right record from my PowerApp. It also made me think back to a time before I had Admin privileges in most environments I touch. That’s a fun and creative part of the problem-solving brain that I was happy to say hello to again.

If you’re interested, I released the JavaScript for the bookmarklet as a project on GitHub. I recognize that it’s using the older (but still functioning) page.xrm object which is not ideal moving forward. I’m open to help from a real developer who can help update it to leverage the Web API equivalent.


The top 4 reasons I love

Your first question might be “what is” and that’s fair. You may have heard of, which is what it redirects to (or maybe you already figured that out by typing it in your own browser…).

Over the course of the last year (?) Microsoft has made a very notable push to consolidate their public-facing documentation all to the site–and I love it! These are the top reasons I’m a big fan.

Consistency in documentation

Part of good reference documentation is that it isn’t radically different from one product to the next–especially in the case of the Microsoft clouds of Azure, Business Applications, and Office 365 where the products are engineered to work with each other. Having consistency across these helps connect that experience. A few places this is evident includes:

  • Navigation / outline
  • Style guide
  • Easily searchable text
  • Better cross-linking
  • Visual ascetic of the page
  • Separation of product feedback and documentation feedback
  • Release notes aren’t buried elsewhere


It seems to me like there’s been a significant effort to make this site SEO-friendly (SEO-focused?). I get high-ranking hits of this documentation using the major search providers–which is great considering how fresh much of the content is.

navigation tree search

searching through the outline of the current section

Within the site, the outline (navigation) for each item includes search (if you’re trying to find something within this logical area, with the top-level search just a click away.

top level search with filter for product

Note that this global search also has a product filter based on where I am…slick!

Less fragmentation

This same documentation used to be scattered around a bunch of product specific pages, TechNet articles, MSDN, product manuals, separate roadmap sites, “official” community sites (and probably more).

Now it doesn’t take heroic efforts to track this stuff down. Resources for end users, admins, IT pros, and developers are all here–which is especially great since so many people who would go looking for this don’t fall neatly into just one of those buckets. A huge amount of content is out there already, with some still pointing to old articles (that are being ported and retired).

Date stamping

Every page has the date stamp right at the top of the page, giving a quick heads up as to how fresh the content is or when it may have last been reviewed. In this same area it calls out the people who have contributed to writing the page as well, which for some reason just feels good to remember there are real human beings behind the updates 🙂

Final thoughts

I also find it interesting that all of the documentation is written in Markdown and maintained on GitHub repositories. It’s very open to be able to see edit history, publishing over time, and all sorts of other stuff out there.

github page for PowerApps documenation

Would you have even known the documentation is managed through github?

Have fun!

XRM Toolbox with Dynamics 365 and Model Driven PowerApps

To anyone building model-drive PowerApps, Dynamics 365 for Customer Engagement, or the Common Data Service for Apps, XRM Toolbox needs to be your friend. In a recent Implement This podcast episode I discussed a couple of favorite tools in the toolbox.

Specifically we talk about:

View the full show notes (and the video I mention) at

Cascade Rules in the Common Data Service for Apps

Recently Britta and I recorded and released a podcast episode about “cascade rules” behavior. When building relationships between entities in the Common Data Service, these settings influence the behavior of visibility, assignment, and other system capabilities.

This capability can be leveraged when building model-driven PowerApps and extending Dynamics 365 Customer Engagement.

View the full episode show notes at



Quick Update

First off, if you’re not watching Dynamics Fortnight Fridays, you’re missing out. It’s a bi-weekly (fortnightly, and no, not that Fortnite) streaming video about what’s new and interesting with Dynamics. It covers notable news, important blog posts, and has some live discussion about Customer Engagement, Finance, Operations, and the tools related to business applications. No, I’m not being asked to promote this…but I definitely want to (it’s great!).

Podcasting Updates

On Implement This, we discussed Rollup Fields. They’re useful in a good handful of situations and we chat about some of the more common ones, as well as some that are a little more off the beaten path.
We also covered Queues, Queue Management, and Routing Rules in Dynamics 365. They’re part of the standard service capabilities but many folks I’ve chatted with recently weren’t very familiar with them. I also worked with a prospect who was looking to custom-build what the Dynamics platform already handles out of the box.
On ProdCast, Joel and I revisit the topic of effective email with Improve Your Email Response Rate. This time I wanted to make sure we cover how to guard against non-responsive email recipients. It’s all about creating a Default Action…and building it into your email.
ProdCast also gets influenced by my personal life this month. My wife and I recently had a son, so I’m taking off an extended time from work for Parental Bonding. As part of this, I’m exploring productivity at home. We also chat about Google Maps Timeline, which I find to be fun and sometimes pathetic to look back at.

Business Applications Community

Microsoft Inspire is this month (f.k.a. Worldwide Partner Conference), and I’ll be in Vegas for some Microsoft-y training and I’ll also have the opportunity to attend Inspire events as well. Drop me a line if you’re going–I’d love to catch up!
I confirmed that I’ll be putting my presenter hat on to discuss Queues, Queue Management, and Routing Rules as part of the Virtual Service Summer Camp. If you want a sneak preview, check out the Podcast episode that Britta and I just released.

Microsoft Power Platform FTW

Before our son was born, my wife, Jess, had been frustrated with the pregnancy app options on her phone, specifically when it comes to tracking contractions. The biggest hassle for her was the lack of simple notification–everything drives you into the app. I leveraged the “Power Platform” through the tools of Flow, Model Driven PowerApps, and a physical Flic button to build a solution that worked great for her. It was literally what she used to determine when to say “I think it’s time”. If I can find the time I’ll pull together a blog post, video, or make it a podcast topic.

Dynamics 365 and Flow – Implement This Podcast

At a local Dynamics-team meeting, we had a healthy discussion about Microsoft Flow and its fit for business applications as a cross-platform workflow engine. I've been a long-time user of If This Then That (IFTTT) and I'm excited at the prospects of having this kind of service-connecting tool right here within the Microsoft toolset. It shows the embracing of Connecting the Data with 3rd party services(if you will indulge me), without having to rely on custom code 🙂 

Coming out of that meeting, Britta and I wished that the discussion had been recorded. It wasn't. But we put our heads together to outline the topics that were covered and discussed them on this episode of our podcast Implement This. The content is still relevant

You can listen at the top of this post, or click through to the episode on our website.

Dynamics 365 Workflow Foundations – Implement This Podcast


Show Notes:

The Dynamics 365 Workflow engine, which is the behind-the-scenes part of the process engine, is massively powerful. For host Britta Rekstad, who has presented on how to use Dynamics workflow at multiple conferences, this is an absolutely critical aspect of the platform for new admins to understand.

Co-host Matthew C. Anderson shares about how some of his early experiences in configuring Dynamics 365 involved workflow. This experience also included a spoken agreement to be careful as the workflow engine (used without care) can cause some pain for other users and admins alike.

Discussed on the show

We seem to have different perspectives on using the workflow engine, however, there’s no disagreement on how important and powerful this tool is when implementing Dynamics 365. A very flexible tool, this part of the process engine sits out-of-sight to most users but serves an important role.

What’s on your mind?

Have a question you’d like answered on a future podcast? Submit one by visiting

ProdCast: Procrastination vs. Patience

Have you ever had a situation where a little delay makes the difference between an “important request” and “never mind…”? Joel and I talk about walking that fine line on using procrastination as a tool to see whether some tasks may not be worth acting on ASAP.

Subscribe to the Podcast: Apple Podcasts | Google Play | RSS

Engage Customers – Dynamics 365 + Content Management Systems

Let me start by saying I have high expectations around what “good” looks like when I’m buying something. When I buy a product or subscribe to a service, I expect a good customer experience. When I am considering a purchase, I want answers to my questions. When I want support, whether that’s through chat, email, or phone, I want someone with knowledge about the product I have (the exact one I have). When I go to their website looking for accessories, I don’t want to have to sift through gobs of irrelevant options for products I don’t own.

I’m not alone with these high expectations.

Quote-1In my role as a Solution Lead, I regularly talk with people who could benefit from tightening up their customers’ experiences. Customer Relationship Management systems like Dynamics 365 have evolved beyond the traditional “sales forecasting” or “account management” systems into integrated platforms that enable better experiences for customers…without ever knowing that this interaction is powered by what has been historically viewed as “just a CRM system”.

Connecting a website to Dynamics 365

Any Dynamics 365 online or internet-facing on-premises deployment can be hooked up to a website using the API—this isn’t new and many solutions take advantage of this (simple lead capture forms come to mind). There are ISV solutions as well as pure custom development options.

Microsoft has released their Dynamics Portals solution, which is a big, exciting step.

This solution is easy to deploy with all of the plumbing done for you to provision a website. Simply start with one of several available templates:

– Customer Self-Service Portal

– Partner Portal

– Employee Self-Service Portal

– Community Portal

– Custom Portal

– Partner Project Service Portal (requires Project Service solution)

– Partner Field Service Portal (requires Field Service solution)

Quote-2Dynamics portals also support interaction tracking of logged-in users. Said another way, this means that by understanding the pages that someone visits, a better user experience can be provided through intelligent suggestions or relevant content.


Go further when engaging with your customers and prospects

But there are situations where the personalization needs to go further, or fold into a larger content and engagement strategy. CRM, social, web, e-commerce, in-store, email, mobile app…it’s a big list! Where do we look to?

I connected with a few different colleagues that know the content management and delivery side of this, who could answer some of the questions I had as someone with more of a CRM background. There were three big buckets that came up:

– Advanced lead capture – going beyond a simple “form on a page” – understand the journey that started before they filled out the form

– Enhance customer experience with CRM information – Personalize the website experience based on information about your relationship that come from CRM

– Enhance CRM with customer activity – collect information about anonymous users (both prospects and customers) and connect that history as you build a relationship

Quote-3In order to meet the high (and rising) expectations for customer experiences, content management tools like Sitecore are your friend, and they include ways to have a deeper connection with your customers across platforms.


Looking ahead

There are dozens of questions that come to mind when I start considering the possibilities of what a client’s next questions would be. A few include:

– Who should drive this kind of project, and who else needs to be at the table to ensure success?

– What are some of the milestones that can help measure incremental success of this kind of integration?

– When should we start tracking information about a prospect or client’s activity or preferences, then align that across so many different channels?

– Where is the balance point for the level of detail that should be passed between Dynamics 365 and the CMS?

– Why would we choose a consolidated platform vs. building integrations between services that are already in use?

– How do we make sure that behind the technology, we provide a great client experience across these different channels?

IQuote-4 feel a little like I’m standing at the top of a rabbit hole, excited to see just how deep it goes. Fortunately, I have a really smart team who can help drive answers to these questions. Let us know in the comments if there are specific aspects of this you are curious about.


This post originally appeared on the RBA blog.

1 2 3 9