UM Cron Jobs can call custom CSE functions. In this example we will implement a function that performs a mass operation to remove all members of a given Segment from a given List.
Create a new file cmsbs-conf/cse/plugins/de.pinuts.tutorial/custom/removeSegmentFromList.mjs
:
de.acme.tutorial.removeSegmentFromList = (segmentName, listName) => { const query = UM.query(`inChannel(${listName}) and inVChannel(${segmentName})`); while (true) { let entries = query.page(100, 0); // 100 per page, stay on page 0! if (entries.length == 0) break; entries.forEach(entry => { entry.channels.unsubscribe(listName); }); UM.commitEntries(); } }
See also Some gotchas.
Create and run the Demo Data job to generate some Lists, Segments and Entries.
Create a new CSE: Call job and enter the fully qualified name of the job function above as the function to be executed.