How to import deleted, archived, suspended USERS data (user email, deleted date, org unit path, archive date, suspended date) to Google sheets from Admin SDK >> Reports API using Appscript. Thanks.
1 Answers
Welcome to Stackoverflow. Please be mindful to always include any research/sample scripts you've done on your end when posting questions as much as possible. Please see the guidelines about How do I ask a good question? as this is an integral part in this community.
RECOMMENDATION:
You can use this sample script below as reference. This script is based to a sample from Google Apps Script Quickstart
function listUsers() {
  
    var sheet = SpreadsheetApp.getActive().getActiveSheet();
    var values = [];
    var userKey = 'all';
    var applicationName = 'admin';
    var optionalArgs = {
      maxResults: 100
    };
    var response = AdminReports.Activities.list(userKey, applicationName, optionalArgs);
    var activities = response.items;
    if (activities && activities.length > 0) {
      Logger.log('REPORTS:');
      for (i = 0; i < activities.length; i++) {
        var activity = activities[i];
        //ONLY GET DATA IF ACTION IS EITHER "SUSPEND_USER", "DELETE_USER", or "ARCHIVE_USER"
        if(activity.events[0].name == "SUSPEND_USER" || activity.events[0].name == "DELETE_USER" || activity.events[0].name == "ARCHIVE_USER"){
            Logger.log('%s: %s (%s)', activity.id.time, activity.events[0].parameters[0].value,
            activity.events[0].name);
            //RETRIEVES THE TIMESTAMP, USER'S EMAIL, & THE EVENT NAME THAT WAS PERFORMED TO THE USER
            values = [[activity.id.time, activity.events[0].parameters[0].value,activity.events[0].name]]; 
            //SET THE DATA TO SHEET
            var lrow = sheet.getLastRow()+1;
            sheet.getRange("A"+lrow+":C"+lrow).setValues(values); 
        }
      }
    } else {
      Logger.log('No reports found.');
    }
}
NOTE:
Before you run the script, you need to add the AdminReports API on your Apps Script editor:
1. Click Services plus icon
2. Choose Admin SDK API
3. Click version drop-down, select reports_v1 and Add
SAMPLE SHEET
RESULT
After running the sample script, the timestamp when the action was made, user email address and the action made (Suspended/Deleted/Archived) will be added to the sheet:
Here's the Execution logs result for reference:
- 3,398
 - 1
 - 5
 - 17
 
- 
                    Wow awesome, it almost works. Only problem is, it is listing only today's events. – Mohammed Zaid May 21 '21 at 09:58
 - 
                    If I remove the max result argument then I'm getting around 35 results which is only for last 2 days. – Mohammed Zaid May 21 '21 at 10:48
 - 
                    Since this issue is now specific than to what was posted about "How to pull deleted, archived, suspended users data to Google sheets from Admin SDK", please post a new question specific for the issue. – SputnikDrunk2 May 21 '21 at 20:50
 - 
                    Done, have posted a new question, link below for your reference: https://stackoverflow.com/questions/67654227/having-issues-with-the-appscript-pulling-data-from-google-workspace-using-report – Mohammed Zaid May 22 '21 at 21:15
 





