Save webhook payload fields to Google Sheets
This recipe accepts an HTTP webhook and appends selected payload fields as one spreadsheet row.
Webhook Source → Google Sheets: Append ValuesBefore you begin
- Create a worksheet with stable columns such as
Event ID,Customer,Amount, andCurrency. - Connect a Google account that can edit the spreadsheet.
- Prepare a controlled JSON request with recognizable test values.
Example payload:
{
"id": "evt_test_123",
"customer": { "name": "Ada" },
"amount": 149,
"currency": "USD"
}1. Create the Webhook Trigger
- Create a Workflow and choose a generic Webhook Source as its Trigger.
- Copy the Source URL.
- Send the example request with
Content-Type: application/json. - Confirm that the Trigger preview exposes the expected body fields.
Use the real preview as the mapping contract. Do not assume another sender or content type produces the same shape.
2. Add the Google Sheets Action
- Add Google Sheets → Append Values.
- Select the connected Google account and spreadsheet.
- Select the worksheet.
- Set Range to the columns used by the table, for example
A:D. - Keep Insert data option as
INSERT_ROWSunless overwriting is intentional.
The Action requires a two-dimensional JSON array. Each inner array becomes one row.
[
[
"{{trigger.body.id}}",
"{{trigger.body.customer.name}}",
"{{trigger.body.amount}}",
"{{trigger.body.currency}}"
]
]Select the values with the field picker. The exact path to the request body depends on the Trigger preview shown by the current Source.
3. Activate and verify
Activate the Workflow and send one new webhook. In Audit, confirm that the Append Values input contains one outer array and one row array. Then confirm that exactly one new row appears in Google Sheets.
Prevent duplicate rows
Webhook senders and Workflow Actions can retry. Store a stable event ID in the sheet and make downstream processing idempotent. For strict uniqueness, add a lookup or external datastore check before appending; the spreadsheet append operation alone is not a deduplication lock.
Troubleshooting
- No run: verify the Source URL, Workflow status, HTTP method, and Source request history.
- Invalid values: the Rows JSON must be a valid matrix, even for one row.
- Wrong columns: align the array order with the selected A1 range and worksheet headers.
- Permission error: reconnect Google or share the spreadsheet with the connected account.
- Duplicate row: compare the provider event ID and Workflow run attempts before replaying.
See Data mapping, Google Sheets integration, and Runs and errors.