{"product_id":"shopify-etsy-square-orders-to-google-sheets-gmail-confirmation","title":"Shopify Etsy Square Orders to Google Sheets + Gmail Confirmation","description":"\u003ch3\u003eAutomate order capture from Shopify, Etsy, or Square into Google Sheets—then email customers with a Gmail confirmation\u003c\/h3\u003e\n\u003cp\u003eStop manually copying order details. This n8n workflow receives Shopify, Etsy, or Square webhooks, normalizes them into a single order format, logs new orders into a Google Sheets “Orders” tab, and sends a Gmail confirmation email that includes an estimated ship window based on SKU lead-time rules.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cb\u003eReceives webhook orders\u003c\/b\u003e via an HTTP webhook endpoint.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eDetects the storefront source\u003c\/b\u003e (Shopify, Etsy, or Square), normalizes the payload into a common order structure, and \u003cb\u003erejects\u003c\/b\u003e orders missing required details—including Square orders where a \u003cb\u003edeposit hasn’t been captured\u003c\/b\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eDeduplicates orders\u003c\/b\u003e by generating a unique key in the format \u003cb\u003esource|order-no\u003c\/b\u003e, using existing rows loaded from Google Sheets.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eValidates SKU rules\u003c\/b\u003e for every line item, calculates a \u003cb\u003eworking-day ship window\u003c\/b\u003e from the longest lead time plus buffers, and can \u003cb\u003ehold orders with unknown SKUs\u003c\/b\u003e depending on configuration.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eWrites to Google Sheets\u003c\/b\u003e in a single new row on the “Orders” board—or outputs a demo preview when the sheet isn’t configured.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eSends a Gmail confirmation\u003c\/b\u003e (test\/live mode), then updates the sheet row with a \u003cb\u003eConfirmed\u003c\/b\u003e stage and timestamp.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eReturns a JSON response\u003c\/b\u003e to stop storefront webhook retries, including for held, rejected, duplicate, demo, or preview outcomes.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eCapture orders from \u003cb\u003emultiple storefronts\u003c\/b\u003e and keep one centralized “Orders” record in \u003cb\u003eGoogle Sheets\u003c\/b\u003e.\u003c\/li\u003e\n  \u003cli\u003eAutomatically email customers a \u003cb\u003eship window estimate\u003c\/b\u003e driven by SKU-specific lead times.\u003c\/li\u003e\n  \u003cli\u003ePrevent duplicate processing by enforcing the \u003cb\u003esource|order-no\u003c\/b\u003e deduplication key.\u003c\/li\u003e\n  \u003cli\u003eHold or reject problematic orders (e.g., \u003cb\u003eunknown SKUs\u003c\/b\u003e or Square deposits not captured).\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cb\u003en8n nodes used:\u003c\/b\u003e webhook, if, code, google sheets, gmail, plus sticky note for workflow documentation.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eData storage:\u003c\/b\u003e Google Sheets “Orders” tab with configured column headings.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eOutput behavior:\u003c\/b\u003e demo\/preview mode when the sheet isn’t enabled; JSON responses to control webhook retries.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46081430159539,"sku":"N8N-19867","price":11.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/UafBTyjDxle0HJHhSJJhm_JeOXoiHy.png?v=1790241191","url":"https:\/\/buyflowscripts.com\/products\/shopify-etsy-square-orders-to-google-sheets-gmail-confirmation","provider":"N8N Commerce","version":"1.0","type":"link"}