Aug 15, 2011

Taking Your Web App International

A couple weeks ago, it was time to renew our E&O insurance policy. Our provider asked us to give them a breakdown of how much business we do internationally. So we scanned our database of +900,000 users and printed out a report. We were shocked by what we saw. Turns out we have customers in 158 countries. Who knew?

I mean — don’t get me wrong. We built MailChimp in 2001 thinking/hoping people all over the world would use it one day. I mean, it is a web app and all. It was just never a big "international strategy" or anything. Just a web app. Over the years, countless "experts" advised that if we wanted to grow internationally, we’d need to hire sales people and setup offices in different countries. We’d just look at them like they were crazy. Why on earth would we spend the money to open an office somewhere, so that a sales person could get a few customers paying us $10 per month? How’s that scalable again? I can understand if MailChimp was some kind of really big expensive enterprise bloatware (but even then we’d probably try to make it self-serve bloatware).

Instead, we just focused on making a really powerful app that’s fun to use. And we’re constantly and curiously working on features to help our international customers. Some have worked, and some have flopped. Here’s the rundown, for anybody in the same situation…

Translated opt-in process:

All of our users, no matter where they’re from, can speak English. We’ve never had to translate the entire web app for them. But they’re often setting up MailChimp so their customers can sign up to their lists. And their customers often don’t speak a word of English. So it’s important that our opt-in forms can be translated to their language. Starting in 2008, we’ve translated our entire opt-in process to +30 different languages. This has worked decently well, though there are tiny bits and pieces (like some buttons and some tucked away screens) that keep popping up un-translated. Some users have asked us why we don’t just allow them to totally translate the entire opt-in process exactly as they please. Technically, you can use our API to control much of the opt-in experience. But as for our built-in signup process, we’ve historically maintained tight control over the content in order to prevent abuse (everything gets abused). But as our abuse prevention gets smarter, we can open up more processes in a smart, controlled manner. We making plans to open up the opt-in process so it can be translated by our users. You can expect those changes in the next couple months.

Meantime, see: How Do I Translate My Signup Form and Opt-in Process?


Google Translate Merge Tags

In October 2008, we announced our Google Translate merge tags, which lets you insert "translate this" links into your email campaigns. With one click, your readers can read a translated version of your email in their browser.

We also added Google Translation options to our built-in email archive toolbar.

Localized Humor

In March 2009, we added some localized humor to our geomaps. It’s a delightful surprise for our customers when they hover over their country and see a little of their local slang. And it was fun getting feedback from all our users for this little feature. On this note, we also added a few "additional" languages to our translation options, including:

  • Chimplish
  • Redneck
  • Elmer Fudd
full list is here.

Teeny-Tiny Flags

To help our users understand how many international subscribers they have, we added some fun little flags to Chimp Chatter on the Dashboard. The flags are under the avatars, and are a quick reminder of where all your readers are coming from:

Multilingual Webinars

Just as we’ve always felt international sales teams aren’t efficient or scalable, we’ve never felt the need to host local sales seminars and events. Not when you can host a webinar and teach hundreds of attendees online in one fell (and fun) swoop. So a while back we formed a webinar team, built a whisper room, and started holding daily webinars. Slowly but surely, the team has been introducing webinars in different languages (I recently walked past the Whisper Room and swore I heard a German session taking place). The challenge here will be dealing with timezones, so most of these sessions are pre-recorded for now.


Pre-populated Country Fields

This one might seem obvious and simple now in hindsight. Back when we launched our visual signup form builder in early 2009, we thought it was pretty cool how you could build something like a drop down field. Heh, those were the days. Soon after, people began demanding pre-populated form fields, because it was a complete P.I.T.A. to build all 50 US states inside your dropdown. And it was a real pain to build all ~200(ish) countries. So we launched pre-populated country (among others) fields in July 2010. We also broke the country field out so that it could be added to your forms separately, instead of inside a big giant "address" field.


Autotranslate Campaigns & Signup forms

This was by far our most controversial feature. We built it out of love, but got sooo much hatred in return. With this option enabled, whenever people use your opt-in forms to sign up for your list, we can detect their browser, and we can detect the default language setting for their browser. So if their language is Korean for example, we can assume that Korean is their preferred language. So far so good.

Then, when you send your campaign, we automatically translated it to Korean using Google Translate. Of course machine language translations are never perfect, so recipients could always view the online version of their campaigns to revert back to the original language. Cool huh?

No. I’ve never received so much hate mail. Especially from the Germans. Es tut mir leid?

Which is an excellent segue to…

Straker Human Translation Integration

We’ve partnered with developers on all kinds of amazing integrations, including this "human translation plugin" from Straker. They’re a company that uses a very unique combination of machine and human power to translate content very efficiently. Their integration with MailChimp allows you to sync over your campaigns, have them translated to multiple languages (up to 100 languages and dialects), then saved back into your MailChimp account. In case you missed the news, here’s the press release. My meeting with the guy from Straker was one of my most memorable. He’s spent a ton of time in both Australia and Ireland, and had developed a very unique accent to prove it. It’s a great integration, especially for larger companies looking to consolidate all their translation efforts (websites, email, everything) into one vendor.

2011: Time To Get A Little More Serious

Late last year, our international user base seemed to start growing really fast. As a result, we started to get a loooot more feedback about all the tiny little details inside our app that are just not that friendly for users outside of the US (we’re even sensitive now about saying "outside the US"). For example, there were a few places in our app where we asked for ZIP codes or "State" or other things that some countries just don’t use. We also ran into situations where entire countries weren’t even listed in our contact forms. Things like this can ruin the experience for people, and that bugs the heck out of us.

We also started to attend more conferences and events around the world, and started meeting our customers. Time and time again, they told us, "We love MailChimp, but you’ve got this one little annoying thing for customers who aren’t in the US…"

So we hired someone in London. Not to act as a sales person or customer service person, but as a UX researcher for our international users. She’s been hosting small meet-ups and conducting usability studies with our customers to find out how they’re using MailChimp, and to collect general feedback. She sets up a laptop and records customers using MailChimp to do their work. Her videos are fascinating. Watching a customer in Amsterdam drinking a beer while using MailChimp and talking about how he "likes the vocabulary of MailChimp" and then points out where he gets a little confused or frustrated is extremely valuable. Here’s one of the first changes we made as a result of our researcher’s work.

Local Currency

We’ve also had to invest in changing our credit card processing provider. The one we were using was absolutely great, but it was time to move on. This has been a bumpy road, to say the least. The first provider we spoke with had what looked like an awesome product. Their sales team showed us all kinds of great functionality, so we were ready to get started. After signing an agreement, we became aware that the demo they gave wasn’t entirely true. Some key functionality was missing, and wouldn’t be available until a later release. Talk about infuriating. This seriously impacted our timeline, so we moved on and found a new provider. To make things more fun, the "bait-and-switch provider" is now trying to demand  a large "unauthorized termination fee" from us. Kind of a pathetic business practice if you ask me, but I’m a stubborn SOB and plan to fight back just on principle (even if it costs me more than the original bill). If you’re looking into credit card processors, my advice is not to sign any contracts or believe any sales people or even engineers, until you’ve been given access to their API. Anywhooooo, we’ve signed on with a new service (from a very large bank) and have been testing them for the last month with all our orders. We’re good to go, and will be introducing localized currency billing very soon.

It’s interesting the kind of changes we have to make, just to the transactional email receipts. Users in some countries require the word "invoice" instead of "receipt" (which would confuse US customers who’ve already paid) while others require VAT info, and then there’s the exchange rate at the time of purchase, the exchange rate at the time of refund, and on and on down the rabbit hole:


Where There’s A Will…

We’ve also hired Williams Castillo (cuh-STEE-yo for the unworldly blokes like me), a programmer and long time MailChimp customer from Venezuela. If you’ve ever participated in any discussion with us in the Jungle, the API forums, or our blog, you’ve probably bumped into Will. One day, he approached us with a question about our API. We have a few limitations to our API in order to prevent abuse, and his questions were centered around those limitations.  At first, his questions raised some red flags here. So we talked to him more, and offered to fly him over to Atlanta to discuss in more detail (mostly because our curiosity was killing us). Turns out he was basically building a Spanish version of MailChimp on top of our API, and then reselling it to his customers in Venezuela.  He gave us a demo, and we were so impressed we gave him an offer to join us full time in order to help us build out MailChimp for our Spanish-speaking customers around the world. He and his family just moved here last month, and he’s diving in to the MailChimp code as we speak. Here’s Will, on his first day here:

We’re so proud to have him join the MailChimp family (and to have actually completed the giant pile of paperwork from the government), we celebrated by catering lunch with burritos. Yes, I realize burritos have absolutely nothing to do with Venezuela, but it seemed closer than Korean tacos. Mmmmm, Korean tacoooos.


"Why Not Just Crowdsource It?"

I’ve received a lot of advice and questions (and offers) from people who think localization is a really dead simple process, and all I have to do is crowd source the translation. When I tell them I prefer to handle this in-house, they ask me why I’d spend that kind of money. My short answer is, "Um, because I care?"

Protecting the Brand
Okay, don’t get me wrong. If all we had was a content site, I might be more willing to "just crowd source" the translation. But we’ve got a full blown web app here. I’ve often said it’s more like an entire suite of web apps (we’ve got design tools, database management, reporting, word processing, image hosting, billing, testing tools, and on and on). And maintaining MailChimp’s brand is kind of important to me. Our little mascot’s personality might not translate perfectly to every language, but our mission to make work a little more fun should always be evident. There’s no way we’d trust all that to some 3rd party. There will be some places where we can use tools and crowd sourcing, but it won’t be our primary method.

Protecting Innovation
We’ve consciously delayed localizing our app for so long because we really, really like innovating. Fast. In my experience, hitting the "pause" button to wait for features to be translated is extremely frustrating. Until we got a handle on our growth curve, and got our dev cycle down to a very good routine, I think it would’ve been suicide to jump into that internationalization rabbit hole (here’s that link again).

Protecting the Email Ecosystem
There’s also the abuse issue. We care a lot about the email ecosystem. We invest a ton of money and time protecting it. The last thing I want to do is open the flood gates for international users to send their campaigns before we have the ability to properly monitor their outgoing campaigns. Our internal abuse monitoring dashboards (also an entire suite of apps) has to be modified (not to mention the abuse team would need to adapt accordingly, and add multilingual staff). This is going to take some serious work, but as they say, "no pain, no gain."

We’re Big in Turkmenistan

When we started MailChimp, we always thought globally. We never even tried to "own" the local market (Atlanta). Driving down the street to pitch MailChimp to a local business seemed like an insane waste of time and gas, when companies could just hop online and pay us $10 with their credit card. We saw some of our competitors hiring big expensive sales forces and getting enterprise clients that paid tens of thousands of dollars per month. It was tempting to go down that path (and would’ve looked really impressive to family and friends and all), but we always said "we need to think bigger." We think it’s much bigger and much more scalable (ahem, and challenging as it turns out) to have tons of users paying you small amounts instead of a handful of users paying you large amounts. Instead of investing in a giant sales team, we invested in making our app better (also our API). It’s hard work. I haven’t left my office in 10 years. But it’s totally worth it when you look at the numbers and see you’ve got customers as far away as Turkmenistan and Uzbekistan, and I never had to hop on Skype to talk to them about being their "email marketing partner." Not bad for a little Atlanta-based company. Hell, just between you and me — I don’t even have a passport.