← All guides

How do I set up webhooks for Google Sheets?

Quick answer

Google Sheets has no native webhook support. SheetZAPI adds it: connect your sheet, configure a webhook URL in the dashboard, and SheetZAPI sends an HMAC-signed POST request to your endpoint whenever a row is created, updated, or deleted via the API. No Apps Script, no polling, no third-party Zapier trigger required.

Why Google Sheets has no native webhooks

Google Sheets supports Apps Script triggers for onEdit events, but these only fire for manual edits in the browser — not for API writes. They also require a Google account to authorize and have strict quota limits. For programmatic use cases (row created via API → notify Slack, trigger a workflow, sync to a database), Apps Script triggers are unreliable and hard to deploy.

How SheetZAPI webhooks work

Every write through SheetZAPI (POST, PATCH, PUT, DELETE on /rows) can trigger a webhook delivery. Configure the webhook URL and secret in your sheet's settings. SheetZAPI POSTs a JSON payload to your URL within seconds of the write, signed with HMAC-SHA256 so you can verify authenticity. The payload includes the event type, the affected row data, and a timestamp.

Verifying webhook signatures

Each delivery includes an X-SheetZAPI-Signature header (sha256=...). To verify: compute HMAC-SHA256 of the raw request body using your webhook secret, then compare to the header value. This prevents spoofed requests. Example in Node.js: const sig = crypto.createHmac('sha256', secret).update(rawBody).digest('hex'); if (sig !== headerSig) return res.status(401).end();

Common webhook use cases

Sync a row write to a Postgres database. Send a Slack notification when a new lead is added. Trigger a PDF generation workflow when a form submission row is created. Invalidate a front-end cache when product data changes. All of these work without polling: your server receives the event in real time.

Frequently asked questions

Does Google Sheets support webhooks natively?

No. Google Sheets has Apps Script onEdit triggers for manual browser edits, but no native webhook support for API writes. SheetZAPI adds webhook delivery for every row write through its API.

How do I get notified when a Google Sheet row is added?

Use SheetZAPI. Configure a webhook URL in your sheet's settings. Every time a row is POSTed via the SheetZAPI API, your URL receives a signed JSON payload within seconds.

Are SheetZAPI webhooks HMAC-signed?

Yes. Every delivery includes an X-SheetZAPI-Signature header with an HMAC-SHA256 signature. Verify it against your webhook secret to confirm the request is authentic.

Can I receive webhooks for Google Sheets without Apps Script?

Yes. SheetZAPI delivers webhooks for all row writes through its API — no Apps Script, no Google account triggers, no polling required.

Add webhooks to your Google Sheet today

Get Started Free