Initiative Feedback Collection via Google Sheets and Webhook
-
Overview: A Google Spreadsheet will use Google Apps Script to provide a webhook endpoint. This endpoint will handle incoming HTTP POST requests containing feedback about a specific initiative, including its current status and various contact methods, storing them directly into the spreadsheet.
-
Google Spreadsheet Setup:
Create a new Google Spreadsheet. Define columns: "InitiativeName", "IsActive", "Feedback", "Telegram", "WhatsApp", "Website", "LinkedIn". 3. Google Apps Script:
Create a new script file from the Google Spreadsheet by clicking on Extensions > Apps Script. Write a script that: Creates a doPost(e) function to handle HTTP POST requests. Parses and validates the request body content. Appends valid data to the spreadsheet. 4. Script Example:
function doPost(e) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var postData = JSON.parse(e.postData.contents);
// Extract data from the POST request body
var initiativeName = postData.initiativeName;
var isActive = postData.isActive ? "Yes" : "No"; // Expecting a boolean value
var feedback = postData.feedback;
var telegram = postData.telegram || ""; // Optional fields
var whatsapp = postData.whatsapp || "";
var website = postData.website || "";
var linkedin = postData.linkedin || "";
// Append data to the sheet
sheet.appendRow([initiativeName, isActive, feedback, telegram, whatsapp, website, linkedin]);
// Return a success message
return ContentService.createTextOutput(
JSON.stringify({"status": "success"})
).setMimeType(ContentService.MimeType.JSON);
}
@4tal
- how is this backend and not devops? As I see it we still don't have a backend...
- what about creating Github issues from those GSheet records (presumably of the type https://github.com/4tals/LinksForIsrael/issues/428, where edit in the broad sense could also include "delete")?
Exactly, automated PR is the next step.
Because it function as a backend and not proper DevOps/infra area