Category Archives for "Bring technologies together"

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.

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.

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.

Server Side Sync in Dynamics 365 isn’t required for Relationship Assistant

With the Dynamics 365 update late last year, I’ve seen some clients who are making timing and priority decisions for the visual update as well as what new functionality to test out. One (preview) feature that has been the center of attention for several of those conversations is the Relationship Assistant.
If you’re not already familiar, the Relationship Assistant basically provides reminders, suggestions, and insights about your relationships–based on information that you have in Dynamics 365 and Office 365. The feature uses Microsoft Azure to analyze activities and other record types to:
  • Remind you about upcoming due dates / close dates
  • Suggest activity if you haven’t been active with a customer or prospect
  • Offer external information like stock prices or recent news (without having to go look for it)
When I first started chatting with folks about the Relationship Assistant, there was a common misconception that came up again and again: people seem to think that relationship assistant requires Server Side Sync to be enabled. While this is true for some of the relationship cards, some can be used regardless of the Server Side Sync feature. These cards fall into several categories, but only two of them (Email Cards from Exchange and Email Engagement Cards).

There is real value if you use Server Side Sync

All of that said, I’m certainly not recommending against some of the cool stuff that comes with Server Side Sync. What’s most significant here is that emails in your personal inbox can be displayed in Dynamics without the user having to physically click a “track” button. Literally, email that they may not have even seen in their inbox could be displayed in the context of an Opportunity record with that same contact.
This is the kind of feature that provides value back to users without them having to put a bunch of up-front effort in.
I’m hoping to gain a deeper understanding of how to train some of these email cards from exchange, though. Some of the cards like “Stakeholder Recommendation” that will suggest (or automatically add) a stakeholder into Dynamics if they aren’t already in the system. Being able to train this model for industry-specific keywords will make it more versatile. Maybe this is something we’ll see when it’s out of preview (I can dream, right?)

Final thoughts

I know this isn’t a hidden feature or anything fancy like that, but it’s important for Dynamics administrators to know the tools that are available to them and their user community. While it’s not hidden, it is a Preview feature, which you’ll want to keep in mind as it doesn’t come with any official support.
Are you considering the Relationship Assistant or have you already enabled this in your organization? Share your thoughts in the comments below.

Identify Duplicate Column Names in Dynamics 365 Using Excel

Here’s a little how-to video that helps how to use Excel to solve the otherwise monotonous process of identifying duplicate column headers in Dynamics 365 / Dynamics CRM (or in any table on a web page). This addresses the underlying issue of the Failed to Generate Excel error message that shows up when clicking Export to Excel.

Background: Failed to Generate Excel

Microsoft Dynamics CRM (now Dynamics 365) has a great feature that lets you export to Excel very easily to use either Excel Online or Desktop edition to play with the data.. Unfortunately, it sometimes gives a nondescript error when exporting “Failed to Generate Excel”, which appears if two column titles (fields) in the export have the exact same name.


Seems a bit over-the-top for an issue with duplicate column names, doesn’t it?

This could be an issue if your organization has a custom field with the same name as an out-of-the-box field and both are included in the view.

The Problem:

Manually identifying duplicate column names is an annoying and often slow process unless the columns happen to be in alphabetical order (and they never are). It would be easy to sort in Excel though…

My Solution:

  • Take advantage of the fact that under the pretty interface, the grid is actually just a table
  • Click-and-drag the text to highlight the column headers in the web page.
  • Copy to clipboard, then paste into Excel.
  • Copy and “Paste Special”–making sure to “Transpose” (rotate) data from columns to rows in Excel
  • Sort this list alphabetically and review for duplicates, then remove duplicates from the CRM view

Note, this is something I use a lot for one-off applications–but there are better ways to do this for the same page on a frequent basis.

It’s a poor craftsman that blames his tools – I both love and hate this phrase…

…and I use it all the time for that exact reason. I’ve been involved with many projects both in my personal and professional life where I have a responsibility to make things work. Whether I’m building a system to collect forecasting data for business planning or making a podcast with my friends, there are a collection of different tools and processes involved. And in both of these situations the right tools can help make a big difference, but they’re also just one piece of the puzzle.

It’s easy to point at tools as the reason for failure

The tools we use, whether we’re talking about a microphone, a notebook, or a software platform, it’s easy to call out how it’s holding us back. I know for me, if I’m trying to do something and it doesn’t go as planned, one of my first reactions is to look outward at those very tools as the resason things didn’t go better.

It’s then very tempting for me to examine all of the reasons I need a better tool. It’s temping to do this as a way to avoid looking inward at how I’m actually asking people to use the tools we have. Are we experts with these tools? Do we really know how/when to use them?

Instead of taking the easy way out–casting blame at the tools–I prefer to pause and understand how we might be able to make better use of the tools. Figure out what went wrong or where the gaps are where these tools don’t seem to be good enough. More often than not I find that there’s some room for improvement of the process.

Then again, sometimes tools really do matter

Tools do matter (this is precicely why I have the love/hate relationship with this phrase). I find that this is especially true when our skill levels are either really low or really high.

When our skill levels are really low, fancy tools can help cover up mistakes. Autotune for a singer is a great example here.  Someone with practically zero skill, experience, or understanding can sound like a reasonably decent singer. There’s an unnatural quality to it, but it has better appeal than their natural singing voice.


When our skill levels are really high, then better tools can offer a greater level of precision, or help out with some of the low-value work to free up more bandwidth to focus on the finer touches that a true craftsman can bring to a job. This is the singer whose talent is showcased through a well-produced recording.

It’s a trap!

The point in all of this is the following: Tools are important, but they’re only one aspect of what we need to be successful. With the autotune example above, this can also be a trap for someone. They can rely on this tool as a crutch.

When starting out with something new, there’s an additional hurdle that we don’t even know which tools are good or bad for solving our problems. This makes matters worse–especially in a group setting where people will express their deep concerns over this or that tool. The fact of the matter is that every tool will have trade-offs. Once a decision is finally made on how to move forward there’s a feeling of finality, when in reality this is only one of many tools that will be used along the way.

Making do when you need to (but aspiring to more)

What I advocate for (which is where I’ve experienced the most success) is identifying a reasonable starting place. Do enough research about the available tools to get an understanding of what some of the appropriate options are. Ask around–there are probably experts with just about every one of the tools solving similar problems to the ones you’re trying to fix.

The next step is to make a decision for the starting point. Which tool can we try out that seems like it might be the one for the job? There is almost certainly NO “perfect” tool with where you’re at in the process. Even if you pick the one that ends up being the perfect thing–it may take a long time to realize it.

The last step here is so important: take time to objectively evaluate the tool. This is different from blaming or praising the tool in the heat of the moment. There will be good jobs and bad ones using the same set of tools. Taking the time to review the effectiveness of these tools over time enables us to identify when to make a move and to make more informed decisions in the future.

Which tools do you use today that you really like? Which ones are you using that you want to upgrade? I want to hear and respond in the comments!

Photo Credits:




It is with great excitement that I set another post to go live on Connecting The Data after nearly two years of posting to my company’s blog. I’ve missed some of the freedom that comes with posting here (variable post length, topic variety, sharing more opinion, format variety to include video & audio, etc.) .

I’m very proud of the recognition and reach I’ve achieved with my blog posts on the Hitachi Solutions blog. It has been a great opportunity to work with that larger audience and do my part to help showcase some of the talent and leadership we have in our organization. We went from having only a handful of authors who each needed to post 1-3 blogs per month, to a stable of over 25 bloggers. This is great growth for Hitachi, but it’s meant that my ability to share my thoughts on interesting topics needed a fresh outlet. I knew there was a reason why I just couldn’t let go of Connecting The Data 🙂

The timing is appropriate as well. The advances by Microsoft in their entire Office 365 suite and the pivot to leverage an open data service for their Dynamics business applications, expansion into machine learning and predictive analytics, visualizations with Power BI, and the improved capability for true productivity applications are just some of the developments that speak to the meaning of this blog’s namesake. MS has really adopted the notion of “connecting the data”.

I’m also excited to expand even further some of the content. I’ve found that my most-read posts involve me sharing creative problem solving using tools and technologies that are approachable to an “average” person without a computer science degree. This means some more fun examples that go beyond using just the core office suite (Scrivener, Audacity, and just to name a few). I’m also going to broaden my horizons and use real world examples that go beyond a business scenario, diving into how I use these technologies as part of getting stuff done outside of the office as well.

I’m looking forward to connecting once again! 🙂


5 Tips for using Excel Templates in Dynamics 365

Now that the Excel templates for Dynamics 365 have been released and in the wild for several months, it seems an appropriate time to share some tips for getting the most out of them (even if you’re just getting started).

The following items are focused on general user experience rather than advanced Excel functionality. (Crawl. Walk. Run. We’re crawling :))

1) Make sure you don’t have duplicate column names in your view

When first testing the capabilities of Excel template functionality I ran into a generic “Failed to Generate Excel” error message when downloading the baseline excel file. After some searching I discovered that the error was thrown because my view had two columns with the same name listed. With a little re-work of the view I was able to consolidate the columns listed and successfully download the file.

The easiest way to avoid this is to be intentional with which fields are added to the excel template download. I had checked the box to select “all” fields for the opportunity entity, and there were some duplicates four out of the box vs. custom fields with the same name. In a real world use case it is important to make sure that the proper field has been selected. So I recommend taking the extra time to validate specifically which fields have been added to the view (and understand why each field is being included).

2) Set PivotTables to automatically refresh data

By default, PivotTables are not set up to automatically refresh based on the new data in the CRM Data table, forcing you to right click on each pivot table and click refresh after opening the template. This hassle is completely avoidable and very simple to fix when setting up the excel template.

xl pivot options


  • Right click on the PivotTable->PivotTable Options
  • Select the Data tab
  • Check refresh data when opening file

BONUS TIP: Uncheck the save data option to make sure the exported CRM data is not stored with the template you’re building.

3) Use Multiple sheets in the workbook

In the examples provided by Microsoft, they have inserted their charts and tables above the data set (by adding blank rows above the CRM data table). This approach is valid and is certainly a simple way to get started, however, using additional worksheets inside of the excel workbook allows greater control over formatting and can help keep the report looking nice and clean. Using this multi sheet approach will also save you from headaches when adding in pivot tables as the number of rows and columns will be variable in many common use cases.

Doing this is simple. At the bottom of the excel window find the list of tabs (those are the sheets) and click the plus arrow to add a new one. As a best practice, remember to give good names to each sheet.

xl add tab

BONUS TIP: You CAN rename the tab that has the dynamic data table from CRM. Doing this doesn’t cause problems when people use the templates.

4) Choose the default Sheet a user will open to

This tip is all about the user experience (even if you’re the only person who will use it :)). If you have multiple sheets there’s probably one that makes sense to have open first. There’s a very simple and low-tech way to do this:

When you save the final excel template for uploading, make sure the “landing page” worksheet is active-at-that-exact-moment-of-the-final-clicking-of-the-save-button. This worksheet will now be the one that will be active when a user opens it in Excel (via download or in Excel Online). In this way you can guide their experience to the appropriate sheet without forcing them to click another tab.

5) For Excel Dashboards, consider hiding the “data” worksheet

Sometimes it’s important to see all the details of the records behind your charts graphs and analysis, but other times all you need is the summary. You can help further improve the user experience by hiding the worksheet with the CRM data table.

XL Hide Tab

Doing so will not cause issues when using the final uploaded template. Additionally, for users who do want to see this data they could still unhide that tab if they’re feeling curious.

Final Thoughts

The utility of the Excel Templates functionality opens doors to many quick-wins in CRM 2016 (online, cloud-hosted, or internally-hosted). These tips are a few of the basics to keep in mind when getting started, but we’ve barely scratched the surface with what we can do.

Matthew’s post originally appeared on the Hitachi Solutions blog.

Read more…

Thanks for stopping by. As of January 2015, Matthew’s CRM-related blogging efforts have been refocused into the Hitachi Solutions blog. Excel-related blogging has been moved to his personal blog. The content on Connecting the Data will remain available in an archive state.

Dynamics CRM Mobile Offerings

With the January CRM update from Microsoft, there are now more mobile access options for Dynamics CRM than ever.  While this is great news when it comes to flexibility, it adds a wrinkle when it comes to making a decision on which method to use.  Fortunately, there’s an upcoming webinar that will explain many of the available options.  See the details below:

Please register for Microsoft Dynamics CRM – Mobile Productivity Overview on Feb 27, 2013 11:00 AM CST at:

Microsoft is making large investments to expand and enhance Microsoft Dynamics CRM’s mobile productivity capabilities.

Join us to see a broad overview of mobile CRM productivity capabilities and options. We will also demonstrate leading edge mobile solutions for CRM Clients.

Don’t miss this exclusive opportunity to see the latest and greatest features and functionality in Microsoft CRM.

Register now – attendance is limited.

After registering, you will receive a confirmation email containing information about joining the webinar.

Full Disclosure: This webinar is hosted by my employer, Hitachi Solutions