Attendance Tracker Library – Google Forms to Master Spreadsheet (version 11)

GitHub: https://github.com/aamoghS/attendanceAutomator

Author: Aamogh Sawant


importFormsToSpreadsheet(Object config)

importFormsToSpreadsheet(config)

Main function to aggregate attendance data from multiple Google Forms into a single master spreadsheet. Tracks participation counts, prevents duplicate processing, and supports configurable folders.

Arguments:

Name Type Description
config Object Configuration object containing settings for the import process

Config Properties:

Property Type Description
parentFolderNamerequired string Name of the parent folder containing forms
outputSpreadsheetNamerequired string Name of the master output spreadsheet
outputSheetNamerequired string Name of the sheet within the spreadsheet
subfolderName string Optional subfolder name to process
logSheetName string Name of log sheet (default: "Processed")
skipRSVP boolean Whether to skip forms with "RSVP" in name (default: true)
verbose boolean Enable detailed logging (default: true)

Returns:

Type Description
Object Summary object containing processing statistics and spreadsheet URL

processFolder(...)private

processFolder(folder, emailMap, processedForms, newlyProcessedFormIds, config, stats, indent)

Recursively processes a folder and all its subfolders to find and process Google Forms. Iterates through all forms in the specified folder, extracts respondent information (name and email), updates attendance counts, and recursively processes any subfolders. Maintains processing state to avoid duplicate form processing.

Arguments:

Name Type Description
folder GoogleAppsScript.Drive.Folder The folder to process
emailMap Map Map of email addresses to attendance data objects containing name and count
processedForms Set Set of form IDs that have already been processed in previous runs
newlyProcessedFormIds Set Set to collect form IDs processed in the current run
config Object Configuration object with settings like skipRSVP and verbose
stats Object Statistics object tracking forms processed, responses, and new emails
indent string String used for indentation in log output to show folder hierarchy

log(message, verbose)private

log(message, verbose)

Conditional logging helper that outputs messages only when verbose mode is enabled.

Arguments:

Name Type Description
message string The message to log to the console
verbose boolean Whether verbose logging is enabled; message only prints if true