As part of a recent data integration project with a client, we did a deep dive into the data architecture in MailChimp. Without giving away their secret sauce, I can say they did an amazing job of creating contact records containing just the right amount of data, no more, no less – normalized! Here is what I found.
Within the web-based messaging platform MailChimp, clients can contain all of their contacts within a single list, called a Master List. The Master List has many benefits, including that each email address can only be in the list once – built in de-duplication, which is always a win!
Now of course, the Master Lists can be segmented through traditional demographic ways – let’s have a segment for small to medium businesses, let’s have a segment for our midwest newsletter subscribers and so on – but MailChimp also offers the capability to subdivide a Master List into subsets known as Groups (Interest Categories) and Interests (Master List Members who have a specific Interest in common). These Interest lists are the mailing lists that admins can use to send out their messages and conduct their outreach.
And this is where it gets really exciting, from a data perspective. The Groups in a Master List can only contain Interest lists, they can’t contain Members. In short, Groups are just buckets for the Interests lists. However, in examining the record structure of a Member record, there is no Group ID associating Members with Groups! Instead, each Member has a Master List ID, and an array of Interest list IDs, some of which are True (Subscribed) and some of which are False (Unsubscribed). And that’s it!
When working with MailChimp Member subscription records through the MailChimp API, we only make calls to a Master List ID and an Interest ID, because that is all we need to extract and manage specific list Members. By tradition, drilling down to a specific record involves querying for the master table, the next subordinate table, and so on until the right record is reached. By containing only the essential IDs in a Member record (the Group ID can always be derived, if needed), the MailChimp data architects streamlined the data and brought the essential Member record details to the surface, making the data quick and easy to use when managing subscriptions and pulling lists. In our case, we were able to use Dell Boomi to synchronize MailChimp lists with the data in an on premise Filemaker application by only passing two parameters, extremely economical.
With so many software as a service options coming online each year, it becomes more and more important to know which apps are designed from the ground up to play nicely with others. APIs and other data integrations between cloud services are where the value lies these days, and a prospective vendor’s plan for integration is a key consideration you should use when evaluating their services.