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 thoughts on “How we decreased sign up confirmation email bounces by 50%

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. Adnan

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

    Reply
  18. Adnan

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

    Reply
  19. Adnan

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

    Reply
  20. Adnan

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

    Reply
  21. 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
  22. 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
  23. 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

Leave a Reply