Feedback Google Sheet setup
The application always saves feedback to PostgreSQL first. Google Sheets is an optional staff-facing mirror; anonymous rows never include the retained Discord ID.
-
Create a Google Sheet and name its first tab
Feedback(the script will also create it if missing). -
Open Extensions → Apps Script.
-
Replace the editor contents with
scripts/google-feedback-webhook.gsfrom this repository. -
In Apps Script, open Project Settings → Script properties and add
WEBHOOK_SECRETwith a long random value (at least 32 characters). -
Select Deploy → New deployment → Web app.
-
Set Execute as to yourself and Who has access to anyone, then deploy. The shared secret authenticates application requests.
-
Add these variables to both the website/server and bot deployments:
GOOGLE_SHEETS_FEEDBACK_WEBHOOK_URL=https://script.google.com/macros/s/YOUR_DEPLOYMENT_ID/exec
GOOGLE_SHEETS_FEEDBACK_WEBHOOK_SECRET=the-same-random-secret -
Apply
sql/055_feedback_submissions.sqlto the production database and restart both services. The bot registers/feedbackat startup.
The sheet columns are Submission ID, Submitted, Display name, Feedback, and Source. Protect access to the sheet as staff-only. Discord IDs remain in the database's feedback_submissions.discord_user_id column.
Optional website rate-limit settings:
FEEDBACK_RATE_LIMIT_WINDOW_MS=600000
FEEDBACK_RATE_LIMIT_MAX_REQUESTS=5