WDC No longer working? No roadmap to resolve the issue?

Options

I've seen about twelve posts in this forum, maybe more, all surrounding the WDC being broken. Currently I am in a situation where I've been unable to perform data extracts into Tableau for two or more months. The articles I've read all seem to indicate there is no roadmap to resolve this issue.

Has anyone discovered a workaround or a means to quickly migrate all smartsheets data to a more reliable tool for use with Tableau?

Answers

  • Brian_Richardson
    Brian_Richardson Overachievers
    Options

    If you have Google Sheets, you can output a sheet or report to a Google Sheet and then use that as your source for Tableau.

    Here's the code that I stole from another Community post a while back. This goes into the AppScript code editor for the Google Sheet. It will clear and overwrite a tab on that sheet every time it runs. Paste this code in, then set a Trigger for the timing that you want.

    If you want to pull a report instead of a sheet, just change the "var url = "https://api.smartsheet.com/2.0/sheets/" .... to say reports instead of sheets and put the report Id in for the smartSheetID value.

    function requestSmartsheet() {
        var smartSheetID = "[Enter SmartSheet ID Here]";
        var smartSheetToken = "[Enter Smartsheet Token Here]";
        var sheetName = "[Enter Googlesheet Tab Name Here]";
        var sheet = SpreadsheetApp.openById("[Enter Googlesheet ID Here]").getSheetByName(sheetName);
        var url = "https://api.smartsheet.com/2.0/sheets/" + smartSheetID + "?pageSize=20000";
        var response = UrlFetchApp.fetch(
            url, { headers: {Authorization: 'Bearer ' + smartSheetToken}}
        );
        var result = JSON.parse(response.getContentText());
        var tabResult = [];
        var colResult = [];
      sheet.clear();
        for(var col in result.columns){
            colResult.push(result.columns[col]["title"]);
        }
        tabResult.push(colResult);
        for(var row in result.rows){
            var cells = result.rows[row]["cells"];
            var tab = [];
            for(var cell in cells){
                var value = cells[cell]["value"] == undefined ? "" : cells[cell]["value"];
                tab.push(value);
            }
            tabResult.push(tab);
        }
        sheet.getRange(1, 1, tabResult.length, tabResult[0].length).setValues(tabResult);
    }
    

    BRIAN RICHARDSON | PMO TOOLS AND RESOURCES | HE|HIM

    SEATTLE WA, USA

    IRON MOUNTAIN