I recently discovered that our CRM system has built-in reports for bounced emails. In other words, the system can automatically tell you which customers and prospects have invalid email addresses in your CRM records. However, there’s no way to do anything with these reports. If you want to avoid sending emails to those people in the future, you still have to go into each entry and manually delete the email address. I did a bunch of that this week, and I can assure you it’s no fun task.

Clearly, the programmers didn’t think through the logical next step that users would take after seeing the list of bounced emails. And because of this oversight, what should be a great new feature (the bounced email reports) feels incomplete and a little bit insulting. In other words, the feature just leaves customers wanting more. So much so, in fact, that I wonder whether the overall experience would be better if the feature had never been added in the first place.


Let’s say you’re a mobile phone provider. Many of your customers are companies with 10-50 employees. In most cases, one of the owners or managers made the original decision about which phone provider to use, but then assigned the routine task of receiving and paying the bill each month to someone who works in accounting.

As months and years go by, you want to retain the account and keep the decision maker informed about new products and services. But how do you reach them when they never see the bill or other correspondence that you send? Here are a few ideas:

- Encourage the bill recipient to tell their co-workers or boss about the latest promotions. (Simple, but probably not very compelling.)

- Try to schedule quarterly or annual account reviews where you offer to analyze how they’re using the service and point out opportunities for added benefits. (Comes across as pushy, and very labor intensive if people accept.)

- Provide a special link that contains info on the latest products and promotions, and let the recipient know that they’ll receive a $5 discount on the bill for every person in the company that actually visits the link, up to some reasonable amount. (Takes some work to set up, but potentially very effective.)

I like the last option the best, since it provides a financial incentive for the person who reads the bill to spread the word to the right people in the organization — and makes them look good to their boss for saving money. Regardless of the industry they’re in, I believe that many companies face the communication and retention problem I described above. Anything that helps break down those barriers is certainly worth a try. Whether or not customers perceive it as a retention strategy, they’ll certainly respect your efforts to stay in touch and serve them better.


If you’ve ever worked with the WYSIWYG content editors in programs like WordPress, you may have noticed that funky things happen if you make changes to the HTML version of the content. In other words, if you switch from the live preview over to HTML mode to insert or modify something, portions of your code may disappear once you save or return to WYSIWYG mode.

Now, I understand that certain types of HTML markup need to be edited on the fly to remove invalid code or preserve a structure that the WYSIWYG editor can display. My complaint is that these programs never tell you when they’re performing silent edits that make your code disappear.

To resolve this issue, the WYSIWYG editor should keep a log of each time it deleted or modified your HTML code, and show some type of message to notify you about it. That way, the user won’t be surprised when their changes disappear, and they can review which code was rejected so they don’t do the same thing again in the future.


With Chicago’s cold winters and rather hot summers, there are several months a year when getting to the grocery store can be quite a challenge. During the winter, you learn to look for the warmest days of the week, and go at mid-day when temperatures are more moderate. And during the summer, you seek out the cooler days, and try to plan your trips for the morning before it gets too hot.

However, going to the store first thing in the morning is easier said than done, since some stores don’t open until 9 am or later. This makes me wonder: why don’t grocery stores try opening earlier in the summer? It gets light very early each day, and the temperature can be a lot cooler at 7 or 8 compared to 9 am. Of course, this would only work if the store marketed the extended hours and reminded people that it’s easier to walk there and back when it’s cooler out.

I have no idea if this approach would drive enough extra business to justify the extra hour or two of operating costs. But it would certainly be an interesting experiment to try, especially during the hottest part of the summer.


Around 2 am on Saturday morning, my wife and I were awakened by a high-pitched chirping noise. It turns out that the batteries in our carbon monoxide detector were running low, and it wanted them replaced immediately. So, I thought I would compare this behavior to how some other products in my house alert you about low batteries:

- Alarm clock: Says “low battery”, or the screen gets dimmer until you figure out the message
- BlackBerry: Shows a low battery icon on the screen for a while, and eventually beeps when it gets critically low
- Nokia phone: Beeps annoyingly until you plug it in

There’s certainly a lot of variance here. The best practice seems to be a two-phase notification. First, provide a polite reminder that the battery is running low, such as showing a battery icon on the screen or sounding a periodic, moderate beep. Then, if the user still hasn’t taken care of the issue, you can break out the loud and annoying version. When you do this the wrong way, and come in with guns blazing as soon as the battery runs low, you’ll cost users a little bit of their sanity — and in my case, a good night’s sleep.


Using your credit card to pay recurring bills is a huge time-saver. Assuming you’re responsible with your money and pay off the balance each month, it’s much better than having to deal with all those small bills individually. But there’s one problem: whenever your credit card expires, you have to contact all those companies to update your info.

This makes me wonder: why do credit cards still have expiration dates at all? Surely the technology exists for issuing cards that expire in the year 2099 or something, thus freeing up customers from having to change their info all the time. Maybe shorter expiration dates reduce fraud, or provide an excuse for the card issuer to hit you with the full marketing pitch when the new card arrives. The benefits certainly seem dubious, at least from the customer’s perspective.

I’d love to see an option where you could choose a 5 or 10 or 20 year interval between renewals. Of course, that just lessens the problem without actually solving it. Perhaps the trick is for one of the card issuers to create a whole marketing campaign around “the card that never expires” and create the technology that makes it possible from the payment processing end. That’s a tall order, but I suspect whoever pulls it off would earn a whole lot of new customers in the process.


I often run into situations where data ends up being duplicated. For example:

- A contact changes companies, so they’re listed in our CRM system under both the old and new account
- A prospective customer contacts us by email but also fills out a form on our website
- A coworker and I both log the same email or event record under an account

In each of these cases, the only solution is to manually click a button for “Find Duplicates” — if the feature is even available at all. Considering how easily a software program can look for identical entries (e.g. by name or email address), the lack of automation and proactive assistance is rather pathetic.

Software should constantly be on the lookout for duplicate information, rather than making the user worry about finding it. And when extra copies are found (ideally during the data entry process), it should tell you about the duplicates and let you decide if you want to continue with what you’re doing or merge the records together. This leads to cleaner data and fewer housekeeping hassles, thus freeing up users to focus on more important tasks.


I recently saw a blog interface where certain buttons had been removed to make things look simpler. For example, when choosing the categories for a post, there are no buttons for Save or Cancel. You just click anywhere else on the blogging screen and the changes are saved. I was a little bit confused at first, but then I got the hang of it.

Is this type of minimalist design a good idea? That’s a topic for another article. But if you decide to strip out a common convention from your design, it helps to provide some instructional text to guide your users. Returning to my original example, the category editor could have some subtle text that says “When you’re done, click anywhere outside this box.”

Worried about the help text cluttering your otherwise minimalist layout? In that case, only make the text appear if the user has been idle on that screen for several seconds. That way, novice users will receive the help they need, while expert users get to enjoy the streamlined layout that you set out to build in the first place.


If you tell a customer that you’ll be sending a confirmation email, they’ll probably expect to get it right after the transaction is completed. After all, that’s how Amazon and other big sites do it: submit your order, and they send you a confirmation within 15 minutes or so.

However, I ran into one example where the site promised a confirmation, and days went by with no follow-up. Perhaps their system generates the confirmation message after some other event happens, like shipping a physical product or welcome packet. Whatever the cause, they need to set expectations properly, rather than leave customers guessing.

When people hear “confirmation email”, they assume it means a message is coming right away. So if your systems or processes can’t meet that expectation, just say so upfront. All it takes is a little bit of text on the thank you screen, e.g. “We’ll send you a confirmation email in 24-48 hours.” By providing this extra level of detail, you’re telling people what to expect — and they won’t think you screwed up by failing to send the confirmation instantly.


While signing up for a frequent flyer program, I ran into a confusing question. I wanted to opt-out of all the marketing communications, like emails and telemarketing calls. For email, it was easy: just change each email option to No. But when I got to the telemarketing section, I was baffled.

Here’s the text that appeared in the telemarketing area, after a long paragraph explaining what sort of telemarketing they conduct: “I do not want to receive special offers via telephone”. Ok, so I choose Yes, and that means that yes, I don’t want the offers. But right below that, I see the options for email, which I already marked No. Shouldn’t my choices look the same all the way down, either Yes or No for each section? Even after reading the telemarketing options a half dozen times, something didn’t feel right, so I ended up calling the company so they could make the changes on their end.

There are two takeaways here. First, when designing any sort of settings screen, you should phrase all the questions and settings the same way. Customers should be able to glance at the list and feel confident that they’ve turned any given option — or a whole group of options — on or off like they wanted to.

Second, avoid phrasing your text with negatives and especially double negatives. It’s a lot better to say “Do you want to receive email offers?” with a simple Yes/No choice, instead of something like “I do not wish to receive email communications” or “I wish to opt-out of email offers”. Sentence constructions involving “not” and “opt-out” take more time for people to process. By getting rid of these confusing phrasings, people will have an easier time choosing the settings they want, which means fewer complaints and lower customer service costs for you.