The List Core library object provides an object-oriented interface for working with SFMC publication lists.

Methods

Method Returns Description
List.Init(listKey) List Initialize a list object
list.Subscribers.Add(email, attributes) void Add a subscriber to the list
list.Subscribers.Remove(email) void Remove a subscriber from the list

List.Init

var list = List.Init(listExternalKey);

Initializes a List object using the list’s External Key.

Parameters

Name Type Required Description
listExternalKey string Yes External key of the publication list

Subscribers.Add

list.Subscribers.Add(emailAddress, attributes)

Adds a subscriber to the list. Creates the subscriber in All Subscribers if they don’t exist.

Parameters

Name Type Required Description
emailAddress string Yes Email address
attributes object No Key-value object of profile attributes

Examples

Platform.Load("core", "1.1.5");
var list = List.Init("WelcomeSeries_List");
list.Subscribers.Add("jane@example.com", {
    FirstName: "Jane",
    LastName: "Doe"
});

Subscribers.Remove

list.Subscribers.Remove(emailAddress)

Removes a subscriber from the list (unsubscribes them from this list only).

Examples

Platform.Load("core", "1.1.5");
var list = List.Init("WelcomeSeries_List");
list.Subscribers.Remove("jane@example.com");

Complete Subscribe/Unsubscribe Pattern

Platform.Load("core", "1.1.5");

var action = Platform.Request.GetFormField("action"); // "subscribe" or "unsubscribe"
var email = Platform.Request.GetFormField("email");
var listKey = "Newsletter_PublicList";

if (!Platform.Function.IsEmailAddress(email)) {
    Platform.Response.SetResponseCode(400, "Bad Request");
    Write(Stringify({ error: "Invalid email" }));
} else {
    var list = List.Init(listKey);
    try {
        if (action === "subscribe") {
            list.Subscribers.Add(email, {
                SubscribedAt: Platform.Function.Now()
            });
            Write(Stringify({ status: "subscribed" }));
        } else if (action === "unsubscribe") {
            list.Subscribers.Remove(email);
            Write(Stringify({ status: "unsubscribed" }));
        }
    } catch(e) {
        Platform.Response.SetResponseCode(500, "Server Error");
        Write(Stringify({ error: e.message }));
    }
}

See Also

See Also