Create a token at airtable.com/create/tokens, scoped to data.records:read and data.records:write for the base you want deals saved to. Your token is stored in your account (row-level security keeps it visible only to you) and used only to call Airtable's API directly from your browser — it never passes through Backforty's own servers.
Date, Property, Platform, Market, Units, Price, Broker, Stage, Category, Contacts, Notes.function doPost(e) {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const data = JSON.parse(e.postData.contents);
const headers = sheet.getRange(1, 1, 1, sheet.getLastColumn()).getValues()[0];
const row = headers.map(h => data[h] !== undefined ? data[h] : '');
sheet.appendRow(row);
return ContentService.createTextOutput(JSON.stringify({ok:true})).setMimeType(ContentService.MimeType.JSON);
}
The script matches your Sheet's header row to the fields Backforty sends (Date, Property, Platform, Source Handle, Source URL, Market, Units, Price, Broker, Stage, Category, Contacts, Notes, Added By) — any header name that doesn't match just stays blank, so you can use whichever columns you want in whatever order.
Your webhook URL is stored in your account (row-level security keeps it visible only to you) and called directly from your browser — it never passes through Backforty's own servers. Since "Who has access" is set to Anyone, treat this URL like a lightweight secret: anyone who has it can append rows to that Sheet, so don't share it publicly.