Constant Contact wants to help you succeed! We’re celebrating our professional service programs on the Constant Contact Community this month and you have a chance to try one of the services for free! Learn more.
Is there any process that we can get user details if he unsubscribe from the list of constant contact. What i need is as user unsubscribe from a particular list, with the help of constantcontact api we got user details, and after that we just process our code on our server.
Or any other option to alter the unsubscription link in the camapign. with alteration what I can do is I give url of our server file and after that we just processesed unsubscription in constant contact and will also update our database simultaneously. Please advise us something good to solve our issue.
For users that unsubscribe from all mailings, you can simply query us for any contacts that have the status of Do Not Mail. If you are continually syncing, you can do this periodically, like once per day, doing a search for email addresses with the status of Do Not Mail last updated since the previous day.
For users that only unsubscribe from one list, that will be more tricky. You can query the API for the contacts last_updated_by Contact (ACTION_BY_CONTACT), and see what lists the contact is currently on, but we don't keep a record of what lists they WERE on.
If that information is very important to you, the only solution I can think of would be to keep a record of your own with all of the contacts and which lists they are on, and then run a search for the contacts that got updated by themselves (ACTION_BY_CONTACT once again). You can then compare their current lists to your records apart from Constant Contact, and then compare the lists your contacts are still on (and subsequently update your records to reflect that, so that your database always stays current to ours).
This might be able to be done a simpler way if you simply want to get the contacts in a particular list, create an export report, and see how the list changes over time, pulling the export report as you see fit. It all depends on the kind of data you want.
API Support Specialist
This might be a solution but here we are talking about more than 3000-5000 users then to check every users in the list is feasible or good solution to implement?
-Because to search particular users in the lists it's tough.
There are limitations that have to be worked around to accomplish specialized tasks with any web-based platform. As our system doesn't maintain a record of previous list memberships, the only way to do this is some variation of what Shannon described, really. Depending on how you need to process the data, if you keep contact records stored locally, as well as in your Constant Contact account, and you sync frequently using bulk activities to keep list associations for contacts up-to-date on your side, then do separate syncs of those on your do-not-mail list with your local system, but in that sync don't touch the list memberships - syncing only to mark the contact locally as unusubscribed, you will always have the last list membership associations for you opt-out contacts.
Sure, it may require some development to code your sync integration to handle this, but once done, using bulk activities for the syncs and leaving the hard work up to your application should work. Others sync a variety of contact data in our systems with that in their local databases using approaches like this, so it's definitely workable if the development is feasible for you.
Mark and Shannon have really done a good job explaining where we are today. We're also in the process of building out version 2 of our API. While I understand the value of seeing what has changed, we don't keep records in our database of previous list memberships (as Shannon pointed out). That said, would a feature such as webhooks or callbacks when something was changed on a contact, including what was changed, realtime sent to your application be a potential solution for this problem? If not, what would you want to see in terms of an API endpoint or data to get to where you want to be? While I can't promise we would develop what you suggest, we are definitely looking for additional ideas for how to expand our API suite to solve more problems for our developers.
I tried to found some functional in your wrapper which help me out in getting up contact for ACTION_BY_CONTACT as you suggested. but unable to found such code. I tried this searchContactsByLastUpdate function but this will not work i think.
Can you please help me out in this.
I apologize, you are correct, the wrapper doesn't include a function for getting contacts last updated by themselves. After some investigation, it appears that even contacts who were updated by themselves still appear as action_by_customer for opt-in purposes if they were originally put on a list by the site owner (you), so that wouldn't work the way we want it to.
Your best bet would be to use the searchContactsByLastUpdate to find contacts who had either been added or removed from your account, but our database doesn't store when contacts change their preferences. I know Dave is looking to have something available to help with contact updates in the future, but for now I am going to pass on your feedback. Sorry again for the limitation.
API Support Specialist
Is there a process, If I request for API enhancement in constant contact wrappers which fulfill my requirements. these will be glad for me.
If there is any process please let us know. we will be happy to work with you people.
The feature you are asking for is not something that we can update the wrappers with, because it doesn't exist within the API. We are in the process of completely rebuilding our API, so we can give your request to our development team to address in updates to the product.
Any time you would like to request a change to the API or the wrappers, you can just ask us here, or email us at email@example.com. If your request is possible, we can look into updating the wrappers. If you are asking for functionality that does not exist, we can give your feedback to our development team, to see if it is possible to make a change in the future.