Choose a connection path
- Fastest no-code path: send InstaChime `lead.created` to Zapier or Make, then add a Google Sheets row.
- Self-owned low-maintenance path: create a Google Apps Script web app that receives the webhook and appends a row.
- Direct API path: build a small bridge that authenticates to Google Workspace and calls `spreadsheets.values.append`.
Recommended sheet columns
- `created_at`, `lead_id`, `customer_name`, `email`, `phone`, `source_platform`, `campaign`, `message`, `lead_score`, `sentiment`, `owner`, `status`.
Apps Script bridge example
function doPost(e) {
var payload = JSON.parse(e.postData.contents);
var lead = payload.lead || payload;
var sheet = SpreadsheetApp.openById("SPREADSHEET_ID").getSheetByName("Leads");
sheet.appendRow([
new Date(),
lead.id || "",
lead.customer_name || "",
lead.email || "",
lead.phone || "",
lead.source_platform || lead.source || "",
lead.campaign || "",
lead.message || "",
lead.lead_score || "",
lead.sentiment || ""
]);
return ContentService.createTextOutput("ok");
}Direct Sheets API shape
POST https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/Leads!A:J:append?valueInputOption=USER_ENTERED
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{
"values": [[
"2026-05-27T05:00:00Z",
"lead_uuid",
"Jamie Lee",
"jamie@example.com",
"+15555550123",
"google_ads",
"Emergency demo campaign",
"Need pricing today",
82,
"urgent"
]]
}Verify
- Send a sample webhook from `/integrations` and confirm a new row appears.
- Capture a real sample lead and confirm row values match the InstaChime lead.
- Confirm phone numbers are preserved as text when needed.
- Confirm a failed sheet request creates a failed or retryable delivery row.
- Keep the sheet ID and tab name stable after the integration is live.
Exact Zapier path
- Create a Google Sheet with a tab named `Leads`.
- Add a header row with `Created At`, `Lead ID`, `Name`, `Email`, `Phone`, `Source`, `Campaign`, `Message`, `Score`, and `Sentiment`.
- Create a Zap with Webhooks by Zapier as the trigger and Catch Hook as the event.
- Copy the Zapier webhook URL.
- Open InstaChime `/integrations` and create a CRM webhook destination using that URL.
- Send a sample delivery from InstaChime so Zapier can detect the payload.
- Add a Google Sheets action: Create Spreadsheet Row.
- Select the spreadsheet and `Leads` worksheet.
- Map each `lead.*` field to the matching sheet column.
- Test the Zap action and confirm a row appears.
- Turn on the Zap.
Exact Make path
- Create the Google Sheet and header row first.
- Create a Make scenario with a Webhooks > Custom webhook trigger.
- Copy the webhook URL and add it as an InstaChime CRM webhook destination.
- Run the Make scenario once so it waits for sample data.
- Send an InstaChime sample delivery.
- Add Google Sheets > Add a Row.
- Select the spreadsheet and worksheet.
- Map `lead.id`, `lead.customer_name`, `lead.email`, `lead.phone`, `lead.source_platform`, `lead.campaign`, `lead.message`, `lead.lead_score`, and `lead.sentiment`.
- Run once, confirm the row, then schedule/enable the scenario.
Exact Apps Script path
- Open the target Google Sheet.
- Go to Extensions > Apps Script.
- Paste the Apps Script bridge code from this guide.
- Replace `SPREADSHEET_ID` and sheet tab name with your actual values.
- Deploy as a web app.
- Set execution identity and access according to your Google Workspace policy.
- Copy the deployed web app URL.
- Add that URL as an InstaChime CRM webhook destination.
- Send a sample delivery and confirm a row is appended.
Google Sheets troubleshooting
- If rows do not append, confirm the worksheet tab name matches exactly.
- If phone numbers lose plus signs, format the phone column as plain text.
- If Zapier or Make cannot see fields, resend a sample delivery after the trigger is listening.
- If Apps Script returns an auth page, confirm it is deployed as a web app with the intended access mode.
- If columns shift, lock the header row and avoid inserting new columns in the middle without updating the mapping.
Official references
These vendor-owned pages explain the controls and requirements referenced in this guide.
- Google Sheets append valuesOfficial documentation used to verify this setup path and its current vendor requirements.
- Google Apps Script web appsOfficial documentation used to verify this setup path and its current vendor requirements.