Category Archives for "How-To"

Run more effective meetings by pre-writing your “recap” summary

According to the Atlassian, the average employee has 62 meetings per month and reports that half of those meetings are a waste of time. It’s great if you can reduce that total number but for the ones you do have, try to make them more effective meetings. I have several strategies I use to make the best use of my meeting time.

That said, one of the biggest time-sucks wasn’t just the time spent in the meeting itself, but post-meeting trying to put together summary emails that would go out to my team. It seemed like writing those summary emails would take as long (or longer) than the meeting itself! Does this sound familiar?

I knew there had to be a better way.

That’s when I changed up my process and started writing the summary email before the meeting even took place. At first, this seems crazy (or presumptuous at best) but stick with me, it’s only a draft at this point.

This draft becomes a reminder of what the important topics are and is a reference point to gauge progress during the meeting. As the conversation takes place, I amend my notes to reflect the actual discussion and can add more details where appropriate.

Below are the steps I use, which I offer here as a starting point.

Write up the ideal summary email before the meeting

The genesis of this idea is a simplified version of the “begin with the end in mind” concept, which is Habit 2 from Stephen Covey’s 7 Habits of Highly Effective People. The idea is to start thinking about the actual discussion that will take place, which serves a dual purpose of getting your mind focused on the meeting while giving you a chance to gather your thoughts on each topic.

Doing this is easiest if there’s a clear agenda for the meeting. This becomes a basic bullet point outline. Next, fill in the outcome you want to drive toward (or, if you aren’t exactly sure what you want, jot down the options you expect to discuss).

This doesn’t need to be exhaustive but it should be enough so that if you sent it out as-is you would have a little something to say about each topic.

Now you have your summary email drafted.

During your meeting/call, guide the discussion based on this draft

When the meeting begins, this draft will be an easy reminder/reference point for each of the planned topics. What’s become apparent to me in using this method is just how much “drift” happens during well-intentioned meeting discussions.

It actually becomes easy to see when things have drifted off topic. If something is way out of context with the summary you’ve prepared, consider putting the conversation in the parking lot until the core agenda has been addressed.

Take notes to fill out the additional details and changes

During the meeting, it’s easier to take notes because a decent chunk of the work has already been done. Sure, not everything will go exactly how it was laid out in the draft, but I find it to be a lot easier to make note of where things change rather than have to capture everything from raw.

The notes fall into two main categories:

  1. Changes to the basic summary
  2. Details to provide more specifics

When something is radically different from what I expected, it’s very recognizable, and it’s also much easier to make a logical appeal, rather than an emotional one. This is because I’ve already gathered my thoughts and can articulate what I expected based on my summary draft. This helps drive more effective meetings.

Additional details mostly focus on:

  • Key points/highlights (and who said them)
  • Decisions that were made (and what will be discussed later)
  • Follow-ups/action items (and who is assigned)

Also notice here how the burden of writing/typing during the meeting is reduced. This helps drive focus on participating in the meeting rather than being stuck using that brain power to figure out which notes to take.

Final thoughts

I need to point out the elephant in the room: I don’t intend for this method to be interpreted as a way to railroad a meeting toward the outcomes you’re looking for. The point is to get your thoughts straight so you can focus on getting your point across as well as guide a productive session.

Another note is that this approach isn’t applicable to every type of meeting. It assumes some level of control to know what the meeting is about as well as forming an initial opinion on limited information.

Also, consider the audience and the importance of having some off-topic discussions. These can be really valuable, and remember that, sometimes there are important parts of the conversation that should have been laid out in the agenda (but weren’t).

Do you think that writing this kind of summary could help drive more effective meetings? Let me know in the comments!


Create an Outlook Search Folder (and only search one folder)

On the most recent episode of the ProdCast: The Personal Productivity Podcast, Joel Lindstrom and I talked about Search Folders as part of a strategy for dealing with the deluge of email.

In case you haven’t already listened to the episode, I was talking about setting up special folders inside of Outlook 2016 (or 2013) that look through your whole mailbox for a match (even if it’s in a sub-folder, or sent items, or wherever). In simple terms: a search folder is a saved search that saves you time by storing several search terms, allowing you to find matching emails in just one-click.

Joel asked me if the Search Folder could focus that search to look inside of just one specific folder (e.g. “only mail in your inbox” and not any other folders). The answer is yes…but after recording the episode, I felt like I made it sound over-complicated to set up a search folder that only searches through a certain set of folders. I whipped up the following video to show just how easy it is!

If you’re not familiar with ProdCast, it is a podcast about personal productivity, getting more done with the time you have, avoiding procrastination, and being more efficient. We separate the hype from productivity tools and talk about ways to use your email and task list to become more productive. If you’re interested you can subscribe on iTunes.


8 Essential Skype for Business Hacks free e-book

I would never have guessed that I’d be announcing the release of my new e-book about Skype for Business. Don’t get me wrong, I’ve used it as my primary workplace communication platform and online meeting service for the last 5+ years (dating back before Lync was rebranded as Skype for Business). Still, I’m surprised and excited to share my e-book with you. You can get your free downloadable copy by clicking here.

The early days of Skype for Business were pretty painful. There were compatibility, connectivity, and general usability issues that I’d run into for even the simplest of meetings. I also quickly learned that I wasn’t the only person with these problems (and also that it wasn’t just limited to my company’s use of Skype for Business). Over time, though, something happened.

Skype for Business became a viable option that competes with the other online meeting and voice over IP options

In my line of work, I find myself having to use different screen share/online meeting services. GoToMeeting, WebEx,, and others (even one called Blue Jeans). For a long time, Skype for Business was simply not on par with the other options. On paper it could check the boxes–sure–but there were lots of little nuances that “you need to get used to.”

Behind the scenes, though, so many Skype for Business users would grumble about features not working how you expect, compatibility issues, and a lack of trust.

In 2015 and 2016 there were many improvements made to the platform, the desktop client, and the phone apps, which have resulted in positive improvements in stability and usability.

These improvement in the Skype for Business platform, in concert with it being included with most Office 365 subscriptions, more and more organizations are using it as their online meeting solution.

With great knowledge comes great responsibility

As a long-time user, I’ve seen and helped people with the most common issues they run into when they start with Skype for Business. Several co-workers of mine have asked me for the last year or so when my “Skype book” would come out. I can finally tell them that the wait is over!

In this e-book, I’m sharing a collection of these Skype for Business essential tips, which fall into four categories:

  • Joining meetings from the desktop app – for internal team members
  • Joining meetings from a web browser – for external parties who don’t use Skype
  • Leading meetings – for scheduling and starting meetings
  • Recording meetings – for capturing meeting audio & shared content

You can get your free downloadable copy by clicking here.

Do you use Skype for Business? Are there any tips or tricks that you’d be willing to share with others? If so, sound off 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.

CRM 2015 – Quick Public Service Announcement For Administrators

Microsoft has released CRM 2015! In related news I thought I was losing my mind while I was setting up a test organization. I couldn’t find the User administration section. It’s been under Settings->Administration for quite a few releases now, but with 2015 it’s no longer there.


Instead, take a look at the Settings->Security section where you will find Users along with some other items that moved: Teams, Security Roles, Business Units, Field Security, and Access Team Templates. Some new features can be found here as well, including Hierarchy Security and Positions. Both of these will come in handy for better accommodating things like selective access for regional or departmental management teams.


You can use the following link to sign up for a CRM 2015 online trial today:

You can download the Microsoft Dynamics CRM Server 2015 files here:

Excessive IE Add-ons PSA

I’ve seen an uptick in the number of Internet Explorer 7&8 Add-on related support issues for Dynamics CRM.  Not sure what’s causing the spike, but I’m getting the word out so you can take some preventative measures. 🙂  Issues can surface in many ways, including:

  • Record windows not opening at all
  • Record windows opening but only partially loading
  • Wonky behavior when trying to change text in fields
  • Goofy pop-ups and error messages when saving a record
  • Unexpected impacts on the user experience (script oddities)
  • General slow responsiveness of the application

If your web browser looks like this….

Internet Explorer window with countless toolbars

Eep! [image via reddit]

…you will want to start removing (or at least disabling) these.

Microsoft has a detailed FAQ that covers details on how to deal with these, and how they may have gotten there in the first place.

Outlook Ribbon Missing After CRM Plug-In Installation

I installed the CRM Outlook client on my latest laptop in preparation for a demo, and I ran into a variation on an issue some folks see after installation.

It’s amazing how much I’ve come to rely on the ribbon…and Outlook just seems sad without it.

There’s an official Microsoft KB article explaining a registry update that should take care of the issue.  The only trouble for me is that I didn’t have the “2.4” folder they specify in the KB.

The essence of the KB is that the ribbon may not show up if there are multiple folders in this particular registry path.  I saw 2.5 (which ties to office 14, AKA 2010) and 2.7 (which ties to office 15, AKA office 2013…which I don’t have installed).  So….I deleted the 2.7 folder and restarted Outlook.  That did the trick!  The KB will probably need to be updated as I doubt I’ll be the last person to run into the issue.

Worked for me but I make no guarantees when it comes to registry edits.  As always, be careful with modifications to the registry (you can cause more damage than good if you’re not).

Using Excel to Easily Coalesce Data

Let’s imagine you’re working with a list of Contacts that lists the company that they work at, doing a little clean-up before it gets used.  Only some of the Contacts have an address listed, but they all have a Company address listed.  This needs to be updated so each Contact record has an address.

Raw list with scattered contact addresses

I’ve seen it a hundred times (or in some lists, a hundred thousand times)

In this case, the business requirements are:

  • We need to have one address on file for each contact
  • If we have that specific contact’s address…great, use that
  • If we don’t have a contact’s address, use their Company’s address instead

Doing a simple Copy/paste could be your friend if the list is only a handful of Contacts long…but this can be tedious if you’re looking at dozens (or more).

I was doing something very similar to this for a client recently.  My go-to tool for this is Excel…it really makes this problem simple to solve.  Come to think of it I use this same concept in a lot of different places when doing data prep–so I’ll run with this example, but recognize that the same method can be used elsewhere in Excel.

OK I’m interested, what do I do?

Fortunately, the requirements above give us exactly the direction we need.  We only need one address for each contact, and each row has as either one or two.  We know that one address wins out (the contact’s address) if it’s there.  So from a list standpoint, we need to do the following:

  • Devise a systematic way to determine the correct address
  • Choose the correct address for each contact
  • Eliminate the extraneous data

Accomplishing this isn’t too much work, but it does involve an Excel formula that’s going to look like Greek when you first see it.  We’ll get there in a second, but indulge me for a slight diversion.

When working with a list of data, my best practice in Excel is to keep the source data as pristine as possible.  This means I don’t like to add/delete columns in the original list.  This ends up being important later on…when somebody comes with an updated list, or a slight variation of what rules to use when identifying the desired data.  If you’ve made your changes directly in the original workbook it becomes much more likely that you’ll have to start from square one, whereas my method allows you to more easily sub in new data or change one of the underlying rules.

To accomplish this, I’m using two Worksheets (tabs) in one Excel Workbook (file).  “Raw List” (the raw list of data) and “Final Product” (where our modified version of the data will go).  When you see formulas such as =’Raw List’!C3 that really means this cell should equal the cell C3 in the “Raw List” worksheet.

Hopefully that little explanation will keep this next screenshot from looking like total hoodoo.

Excel Screenshot

Don’t run away yet!

We’re going to use this formula for each address field (Street 1, Street 2, City, State, Zip).  We’re also going to make the assumption that if the “Contact Street 1” field is blank, that it is not a valid address and the Company address should be used (make sure this is a valid assumption based on your situation :)).  This translates to “If the Contact’s Street value is blank, use Company Street, otherwise use Contact Street“.

Adding the visual context in Excel:

Excel Formula Diagram

Sweet, now we’re cooking.  Next, we want to use this same formula for each of the rest of the Address fields.

It looks so purrrrdy….

Note that when we’re checking the subsequent fields like City, State, etc, we’re always checking the Contact Street value.  This is important because we don’t want to use parts of both addresses…we want the whole contact address or the whole company address.

At this point, we’ve done the most complicated part.  The other fields (like name, company name, etc) don’t need a funky formula, they just need to be identified and added as columns in the data set.  You can take some time to review how this is done by downloading the Excel file I worked on, which has all of the formulas preserved on each of the two worksheets.

Great, so what’s next?

From here, there are a few common things that I’ll do as next steps:

  • Save results to a separate file, then save it as a new file.  This is a great way to force only the “final” version of the data is available moving forward.  A basic copy/paste has some problems since the formulas reference the original data set (and would start showing errors).  Below are two common approaches.
  1. One option for doing this is to do a copy/paste values into a new workbook.  This is great when you want to ensure there are no references to the original set of data
  2. An alternative is to copy the entire worksheet to a new workbook (by right-clicking on the worksheet name).  This will also update the formula references to look back to the original file

Note that either of these options is acceptable if the new file will be saved as a .csv file, since Excel will remove the incompatible features (formulas) when you click Save.  A .csv file is great if you want to import the data into Dynamics CRM.

  • Clean up the original workbook, making it less potentially-confusing to the next person to touch it.  Below are a couple of clean up ideas:
  1. Hide the “Raw List” worksheet (tab) so it isn’t selected by accident
  2. Freeze the column headers in the Final Product worksheet by clicking Freeze Panes->Freeze Top Row on the View tab
  3. Protect the list from being accidentally modified by clicking Protect Sheet on the Review tab

Keep in mind, there are many other ways to accomplish this same task.  If there’s another method you’d like to share, feel free to do so in the comments.

Basic List Prep in Excel – Splitting A Full Name into components

While it’s easier to import data to Dynamics CRM using the data templates, prepping that data can take a little work.  One of the most common things to deal with is splitting a “Full Name” from a source file, which needs to be imported to CRM as “First Name”, “Middle Name”, “Last Name”.

Let’s assume the source file uses the format of “[Last Name], [First Name] [Middle Initial]”.  This makes it just a little too complex to use the Text-to-Columns feature in Excel (but note, if you’re dealing with a basic “Last, First” format, keep it simple and use Text-to Columns).

Rice, James P

Easy enough to do by hand…but what a hassle if you’re doing a thousand records or more.

Our solution?  Build 3 simple formulas to handle that manual work.

Excel Formulas

Looks like gibberish, right? Read on for an explanation

Like Billy Blaze, I find it’s easiest if we break things down.

Start with the Last Name (Column C)

We know that the last name starts at the left of the cell:


English:  Grab some characters from the left-hand side of A2.  How many?  One character behind the comma, so go find the comma in A2, then go back one character.

Pluck out the First Name (Column D)

This part is a little trickier, but not too much.  We can’t use the left() function any more since it’s in the middle.


English: Grab some characters from the middle of A2, starting 3 characters after the last name.  How many should we grab? The total length of the Full Name, minus the length of the Last Name, minus four characters (2 spaces, 1 comma, and 1 Middle Initial)

Grab the Middle Initial (Column E)

This one’s the easiest to decipher…


English: Grab some characters from the right-hand side of A2.  Just 1 this time.

With those three formulas, here’s what we end up with:

End Result

Looks much prettier now.

The rabbit hole goes deeper

When you’re sent a file to work with, it’s pretty rare that names fall into a perfect little “Last, First MI” format.  There’s a few ways to deal with this.  I’ve put together a workbook with this and a few other examples of splitting up full name data, which you can feel free to thieve from me.

  • First MI Last
  • Last, First [optional MI]
  • First [optional MI] Last

These cover a few different methods for carving up the data, but are by no means exhaustive.

Note, it’s important to know your data that you’re starting with.  Take some time to ask some questions:  Are all of the names in the same format?  How should a record be handled if the name is missing?  Is there funky CaPITAlizAtion that needs to be dealt with?  Does anyone have two middle initials, or maybe a space in the middle of their name?  Picking through these issues is often the most time-consuming part of prepping a list of data.

I’m always tempted to try to write some “super formula” that is so smart it can handle any case you run across…but remember, if there are only twenty records where there are two middle initials or a space in their first name, it’s often quicker to do those twenty by hand and use a simpler formula to help out with the rest.  You’ve been warned 🙂

Once you’ve split the name into component parts, you can copy/paste these columns into a CRM data template and import the results!


CRM Report – Removing HTML tags from an Email Activity Detail

I’ve been working with Dynamics CRM reports quite a bit over the last few months.  Most of the work has been using the BI Dev Studio (BIDS) in Visual Studio.  It definitely falls into the artful science category for me, with flavors of Excel, SQL Server, and even Publisher when developing a report.

In the case of displaying Email activities, specifically the body of an HTML email, the art takes a decidedly sad turn.

Simple HTML-formatted Email

Yes, this seems like a nice basic email. Nothing fancy going on here…

Okay, let’s see what that looks like in a simple report that shows a summary of email messages….

HTML tags show up in report

Gah, what happened!? It seemed so harmless…Text and a little image.

This is useful for…nearly nobody.

Matrix Code

Mr. Anderson, maybe you understand this…

There are many ways to try to tackle this…ranging from CRM plug-ins, to complex report design, to, well, something a mentor of mine tipped me off to.


This gets used in the report design as an expression, replacing the normal field reference in the report design.  It uses a basic utility that strips out the HTML leaving only the plain text behind.  Okay, if that sounded clunky, a picture is worth a thousand words:

HTML vs Plain Text

Ahh, now that’s much better.

There are certainly more elegant ways of doing this, but if the key is to provide easy, readable email contents in a report this sure foots the bill!  From a user perspective, to see the full HTML version, I like to add in a clickable link to the email that pops the CRM Email Activity record.

I picked up a little tidbit while working through some applications of this:  If you try passing a null field using this utility  it returns an ugly little #Error instead of a blank string.  Also, SSRS will still throw the #Error even if you’ve included an IIF statement in the expression to make sure there’s a value before calling the utility.  Below is a little workaround that gets the job done.

Microsoft.Crm.Reporting.RdlHelper.HtmlUtility.RemoveHtml(field & “”)

If anyone knows an easier way to do that, please drop the details in the comments section.

Again, there’s surely a prettier way to handle this, rendering HTML in the report or including some basic formatting, but this is pretty lightweight and works well when printing a basic list of emails with the body text in a report.

As far as I can tell, this utility is an undocumented feature of CRM, so quite technically speaking it is not supported by Microsoft and is something that they could yank out in a future release without notice.  That said, this is the method used in the out-of-the-box CRM reports to strip out HTML tags.

Objective: Strip out HTML tags from an email message when displaying in a CRM report
CRM Version: Undocumented feature. I’ve tested with CRM 2011 through UR8
Valid as of: 9/10/2012
Permissions Required: Create/Write reports.

UPDATE 9/11/2012:

I received a question regarding a problem someone was having when importing a report that leveraged the expression above.  After a little troubleshooting, the answer was that the report lacked a reference to the following Microsoft assembly:

Microsoft.Crm.Reporting.RdlHelper, Version=, Culture=neutral, PublicKeyToken=31bf3856ad364e35

Vanilla CRM reports and those reports created using the built-in CRM Report Wizard include this reference automatically.  However if you build your own report from scratch, you’ll need to add this manually.  With the report file open in Visual Studio BI Dev Studio, hit the menu item at Report->Report Properties…  Next, click Add and paste in the reference to the assembly and click OK.

Report Properties Window

Way to go, Bobby!

Thanks for the question!  Other comments and questions are welcome.