Operator

Lead inbox

Guide downloads and estimate forms should land in your Google Sheet. Right now they only stay in this browser.

  1. 01 Create a Google Sheet named something like “Asphalt Odessa Leads.”
  2. 02 Extensions → Apps Script. Delete the stub. Paste the script below. Save.
  3. 03 Deploy → New deployment → Web app. Execute as Me. Who has access: Anyone. Deploy and copy the URL (it ends in /exec).
  4. 04 Paste that URL below, then send the same URL in chat so visitor leads hit the Sheet.

Apps Script

function doPost(e) {
  const lock = LockService.getScriptLock();
  lock.tryLock(10000);
  try {
    const data = JSON.parse(e.postData.contents);
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName("Leads");
    if (!sheet) sheet = ss.insertSheet("Leads");
    if (sheet.getLastRow() === 0) {
      sheet.appendRow([
        "Received",
        "Source",
        "Name",
        "Phone",
        "Email",
        "City",
        "Property type",
        "Notes",
        "Id",
      ]);
      sheet.getRange(1, 1, 1, 9).setFontWeight("bold");
      sheet.setFrozenRows(1);
    }
    sheet.appendRow([
      data.createdAt || new Date().toISOString(),
      data.source || "",
      data.name || "",
      data.phone || "",
      data.email || "",
      data.city || "",
      data.propertyType || "",
      data.notes || "",
      data.id || "",
    ]);
    return ContentService.createTextOutput(JSON.stringify({ ok: true })).setMimeType(
      ContentService.MimeType.JSON,
    );
  } finally {
    lock.releaseLock();
  }
}

Saved here for tests on this device. Paste the same URL in chat to capture every visitor.

This-browser tests

A local copy of submissions from this device. Live visitor leads go to the Sheet, not here.

No test leads yet. Submit the guide form and come back.

Call nowFree guide