Webhook Guides
Receive Webhook Data in Google Sheets
A webhook to Google Sheets workflow turns incoming HTTP events into spreadsheet rows. It is useful for operations exports, lead capture, order review, QA logs, support handoffs, and lightweight audit trails where a full backend service would be too much.
FastHook receives the provider webhook at a stable source URL, routes accepted events through connection filters, and writes selected payload fields to a GOOGLE_SHEET destination. You can inspect the request, event, destination attempt, response, retry state, and sheet write behavior from the same flow.
Best fit
Google Sheets is best when people need to inspect events directly. It is not a queue, database, or high-volume analytics store, so the safest pattern is to filter first and send only rows that humans actually need.
- Send checkout, signup, order, or form events into a review spreadsheet.
- Capture test payloads while an integration is still being built.
- Fan out one source to both a production API and a spreadsheet audit trail.
- Map stable columns instead of pasting raw JSON blobs into one cell.
Setup flow
- Create a FastHook source and copy the generated Source URL.
- Paste that URL into the provider that sends webhook events.
- Create a Google Sheet destination and connect Google with OAuth or a service account.
- Choose payload fields such as customer.email, order.total, or event.type.
- Connect the source to the sheet with filters so only useful events create rows.
- Send a test webhook, inspect the FastHook attempt, and confirm the new row appears.
Column mapping pattern
A predictable spreadsheet needs explicit columns. FastHook lets you write dotted paths for the values you want to append, which keeps new provider fields from shifting the shape of the sheet.
customer.email
customer.name
order.id
order.total
order.currency
event.typeCreate the destination
Use OAuth for a quick dashboard setup, or a service account for production automation. Service accounts need edit access to the target spreadsheet before rows can be appended.
curl -X POST "https://api.fasthook.io/v1/destinations" \
-H "Authorization: Bearer fhp_xxx" \
-H "x-team-id: tm_3b5335b627084a838b" \
-H "Content-Type: application/json" \
-d '{
"name": "Orders to Google Sheets",
"type": "GOOGLE_SHEET",
"config": {
"spreadsheet_id": "1xcIMwZ...",
"sheet_name": "Orders",
"columns": ["customer.email", "order.id", "order.total", "event.type"],
"include_metadata": false,
"auth_type": "GOOGLE_OAUTH_REFRESH_TOKEN",
"auth": {
"client_id": "google-client-id",
"client_secret": "google-client-secret",
"refresh_token": "google-refresh-token"
}
}
}'Debugging checklist
- If no row appears, confirm the provider request was accepted by the source.
- If the row is blank, compare column paths with the captured payload shape.
- If Google returns 403, check spreadsheet sharing and OAuth or service account permissions.
- If there are too many rows, add connection filters before the Google Sheet destination.
- If a write fails temporarily, fix the destination and retry the failed FastHook event.