xcelmail may solve a lot of problems for commercial users of email services like Mailchimp, Constant Contact, Mandrill, SendGrid. I have people in companies who have all of their client/customer informations stored in spreadsheets, however I am not sure if any email client out there performs a fully featured spreadsheet to email solutions, this is why I hacked together xcelmail.

What it does?

Using xcelmail, you can upload your spreahsheet ('xls', 'xlsx', 'csv' or 'ods') to this application. After uploading your spreadsheet, you can select the email's column name and the name's column name (pretty basic, huh?). This is where it gets cool, after select the email and name field, you are given an option to create a "Summary Table". A summary table is an HTML table which you can draw using the spreadsheet's values and is personalized for each client. Basically you can create a table using rows from Excels. On top of this, you can use all the values of every column in your email. Each column header is converted into a shortcode, which can be used inside the email message.

Handling duplicates

It's quite possible that the excel spreadsheet may have duplicates as well (more than one row for a particular user), but with different values (like same email/person has more than one row), in that case, you don't want to send emails twice, so when you create an email, all the fields for a single email get crunched together. Also, the summary table will then have more than one row. Also, first row is used for shortcodes if the user has multiple rows.

APIs used

This application is written on php (yea, yea...), so it had wide API support. I currently have fully integrated it to work with Mandrill and SendGrid, and kinda pseudo integrated with Constant Contact. Code for all of them exists, you practically have to just comment/uncomment a block of code based on what you want to use.

PS: I wrote this documentation thing 7:14 in the morning when I was kinda sleep deprived, ignore the stuff which doesn't makes sense and just try to meet me.

Share this project: