Hello TomG12,
You are doing quite the undertaking in creating your own CRM. You do have the limitations pretty well outlined and explained. I'd like to chime in a bit and see if I can help with some insight from our end.
The v2 API was designed to be able to move data between Constant Contact and your application whether it be a website where you have a sign-up form, a custom CRM, or anything in between. You are definitely looking to create something quite advanced and some of the features you are looking for were not something we were looking at designing in this version of our API. We are developing a v3 API and I will make sure these features are something we look at for this new version.
In the meantime I think your best option is the first one you mentioned. You would want to bring the contacts information through the API and store it in a database where you can then manipulate it in whatever way is needed by you or your users at that moment. Perhaps include a modified tag in your side of the database and at the end of the day compare it to our modified date. In the event that those two modified dates are different then you can send an update back to Constant Contact only for those contacts that had their data changed.
This would limit the amount of API calls needed to keep the data synced. This is of course based on the assumption that your users do not log in to the Constant Contact website to manipulate contacts as well.
I'm happy to continue discussing any aspects of this either here on the forums or if you prefer privacy you can email us at webservices@constantcontact.com.
... View more