LinksForIsrael icon indicating copy to clipboard operation
LinksForIsrael copied to clipboard

Initiative Feedback Collection via Google Sheets and Webhook

Open 4tal opened this issue 2 years ago • 3 comments

  1. 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.

  2. 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 avatar Nov 09 '23 23:11 4tal

@4tal

  1. how is this backend and not devops? As I see it we still don't have a backend...
  2. 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")?

ohadschn avatar Nov 09 '23 23:11 ohadschn

Exactly, automated PR is the next step.

4tal avatar Nov 10 '23 00:11 4tal

Because it function as a backend and not proper DevOps/infra area

4tal avatar Nov 10 '23 00:11 4tal