TESTING AUTOMATION JOURNEY FIRE
Fri Dec 22 2023 14:00:26 GMT+0000 (Coordinated Universal Time)
Saved by @aatish
//////////////////////////////// TESTING USER FETCHING FROM ANOTHER SHEET //////////////////////////////// function fetchUserData_TEST() { var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ResponseSheet TEST"); var destinationSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Users_to_WE TEST"); var sourceData = sourceSheet.getDataRange().getValues(); var destinationData = destinationSheet.getDataRange().getValues(); if (destinationData.length < sourceData.length) { var newRows = sourceData.slice(destinationData.length); for (var i = 0; i < newRows.length; i++) { var row = destinationData.length + i + 1; // 1-based index var email = newRows[i][1]; var phone = newRows[i][2]; phone = (phone.length === 10) ? "91" + phone : phone; var name = newRows[i][3]; if (name && email && phone) { var prefix = "test1_" var startCounter = 300000 var uniqueUserId = generateUserId(row, prefix, startCounter); destinationSheet.getRange(row, 1).setValue(uniqueUserId); destinationSheet.getRange(row, 2).setValue(email); destinationSheet.getRange(row, 3).setValue(phone); destinationSheet.getRange(row, 4).setValue(name); destinationSheet.getRange(row, 5).setValue("TRUE"); } } } print("Done Test Fetching!"); } //////////////////////////////// TESTING USER INTEGRATING API //////////////////////////////// function pushUsersDataToWE_TEST_USERS() { var mapper_keys = map_keys('Users_to_WE TEST') SpreadsheetApp.flush() fetchUserData_TEST(); var webEngageSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Users_to_WE TEST'); var StartRow = 2; var RowRange = webEngageSheet.getLastRow() - StartRow + 1; var WholeRange = webEngageSheet.getRange(StartRow, 1, RowRange, 6); var AllValues = WholeRange.getDisplayValues(); var headers = { "Authorization": "Bearer " + webEngageApiKey, "Content-Type": "application/json" } var usersUrl = webEngageUrl + "v1/accounts/" + webEngageLicense + "/bulk-users"; var userList = []; var batchSize = 25; for (var idx in AllValues) { var currentRow = AllValues[idx]; var status = currentRow[mapper_keys['status']]; if (status !== "Success" && status !== "Error" && status !== "User Integrated") { var user_id = String(currentRow[mapper_keys['user_id']]); var email = String(currentRow[mapper_keys['email']]); var mobile = String(currentRow[mapper_keys['phone']]); var name = String(currentRow[mapper_keys['first_name']]); if (email != "#ERROR!" && mobile != "#ERROR!" && name != "#ERROR!" && mobile.length >= 10) { var user = { 'userId': user_id, 'email': email, 'firstName': name, 'phone': mobile, 'whatsappOptIn': true, }; userList.push(user) if (userList.length === batchSize) { var payload = { "users": userList } payload = JSON.stringify(payload); var [uploadResponse, respStatus] = callApi(usersUrl, "post", payload, headers); if (respStatus != 201) { print(payload); print(respStatus); } var userList = []; } if (idx % 100 === 0) { Utilities.sleep(5000); } webEngageSheet.getRange(parseInt(idx) + StartRow, mapper_keys['status'] + 1).setValue('User Integrated'); } else { webEngageSheet.getRange(parseInt(idx) + StartRow, mapper_keys['status'] + 1).setValue('Error'); } } } if (userList.length > 0) { var payload = { "users": userList } payload = JSON.stringify(payload); var [uploadResponse, respStatus] = callApi(usersUrl, "post", payload, headers); if (respStatus != 201) { print(payload); print(respStatus); } print(uploadResponse) } print("Done Test Integration!"); } //////////////////////////////// TESTING EVENT API //////////////////////////////// function pushUsersDataToWE_TEST_EVENTS() { var mapper_keys = map_keys('Users_to_WE TEST') SpreadsheetApp.flush() var webEngageSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Users_to_WE TEST'); var StartRow = 2; var RowRange = webEngageSheet.getLastRow() - StartRow + 1; var WholeRange = webEngageSheet.getRange(StartRow, 1, RowRange, 6); var AllValues = WholeRange.getDisplayValues(); var headers = { "Authorization": "Bearer " + webEngageApiKey, "Content-Type": "application/json" } var eventUserList = []; var batchSize = 25; var eventsUrl = webEngageUrl + "v1/accounts/" + webEngageLicense + "/bulk-events"; var eventName = "Testing User Event 2"; for (var idx in AllValues) { var currentRow = AllValues[idx]; var status = currentRow[mapper_keys['status']]; if (status === "User Integrated") { var user_id = String(currentRow[mapper_keys['user_id']]); if (user_id) { var eventUser = { "userId": user_id, "eventName": eventName }; eventUserList.push(eventUser) if (eventUserList.length === batchSize) { var payload = { "events": eventUserList } payload = JSON.stringify(payload); var [uploadResponse, respStatus] = callApi(eventsUrl, "post", payload, headers); if (respStatus != 201) { print(payload); print(respStatus); } var eventUserList = []; } if (idx % 100 === 0) { Utilities.sleep(5000); } webEngageSheet.getRange(parseInt(idx) + StartRow, mapper_keys['status'] + 1).setValue('Success'); } else { webEngageSheet.getRange(parseInt(idx) + StartRow, mapper_keys['status'] + 1).setValue('Error'); } } } if (eventUserList.length > 0) { var payload = { "events": eventUserList } payload = JSON.stringify(payload); var [uploadResponse, respStatus] = callApi(eventsUrl, "post", payload, headers); if (respStatus != 201) { print(payload); print(respStatus); } print(uploadResponse) print(payload) print(respStatus) } print("Done Test Event!") }
Comments