Trying to use the API for a very niche purpose, and the approach I've been using so far just simply isn't working, so reaching out here to see if there's a better solution.
What we're trying to do: We have a huge list of users as part of a science-based crowd sourcing program. We want to be able to monitor the conditions of our database, and when certain conditions are met, email a set of the users to whom the data is germane. This monitoring is to happen once daily, and each user may receive any number of emails over the course of the year, but they won't receive more than one email per day.
How I've been trying to accomplish this: I'm not super familiar with CC, but this seemed like the "right" approach - setup a list of users to email, the daily script then can depopulate that list, find the users for whom the day's data is relevant, repopulate the list, and then re-schedule the same "campaign" each day.
This doesn't work for a number of reasons, which may be obvious to most, but I've stumbled into. One, you can't email the same campaign to the same user twice. So if user A is slated to get the email today and again in one week, they will only get it the first time. Two, if a user decides they don't want to be a part of this program any longer, and they attempt to unsubscribe themself from the list, there's a possibility they may get re-added to the list in the future.
I guess what I really need is:
- a way through CC API to email an arbitrary set of users
- someway to watch or track unsubscribe events, so I can manage a list of users to exclude from this effort.
Can anyone tell me if CC can provide a solution? It's certainly possible that I can do this outside of Constant Contact, but we really want to leverage all the value-added features of CC for this program we are running. Thank you!
Thank you for reaching out to Constant Contact API Support.
You can create a new list, add contacts to that list, send an email campaign to that list, and later delete the list entirely. But since you will be sending the same email to the same contacts, in order to use Constant Contact for this you would need to create a new email each time you need to send it. This can be done using the API, however they would need to be created as custom code emails, and creating emails that frequently would have the effect of cluttering up your Constant Contact account with many duplicate email campaigns.
Regarding contacts who unsubscribe, you can look at a campaign's unsubscribe activity and can view the account's entire unsubscribe list as a whole, however that may not be necessary for this. In order to maintain compliance with anti-spam legislation, you are not able to add back unsubscribed contacts yourself; they must add themselves back. So you don't need to necessarily exclude them from this process if you decide to use Constant Contact for this process.
Please let me know if you have any other questions and I'll be happy to help in any way I can!
API Support Specialist
Thanks for the quick reply. A few follow up questions:
1) So, just to be clear, if I add someone to this "temporary list", used only in the context of sending that one day's email, that user unsubscribes themself, then there's no way to add them to any future day's list (which is technically a new list)? This is even true if said user only unsubscribes themself from a few particular lists, but stays on our mailing list otherwise? I want to be clear on this because, legislation or not, I don't want to harrass our users =)
2) I realized that I could solve this problem by creating a new campaign every day, but you said it exactly: I'd prefer not to pollute our list of campaigns with as many as 300 - 350 campaigns (per year we run this program). If there really is no other way, I see in the web interface it's possible to categorize campaigns into folders. Is there a way to classify campaigns in the API, such that I can relegate these daily emails to their own folder?
To make sure we stay on the same page let me define a few terms and how Constant Contact uses them. When someone unsubscribes that means they ask to be removed from your mailing lists completely and not receive any emails from you regardless of the content or reason. What you are referring to is what we would call list management. The person chooses to no longer receive emails for that "category" of content, but they still want to receive emails for other content. Most of our customers create and use lists to segment their contacts based on subject matter and what type of content a particular contact wishes to receive.
To answer your first question that is something that a contact would normally use the Update Profile link for; which can be found at the bottom of all of your emails that are sent through Constant Contact. Make sure to point this out to your contacts if they wish to remove themselves from specific categories of emails, but wish to continue receiving other categories of emails. However; this means you will want to create lists in your account either through the API or through the website and keep using those same lists. You can add/remove the contacts from those lists as needed.
For your second question the ability to put email campaigns in to a folder is not available through the v2 API as the folder feature was developed after the v2 API was developed. I will make sure to add that as a feature request since we are currently developing our v3 API.
There is one thing you can do to alleviate some of the need to create new emails all of the time. Each email can be resent to the same email list for up to 85 days after the first date it was sent. The limitation is that when resending only contacts added to the list since the last_run_date will receive the email. Due to that limitation the resend option may not be what you need. You can check that documentation here. (https://developer.constantcontact.com/docs/campaign-scheduling/campaign-schedule-collection.html?met...)
View API documentation, code samples, get your API key.