{"product_id":"send-fixed-price-gmail-quote-approvals-in-n8n-data-tables","title":"Send Fixed-Price Gmail Quote Approvals in n8n (Data Tables)","description":"\u003ch3\u003eSend fixed-price Gmail quote approvals from n8n—safely and idempotently\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow authenticates fixed-price Gmail quote approvals, prevents replayed or ambiguous sends, and routes exceptions to the operations inbox—while also sweeping for stale review\/pending-email states to keep your approval pipeline accurate.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cb\u003eAuthenticates quote intake\u003c\/b\u003e using the server-side \u003cb\u003eQUOTE_INTAKE_TOKEN\u003c\/b\u003e, rejecting malformed requests, array-shaped inputs, padded-scope payloads, and out-of-range requests before any state is accessed.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eValidates and fingerprints the quote\u003c\/b\u003e by converting a versioned fixed price book into integer USD cents, deriving the exact workflow 08-compatible submission id, and creating a full request fingerprint.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eDetects duplicates and conflicts\u003c\/b\u003e by reading all rows within the \u003cb\u003esubmission_id + onboarding_id + smoke_tag\u003c\/b\u003e scope to distinguish new requests, exact replays, identity conflicts, and ambiguous duplicates.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003ePersists send intent and verifies acknowledgement\u003c\/b\u003e for either standard send or review-alert intent, ensuring the request matches the exact expected acknowledgement before Gmail actions.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eSends only eligible standard offers\u003c\/b\u003e when \u003cb\u003eemail\u003c\/b\u003e and \u003cb\u003everified_email\u003c\/b\u003e normalize to the same valid submitted address; otherwise it alerts the operations inbox only.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eAuthenticates approvals separately\u003c\/b\u003e with \u003cb\u003eQUOTE_APPROVAL_TOKEN\u003c\/b\u003e, records approve\/reject evidence, and blocks expired, terminal, ambiguous, pending-send, unverified-recipient, and unknown-price rows.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eConfirms “offer as sent”\u003c\/b\u003e only after Gmail provider evidence and an exact compare-and-set delivery acknowledgement.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eRuns an hourly sweep\u003c\/b\u003e to capture stale review or pending-email state and records alert intent plus confirmed alert delivery in separate fields.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eAutomate fixed-price quote approvals where Gmail is the delivery channel.\u003c\/li\u003e\n  \u003cli\u003ePrevent duplicate emails during network retries by enforcing fingerprint-based idempotency.\u003c\/li\u003e\n  \u003cli\u003eRoute approval exceptions to an operations inbox when recipient verification doesn’t match.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cb\u003en8n Data Table:\u003c\/b\u003e Create one Data Table named \u003cb\u003eQuote_Offers\u003c\/b\u003e using the exact columns from the workflow README, then re-select it in every Data T… node.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cb\u003eNodes\/logic:\u003c\/b\u003e \u003cb\u003eif\u003c\/b\u003e, \u003cb\u003ecode\u003c\/b\u003e, \u003cb\u003ewebhook\u003c\/b\u003e, \u003cb\u003egmail\u003c\/b\u003e, \u003cb\u003edata table\u003c\/b\u003e, and \u003cb\u003esticky note\u003c\/b\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45923073884339,"sku":"N8N-18873","price":17.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/OqV1JrFpZq7zfVKnjxD-Z_yKsxp41S.png?v=1788167840","url":"https:\/\/buyflowscripts.com\/products\/send-fixed-price-gmail-quote-approvals-in-n8n-data-tables","provider":"N8N Commerce","version":"1.0","type":"link"}