Thursday, November 18, 2010

How we restored a customer's lost email list

Sometimes I'm surprised by the creativity of our staff to solve customer problems.

Today we had a customer (name changed to protect their privacy), Pecan Films, that returned to JangoMail after being inactive for two months and not having sent an email campaign through JangoMail for over a year. When the customer reactivated their account with us, they logged in, only to discover that their main email list was no longer in the account.

What happened?

We recently put in a data purge mechanism such that email lists for inactive accounts are deleted if there hasn't been any email sending activity for over a year. The Pecan Films account met this criteria, and so their Email List was deleted from the system in the last two months.

Unfortunately, this was the only copy of their email list in existence. They had not exported their email list prior to deactivating their JangoMail account.

Digging for the lost data

I discussed with our sysadmin, and he mentioned that he had an old copy of the database that stores customer Email Lists on a spare server. The database was from September, which would have been right around the time when the Email List was automatically deleted due to account inactivity. The only problem is that the database that stores customers' email lists identifies a particular email list only by its internal numeric identifier, and not by name or by user account. A separate database actually ties the data in the first database to the user account to which it belongs, and the relevant data was also missing from this database, with no September backup copy on which to rely. So despite having the data somewhere in the huge database of customer Email Lists, we had no way of knowing the numerical identifier by which to find the email addresses.

Then, it dawned up on us that had the customer been using JangoMail's subscriber form generator, their web site may have the missing clue. So I go to (URL changed for privacy), find their Subscriber Signup Form, and am relieved that it looks like a JangoMail subscriber signup form:

And by viewing the source, I found this key line of HTML code:

This is the old version of the FORM ACTION tag for a JangoMail-generated subscriber signup form (the form generator has since been updated). So there was the missing identifier, right in the FORM's ACTION tag. With that in hand, we were able to pinpoint the correct database table, extract the email addresses, and restore them into the customer's account.

Lessons Learned

As a customer, you should regularly backup your email list data. We make it easy to do. Just click the Export List Data button:

If you're using JangoMail to connect in real-time to a database file, then make sure you regularly backup your database using the database's backup tool. All of your database files containing email list data, from Excel Files, to Access Files, to SQL Server databases, should be regularly backed up. With the advent of inexpensive Internet-based backup services like Mozy and Carbonite, it's easy and fast to implement. If you're using JangoMail with a web-based CRM system like Salesforce to send email marketing campaigns, you should use the export functionality built-into the CRM system to keep a local copy of your data handy.