How we decreased sign up confirmation email bounces by 50%

Kicksend uses the tried and tested pattern of sending our new users confirmation emails to verify their identity. With that, there will always be emails that aren’t delivered successfully, which we care about a lot.

A bounced confirmation email means that our new user wouldn’t have been able to activate their account. So they’ll either have to either sign up for a new account, or contact us to change their email address. These are steps we don’t want to put any user through.

So we recorded and setup detailed notifications for every email bounce, to make sure that we are always aware of what’s happening (thanks Mailgun!). And we soon started to see patterns.

People would misspell their email addresses and be unaware of it, resulting in a delivery failure and a lost user. And it got even more interesting – most of these invalid email addresses were a result of a misspelled domain; “hotmail.con”, “gnail.com”, “yajoo.com”. A clear opportunity for improvement.

Example


Taking a leaf from Google, we created a quick plugin that suggests the right spelling of misspelled email domains. After launching it, we saw bounces drop by 50%! Little prompts to guide the right user behavior always goes a long way. Give it a try.

And we have open sourced it. Mailcheck.js, the jQuery plugin that powers our spelling suggester, is now available for forking on Github: https://github.com/Kicksend/mailcheck. Enjoy!

Catch me on Twitter @derrickko.

38 Comments

  • Reply March 20, 2012

    Bob Greeson

    Why do you need anyone’s email in the first place? Why can’t they use your service without an email address?

  • Reply March 20, 2012

    Corey Collins

    Thanks guys!

  • Reply March 20, 2012

    Austin Butler

    Fantastic little tool. I will definitely use it. I immediately looked in our site’s database and noticed a @gamil.com on the first page of results! One suggestion I would make is adding ymail which is one of the more common mail domains. Your string test thinks it is possibly a misspelling of gmail.

  • Reply March 20, 2012

    Julian webb

    Have you tested to see if it would be viable to have it remember the part after the “at” sign so that it can be checked for other people? Like if I was to start pandomailorz.com as an email system it would help people who put it in a pandamailorz.cim?Just a thought, I haven’t looked at the code yet so I don’t know if I am asking for something that is already there.

  • Reply March 20, 2012

    MohamedAttahri

    Very nice tool! We use the email address of the user signing up to guess and pre-fill his company name and address.We kept looking for a way to pre-fill forms are quickly as possible and came up with a very simple idea. A static file similar to robots.txt or favicon.ico that would contain static data about the business owning the domain. We’d be able to always have access to up to date info, logos, etc. from the businesses directly.More info here: https://www.greendizer.com/blog/open-domain-directory/We're looking for some support and feedback.Thanks!

  • Reply March 20, 2012

    Austin Gulati

    @JulianOr, even, check the TLD for things like “met” and “cim” and so on no matter what the full domain name is.

  • Reply March 20, 2012

    David Tran

  • Reply March 20, 2012

    Adnan

    @Austin GulatiPInging the Mail Server for validating could be a costly round trip for no reason.

  • Reply March 20, 2012

    Austin Gulati

    @AdnanNot what I meant, sorry if I was unclear.I mean a system where yourdomain.cim is invalid but yourdomain.com is valid (and yourdomain.net, yourdomain.info, [insert your favorite valid TLD here]). So checking for typos just in the TLD part of the domain of the email address regardless of what the whole domain is.

  • Reply March 21, 2012

    sidviswanathan

    Cool stuff. If I put on my product hat, I think this brings up a larger discussion around what types of services even need to send a confirmation email. I would much rather use that email opportunity for a different call to action by the user than just confirming identity. But I will agree this is very product-specific.

  • Reply March 21, 2012

    JosefStepanek

  • Reply March 21, 2012

    jasminelopez028

    In order to avoid Scams, one should be very careful in all their transactions. Every requirements should be put into consideration, should be cleared and verified. Most especially if you are trying to get short term loans, you should first study all the terms used in the said transaction before venturing on it.

  • Reply March 21, 2012

    anandgeor

    Nice concept. We’ve completely done away with email registrations. Just get the user to like your Facebook page or follow you on twitter. That takes away the additional burden of verification, cause someone’s already done it for you. No issues with promotion emails going to the spame folder. Facebook/ Twitter don’t have them.

  • Reply March 21, 2012

    kenechukwuuu

    Excellent idea. ! I just would like to give a huge thumbs up for the good information you have got here on this post. I will be coming again to your blog for more soon. Thanks for this post .. EX0-101 EX0-102 EX0-103

  • Reply March 21, 2012

    abhic

    Awesome! Thanks for sharing.

  • Reply March 21, 2012

    tom

    awesome case study and thank you for making this project open source!

  • Reply March 21, 2012

    nate vaughn

    Agreed. Thanks for throwing this on @github. I haven’t peaked at source yet, but does it block submission if there is a recognized typo pattern?Looks like you have some spam comments getting in.

  • Reply March 21, 2012

    isbntextbooks

  • Reply March 21, 2012

    Vivian

    directly implemented on prispy.com :) thx a lot

  • Reply March 22, 2012

    Samuel Lavoie

  • Reply March 22, 2012

    Kito

    Great script!!Implemented on pinggers.com and works like a charm :)

  • Reply March 23, 2012

    JustInMind

    Free tool to create clickable wireframes for mobile and web appshttp://tiny.cc/Free-Prototyper

  • Reply March 23, 2012

    Alistair

    I met with Experian QAS about their email address validation product recently and it looked very cool. It goes a whole lot further by checking the domain is valid, that it has MX records set, has mail servers running and can even do mailbox verification for a lot of the major email providers as well.I provided them a sample of our email data to run through their software & it would have improved our valid email addresses by just under 2%. What was interesting was that for the various sample email sets I provided, between 45-65% of the errors were mailbox errors.Anyway, food for thought if you want to step it up another notch in the future.Al.

  • Reply March 23, 2012

    Jonas Skoglund

    Ooooh, great stuff. It will be handy everywhere you want your users to enter their e-mail adress. I’ll call this script Form validation 2.0.

  • Reply March 25, 2012

    ximyu

  • Reply March 25, 2012

    Mark Apple

    I imply a system the place yourdomain. cim is invalid however yourdomain. com is legitimate (and yourdomain. net, yourdomain. info, [insert your favourite legitimate TLD here]). So checking for typos simply within the TLD half of the area of the e-mail tackle no matter what the entire area is.

  • Reply March 26, 2012

    Jeff Vincent

    Thanks guys! A version of this is now live on Wistia’s trial creation page (http://wistia.com/trials/new). Since we only have the one field, I added a keyup on delay (so if you stop typing for half a sec, I’ll getcha a reco). Lot’s of fun to play with, and a good delighter for our customers! thanks!

  • Reply March 28, 2012

    Adnan

    I attached the code with onChange event of my textbox but nothing happening, from where it would fetch suggestion. I just copied and pasted the code given in GitHub page

  • Reply March 28, 2012

    Adnan

    Ok I solved it. I had to “Explore” the suggestion Object, was not passing the correct parameters.awesome!

  • Reply March 28, 2012

    Adnan

    Ok I solved it. I had to “Explore” the suggestion Object, was not passing the correct parameters.awesome!

  • Reply March 28, 2012

    Adnan

    Ok I solved it. I had to “Explore” the suggestion Object, was not passing the correct parameters.awesome!

  • Reply March 28, 2012

    Adnan

    Ok I solved it. I had to “Explore” the suggestion Object, was not passing the correct parameters.awesome!

  • Reply March 29, 2012

    adel aaji

    Please adnan could you tell me what this object it’s return to me [object object]how can take the suggestion email:)

  • Reply March 29, 2012

    Adnan

    @adel aajisuggestion object has paraemters like:{ address: ‘test’, // the address; part before the @ sign domain: ‘hotmail.com’, // the suggested domain full: ‘test@hotmail.com’ // the full suggested email}so in order to show suggested email, all you need to refer as: suggestion.full and it will show you suggested email

  • Reply April 13, 2012

    Unlock

    Great script though!

  • Reply April 24, 2012

    Philip Davis

    Really clever idea! The demo on your login page works very smoothly.If you don’t mind me asking, what were the bounce rates before and after? (i.e. 50% reduction sounds great… but 50% of 0.002% is pretty insignificant)Also, a minor usability note… once the user clicks the did-you-mean link, consider setting focus to the following text box–the password field in this case.

  • Reply August 2, 2012

    Marco Berrocal

    Man this is AWESOME stuff. This really makes the user experience better. Can’t believe how nobody has come up with something like this before.

    Great stuff!!

  • Reply October 16, 2012

    dicke Titten

    great and awesome tool thank you guys that makes my life much easier

Leave a Reply

Leave a Reply