Webex Connect JavaSscript Examples
Convert Google Sheets API response to Correct JSON format (Headers -> Variable Names)
Retrieve Google Sheets worksheet- example:
- https://sheets.googleapis.com/v4/spreadsheets/<google-spreadsheet-id>/values/<sheet-pagename>?key=<your-google-api-key>
Then set the response Code and Response Body as variables when leaving the HTTP node - as per below.
An example output from the Google Sheets API:
{ "range": "customers!A1:Z1000", "majorDimension": "ROWS", "values": [ [ "PhoneNumber", "FirstName", "LastName", "email" ], [ "35315551234", "Bob", "Bobster", "[email protected]" ], [ "353871231234", "Alice", "Anderson", "[email protected]" ] ] }
Format what we want the above to be in
[ { "PhoneNumber": "3535551234", "FirstName": "Bob", "LastName": "Bobster", "email": "[email protected]" }, { "PhoneNumber": "353871231234", "FirstName": "Alice", "LastName": "Anderson", "email": "[email protected]" } ]
Code to Convert to 'correct' format
if (statusCode == 200) { const data = JSON.parse(responseBody); const inputArray = data["values"]; const headers = inputArray[0]; const rows = inputArray.slice(1); const output = []; for (let i = 0; i < rows.length; i++) { let rowObject = {}; // Create a new object for each row - note 'const' should work here - but didn't. Platform using old JS? for (let j = 0; j < headers.length; j++) { rowObject[headers[j]] = rows[i][j]; } output.push(rowObject); // Push the new object to the output array } myheaders = headers.toString(); myrows = rows.toString(); myoutput = output; customersJSON = JSON.stringify(output); 1; } else { 2; }
Positions
JDS → Data Parse
//var jsonString = '{"meta":{"organizationId":"5818cf70-ae2c-4baa-8f1f-48887c8a806a","workspaceId":"67d924cb4f3fdd73d498afd8","resultCount":3,"identity":null},"data":[{"id":"70d22c95-769f-4b4c-8b69-2860cdaa1b07","specversion":"1.0","type":"ie.eirevo.wxcc.customer.openeir.dp.fault","source":"2025-08-22","time":"2025-08-22T09:31:30.93Z","identity":"353858769707","identitytype":"socialId","previousidentity":null,"datacontenttype":"application/json","data":{"eircode":"unknown","item":"Pole","position":{"latitude":53.2700808,"longitude":-6.1172522}}},{"id":"b70e35db-4090-4799-8fb7-6bd9708bf824","specversion":"1.0","type":"ie.eirevo.wxcc.customer.openeir.dp.fault","source":"2025-08-22","time":"2025-08-22T09:11:15.834Z","identity":"353858769707","identitytype":"socialId","previousidentity":null,"datacontenttype":"application/json","data":{"eircode":"unknown","item":"Pole","position":{"latitude":53.2700706,"longitude":-6.1172585}}},{"id":"2cb9a904-d0f9-4f95-879f-fe7dd6dea410","specversion":"1.0","type":"ie.eirevo.wxcc.customer.openeir.dp.fault","source":"2025-08-22","time":"2025-08-22T08:57:37.009Z","identity":"353858769707","identitytype":"socialId","previousidentity":null,"datacontenttype":"application/json","data":{"eircode":"unknown","item":"Pole","position":{"latitude":53.2700762,"longitude":-6.117223}}}]}' var jsonString = jdsResponseBody; var inputJson = JSON.parse(jsonString); // convert string → object var outputJson = []; for (var i = 0; i < inputJson.data.length; i++) { outputJson.push(inputJson.data[i].data); } var jsonJdsDataObjectsString = JSON.stringify(outputJson); 1;
min distance
//var jsonString ='[{"eircode":"unknown","item":"Pole","position":{"latitude":53.2700808,"longitude":-6.1172522}},{"eircode":"unknown","item":"Pole","position":{"latitude":53.2700706,"longitude":-6.1172585}},{"eircode":"unknown","item":"Pole","position":{"latitude":53.2700762,"longitude":-6.117223}}]' var jsonString = jsonJdsDataObjectsString; //var lat_ref = 53.2700681; //var lon_ref = -6.1172521; //var min_dist = 200; var lat_ref = locationLatitude; var lon_ref = locationLongitude; var min_dist = min_dist; var inputJson = JSON.parse(jsonString); // convert string → object var distMeter = Math.sqrt(Math.pow(lat_ref, 2) + Math.pow(lon_ref, 2)); function computeDistance(lat, lon, lat_ref, lon_ref) { var latDiffMeter = 111320 * (lat - lat_ref); var lonDiffMeter = 67700 * (lon - lon_ref); var distMeter = Math.sqrt(Math.pow(latDiffMeter, 2) + Math.pow(lonDiffMeter, 2)); //return {latDiffMeter, lonDiffMeter, distMeter}; return { latDiffMeter: latDiffMeter, lonDiffMeter: lonDiffMeter, distMeter: distMeter }; } // Process each entry var output = []; for (var i = 0; i < inputJson.length; i++) { var entry = inputJson[i]; var latitude = entry.position.latitude; var longitude = entry.position.longitude; var dist = computeDistance(latitude, longitude, lat_ref, lon_ref); if (dist.distMeter <= min_dist) { output.push({ eircode: entry.eircode, item: entry.item, latitude: latitude, longitude: longitude, //LatitudeDiffMeter: dist.latDiffMeter, //LongitudeDiffMeter: dist.lonDiffMeter, DistMeter: dist.distMeter }); } } jsonMinDistanceString = JSON.stringify(output); if (output === []) { 1; } else { 2; }
//var jsonString = '[{"eircode":"ABC1001","item":"pole","latitude":53.12345,"longitude":-6.123456,"DistMeter":16324.886386556258},{"eircode":"ABC1002","item":"banana","latitude":53.12345,"longitude":-6.123456,"DistMeter":16324.886386556258},{"eircode":"ABC1003","item":"pole","latitude":53.12345,"longitude":-6.123456,"DistMeter":16324.886386556258},{"eircode":"ABC1004","item":"pole","latitude":53.12345,"longitude":-6.123456,"DistMeter":16324.886386556258}]'; var jsonString = jsonMinDistanceString; var inputJson = JSON.parse(jsonString); // Count occurrences var counts = {}; for (var i = 0; i < inputJson.length; i++) { var itemName = inputJson[i].item; // Normalize first letter uppercase, rest lowercase (like "Pole", "Banana") var formattedName = itemName.charAt(0).toUpperCase() + itemName.slice(1).toLowerCase(); if (counts[formattedName]) { counts[formattedName]++; } else { counts[formattedName] = 1; } } // Convert counts object into array of {Item, Count} var output = []; for (var key in counts) { if (counts.hasOwnProperty(key)) { output.push({ Item: key, Count: counts[key] }); } } jsonDuplicateString = JSON.stringify(output); 1;
//var jsonString = = '[{"Item":"Pole and cables","Count":1},{"Item":"Pole","Count":3}]'; var jsonString = jsonDuplicateString; var inputJson = JSON.parse(jsonString); duplicateListString = ""; for (var i = 0; i < inputJson.length; i++) { var item = inputJson[i]; duplicateListString += "ItemName: " + item.Item + ", Report Count: " + item.Count + "\n"; } 1;