We are working on a structure how to keep a database synced with marketing campaigns. We have our client, their existing software where their mailing list data is stored and maintained (Filemaker, Outlook, Address book, etc) and a CMS which runs their website with build in mailing list module.
There are scenarios where information is taken by hand (onsite visitors), online (through the website) and through mailing campaigns. There are examples in the CM help section which point to keeping some data synced, but it becomes more complicated as some databases will only have name & email while others will have address, place, phone, dob, etc, etc.
Our question leads us to a certain workflow, which we hope you might share..
Great question, and there is probably a lot of different answers depending on what works in your particular situation. If you have basically one central database, which you want to keep up to date with your Campaign Monitor lists, then the API is your best bet. You can have some custom code that updates data into Campaign Monitor and gets all the latest information back out into your database.
Dealing with things like Outlook address books is going to be trickier, because it will involve some manual work. One thing to keep in mind is that Campaign Monitor will remember people who unsubscribe. So if you import a file into an existing list, anyone who has already unsubscribed from that list won't be reimported.
That can make it easier, because you don't have to worry about only uploading new addresses. We've actually just posted about a simple way to synchronise unsubscribes too.
I'm sure there are other designers out there who are dealing with exactly the same problems - please do contribute your own sympathy or solutions.
It seems that CM is the smartest of all programs if you want to update your data, without creating messy duplicate entries. Instead of creating lists in CM with only name & email, perhaps it is better practice to store all the data (address, phone, DOB, country, etc) on CM's database and keep syncing/overwriting this back to a desktop application...
mmmm, doesn't feel like an easy, fault proof method but I guess you need to nominate one master program from which all others are synced. (and never the reverse!)