Campaign Monitor API
This package in under active development.
Please do not use in production.
In the meantime, please use https://www.npmjs.com/package/createsend-node (different author)
Demo
var cm = require('campaign-monitor');
var mail = new cm({
log: true,
apikey: 'xxxxx',
clientid: 'xxxxx',
client: 'default' // Or use a client ID
});
Lists
List the lists
mail.lists().all(function(response) {
mail.log("lists.all", "response:", response);
});
Creation
mail.lists().create({
"Title": "Website Subscribers",
"UnsubscribePage": "http://www.example.com/unsubscribed.html",
"UnsubscribeSetting": "AllClientLists", // Or OnlyThisList
"ConfirmedOptIn": false,
"ConfirmationSuccessPage": "http://www.example.com/joined.html"
}, function(response) {
mail.log("lists.create", "response:", response);
});
List
Select the list using mail.list(XXXXXXX)
where XXXXXXX is the list ID.
Get the list details
mail.list(XXXXXXX).get(function(response) {
mail.log("list.get", "response:", response);
});
Get the list stats
mail.list(XXXXXXX).stats(function(response) {
mail.log("list.stats", "response:", response);
});
Get the list custom fields
mail.list(XXXXXXX).customFields(function(response) {
mail.log("list.customFields", "response:", response);
});
Create a custom field
mail.list(XXXXXXX).createCustomField({
"FieldName": "list_test",
"DataType": "MultiSelectMany",
"Options": ["hello","world"]
},function(data) {
mail.log("list", "createCustomFields", data);
});
Rename a custom field
mail.list(XXXXXXX).renameCustomField('old name', 'new name', function(data) {
mail.log("list", "renameCustomField", data);
});
Add custom field options
mail.list(XXXXXXX).updateCustomFieldOptions('field name', ["option 1", "option 2", ...] ,function(data) {
mail.log("list", "updateCustomFieldOptions", data);
});
Replace custom field options
mail.list(XXXXXXX).replaceCustomFieldOptions('field name', ["option 1", "option 2", ...] ,function(data) {
mail.log("list", "replaceCustomFieldOptions", data);
});
Subscribers
Select the list using mail.subscribers(XXXXXXX)
where XXXXXXX is the list ID.
Add a subscriber (API implementation)
mail.subscribers(args.listid)._add({
"EmailAddress": "julien@fleetwit.com",
"Name": "Julien Loutre",
"CustomFields": [{
"Key": "played",
"Value": 254
}],
"Resubscribe": true,
"RestartSubscriptionBasedAutoresponders": false
}, function(email) {
mail.log("subscribers", "add", email);
});
Add a subscriber (Easier params)
mail.subscribers(args.listid).add({
name: 'Julien Loutre',
email: 'julien@fleetwit.com',
fields: {
hello: 'world'
},
restartAutoresponder: true,
resubscribe: true
}, function(email) {
mail.log("subscribers", "add", email);
});
Update a subscriber
mail.subscribers(args.listid)._update("current_email@example.com",{
"EmailAddress": "changed_address@example.com",
"Name": "Changed Name",
"CustomFields": [
{
"Key": "website",
"Value": "http://example.com"
},
{
"Key": "interests",
"Value": "magic"
},
{
"Key": "interests",
"Value": "dungeons and dragons"
},
{
"Key": "age",
"Value": "",
"Clear": true
}
],
"Resubscribe": true,
"RestartSubscriptionBasedAutoresponders": true
}, function(email) {
mail.log("subscribers", "add", email);
});
Transactional
List the transactional templates
mail.transactional().templates(function(data) {
mail.log("transactional", "templates", data);
});