Google Sheets integration
Last updated: May 24, 2026
Auto-append every new survey response to a Google Sheet using a tiny Apps Script webhook. Takes ~3 minutes.
1. Create the Apps Script
Open your target Google Sheet → Extensions → Apps Script → paste:
function doPost(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Responses')
|| SpreadsheetApp.getActiveSpreadsheet().insertSheet('Responses');
const body = JSON.parse(e.postData.contents);
const data = body.data || body;
sheet.appendRow([new Date(), JSON.stringify(data)]);
return ContentService.createTextOutput(JSON.stringify({ ok: true }))
.setMimeType(ContentService.MimeType.JSON);
}2. Deploy as a web app
- Click Deploy → New deployment.
- Type: Web app. Execute as Me. Who has access: Anyone.
- Copy the Web app URL (looks like
https://script.google.com/macros/s/…/exec).
3. Connect in Softstack Research
Go to Settings → Integrations → Google Sheets, paste the URL, and click Save. Hit Send test to confirm a row appears.
What gets sent
{ "event": "campaign.completed", "data": { ... }, "sent_at": "..." }Each Softstack Research workspace event (report ready, response milestones) is POSTed to your script. For per-response streaming, use the REST API or a Zapier zap.