Cut Make.com Operations by 80% with Google Sheets
ملخص
Pixel’s announcement explains how to reduce Make.com operations by storing raw webhook JSON in Google Sheets and flattening it in the sheet instead of iterating through line items. It covers Shopify, Stripe, and WooCommerce examples, plus Apps Script and formula-based approaches to lower operation costs and avoid write limits.
DEV Community
How to Cut Make.com Operations by 80% When Logging Nested Webhook JSON to Google Sheets
If you send nested e-commerce or billing webhooks (Shopify orders/create, Stripe invoice.paid, WooCommerce orders) from Make.com into Google Sheets, the classic pattern is: Custom Webhook trigger (1 op) Iterator module over line_items[] (1 op) Google Sheets: Add a Row inside the loop (N ops — one per item) For an order with 10 line items, that burns 12 Make operations per webhook and risks hitting Google Sheets' 60 writes/min/user rate limit during bursts (leaving half-written orders). The Fix: Decouple Ingestion From Flattening Instead of iterating inside Make, push the raw JSON payload string into one cell and un-nest it inside Google Sheets: [Custom Webhook (1 op)] ──▶ [Google Sheets: Add a Row (1 op total)]
│
▼
Column A stores raw JSON string ({{1.body}})
│
▼
Column B expands dynamically via sheet formula
Your Make scenario drops to 1–2 operations total, regardless of whether an order has 2 line items or 50. Turning Raw JSON in Column A Into Clean Rows Suppose cell A2 holds a raw Shopify webhook payload: {
"order_id": "#10492",
"customer": { "email": "[email protected]" },
"line_items": [
{ "id": "item_1", "name": "Wireless Keyboard", "quantity": 1, "price": "129.00", "sku": "KB-PRO-BLK" },
{ "id": "item_2", "name": "USB-C Braided Cable", "quantity": 2, "price": "14.50", "sku": "ACC-CBL-02" }
]
}
You have two clean ways to unroll A2:A in Google Sheets without brittle REGEXEXTRACT chains: Option A: Custom Apps Script Function If you want full DIY control in Extensions → Apps Script, write a recursive flattener that walks objects/arrays with dot notation and pads missing columns across rows so headers stay aligned when new keys appear. Option B: Zero-Maintenance Formula (=FLATTEN_JSON_ROWS()) With PayloadFlatten for Google Sheets (client-side Apps Script add-on — data never leaves your Google Sheet): 1 row per webhook payload: =FLATTEN_JSON(A2:A)
1 row per line item (repeating parent order fields cleanly): =FLATTEN_JSON_ROWS(A2:A, "line_items")
Parent fields (order_id, customer.email) repeat on every row alongside item_number and each line item's fields (line_items.id, line_items.name, line_items.quantity, line_items.price, line_items.sku), so =SUM() and pivot tables keep working even when payloads evolve. Quick Comparison Metric Make Iterator Loop (15 items) Single-Write + In-Sheet Flatten Make operations per order ~17 ops 1–2 ops Partial rows on Sheets 429 error Possible mid-loop Atomic single write Schema change maintenance Re-map Make modules Auto-expands new keys If you want to test the interactive flattener on your own webhook payload before installing anything, there is a free browser sandbox on the Make Webhook JSON to Google Sheets guide.

Powered by Readybot.io