function doPost(e) {
try {
var json = JSON.parse(e.postData.contents);
var sheetName = json.sheetName || "Chat Logs"; // Use provided name or default
var data = json.data;
if (!data || !Array.isArray(data) || data.length === 0) {
throw new Error("No data received or data is in the wrong format.");
}
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet = spreadsheet.getSheetByName(sheetName);
if (!sheet) {
sheet = spreadsheet.insertSheet(sheetName);
}
// Add a clear timestamp for when the export happened
sheet.clear(); // Clear old data
sheet.getRange("A1").setValue("Exported on: " + new Date().toUTCString()).setFontStyle("italic");
// Set headers
var headers = ["Timestamp", "Role", "Text"];
sheet.getRange(2, 1, 1, headers.length).setValues([headers]).setFontWeight("bold");
// Append data
var startRow = 3; // Start after timestamp and headers
sheet.getRange(startRow, 1, data.length, data[0].length).setValues(data);
sheet.autoResizeColumns(1, headers.length);
return ContentService.createTextOutput(JSON.stringify({ "status": "success", "message": "Data written to " + sheetName })).setMimeType(ContentService.MimeType.JSON);
} catch (error) {
Logger.log(error.toString());
return ContentService.createTextOutput(JSON.stringify({ "status": "error", "message": error.toString() })).setMimeType(ContentService.MimeType.JSON);
}
}