The Lists SDK methods lets you create / manage list of subscribers. You can then send broadcast to all the users in the list or create a workflow that triggers when a new user enters / exits list.
You can use suprClient.subscriberLists.create method to create a new list
importorg.json.JSONObject;importsuprsend.Suprsend;importsuprsend.SuprsendAPIException;importsuprsend.SubscriberListBroadcast;importsuprsend.SuprsendValidationError;publicclassLists{publicstaticvoidmain(String[] args)throwsException{createList();}privatestaticSubscribercreateList()throwsSuprsendException{Suprsend suprsendClient =newSuprsend("_workspace_key_","_workspace_secret_");// Create List JSON payloadJSONObject payload =newJSONObject().put("list_id","_list_id_");.put("list_name","_list_name_ ");.put("list_description","_some sample description for the list_");try{JSONObject res = suprClient.subscriberLists.create(payload);System.out.println(res);}catch(SuprsendException e){System.out.println(e);}}
Guidelines on defining the list_id
list_id is case-insensitive. Suprsend first converts list_id to lowercase before storing it or doing any sort of comparison on it.
list_id can be of max 64 characters.
It can contain characters [a-z0-9_-] i.e. alphanumeric characters, _(underscore) and -(hyphen).
To get the data of all the lists created in your workspace, use suprClient.subscriberLists.getAll() method
...// To get the list of 20 subscriber listsJSONObject res = suprClient.subscriberLists.getAll();// Get list with offset = 10 and limit = 20// JSONObject res = suprClient.subscriberLists.getAll(20,10);System.out.println(res);
Use suprClient.subscriberLists.add() to add list subscribers. There is no limit to the number of subscribers that you can add to a list.
//Add one or more distinct ids in the listString distinctId1 ="id-1";String distinctId2 ="id-2";String distinctId3 ="id-3";ArrayList<String> distinctIds =newArrayList<>(Arrays.asList(distinctId1,distinctId2,distinctId3));try{String listId ="l-001";JSONObject res = suprClient.subscriberLists.add(listId, distinctIds);System.out.println(res);}
You can remove subscribers from the list using suprClient.subscriberLists.remove()
//Add one or more distinct ids in the listString distinctId1 ="id-1";String distinctId2 ="id-2";ArrayList<String> distinctIds =newArrayList<>(Arrays.asList(distinctId1,distinctId2,distinctId3));try{String listId ="l-001";JSONObject res = suprClient.subscriberLists.remove(listId, distinctIds);System.out.println(res);}
In case you want to refresh a list with a new set of users completely, you can replace users by creating a draft version of the list and updating users in it.
1
Start Sync to create draft version of the list
This method will create a draft version of the list where you can add the new set of users to replace users.
JSONObject data = suprClient.subscriberLists.startSync("_list_id_");
2
Add Subscribers to draft list
Add subscribers to the draft version created in Step-1. You’ll get version_id in the Start Sync response.
JSONObject data = suprClient.subscriberLists.addToVersion("_list_id_","01HHCTXXXXXXXXXXX",Arrays.asList("_user_id_1","_user_id_2"));
3
Remove Subscribers from draft list
Remove subscribers from the draft version created in Step-1.
JSONObject data = suprClient.subscriberLists.removeFromVersion("_list_id_","01HHCTXXXXXXXXXXX",Arrays.asList("_user_id_1","_user_id_2"));
4
Finish Sync to make the draft version live
Finalize the sync and make the draft version live.
JSONObject data = suprClient.subscriberLists.finishSync("_list_id_","01HHCTXXXXXXXXXXX");