{"product_id":"schedule-validate-social-posts-from-google-sheets-with-preflight","title":"Schedule \u0026 Validate Social Posts from Google Sheets with Preflight","description":"\u003ch3\u003eSchedule and validate social posts from Google Sheets—automatically\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow reads your “Ready” rows from a Google Sheets post calendar, validates the post text, links, and optional media in \u003cstrong\u003ePreflight\u003c\/strong\u003e, and then schedules (or queues) approved posts—writing back status, Post IDs, and any issues to the sheet.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRuns every 15 minutes\u003c\/strong\u003e using a Schedule Trigger.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReads the Google Sheets tab\u003c\/strong\u003e named \u003cem\u003e“Posts”\u003c\/em\u003e and selects rows where \u003cstrong\u003eStatus\u003c\/strong\u003e is set to \u003ccode\u003eReady\u003c\/code\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eHandles optional media\u003c\/strong\u003e: if a \u003cstrong\u003eMedia URL\u003c\/strong\u003e is provided, the workflow uploads the file to Preflight and waits for it to be processed.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eValidates content in Preflight\u003c\/strong\u003e: sends post \u003cstrong\u003etext\u003c\/strong\u003e, \u003cstrong\u003echannels\u003c\/strong\u003e, optional \u003cstrong\u003eLink\u003c\/strong\u003e, and the uploaded \u003cstrong\u003emedia ID\u003c\/strong\u003e to Preflight to check each network’s rules.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCreates a post in Preflight\u003c\/strong\u003e when validation passes:\n    \u003cul\u003e\n      \u003cli\u003eIf \u003cstrong\u003ePublish At\u003c\/strong\u003e is set, it schedules for that time.\u003c\/li\u003e\n      \u003cli\u003eIf \u003cstrong\u003ePublish At\u003c\/strong\u003e is empty, it queues the post instead.\u003c\/li\u003e\n    \u003c\/ul\u003e\n  \u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eUses idempotency\u003c\/strong\u003e based on the row number and a text hash to avoid duplicate creations.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eUpdates the sheet\u003c\/strong\u003e with \u003ccode\u003eScheduled\u003c\/code\u003e (and the \u003cstrong\u003ePreflight Post ID\u003c\/strong\u003e) or sets \u003ccode\u003eNeeds fix\u003c\/code\u003e\/\u003ccode\u003eError\u003c\/code\u003e with detailed issues when validation or publishing fails.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eMarketing teams manage campaigns in Google Sheets and want Preflight network-rule checks before publishing.\u003c\/li\u003e\n  \u003cli\u003eSaaS operators standardize social posting across multiple channels with automated “Ready → Scheduled” status updates.\u003c\/li\u003e\n  \u003cli\u003eAutomation engineers need reliable scheduling with clear error reporting back to the source sheet.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eNodes\/blocks:\u003c\/strong\u003e Schedule Trigger, Google Sheets, if, set, sticky note, plus \u003cstrong\u003en8n-nodes-preflight\u003c\/strong\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003ePreflight credentials:\u003c\/strong\u003e requires scopes \u003ccode\u003eposts:read\u003c\/code\u003e, \u003ccode\u003eposts:write\u003c\/code\u003e, \u003ccode\u003eposts:publish\u003c\/code\u003e, \u003ccode\u003emedia:read\u003c\/code\u003e, \u003ccode\u003emedia:write\u003c\/code\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eGoogle Sheet columns\u003c\/strong\u003e include: \u003ccode\u003eText\u003c\/code\u003e, \u003ccode\u003eChannels\u003c\/code\u003e, \u003ccode\u003ePublish At\u003c\/code\u003e, \u003ccode\u003eMedia URL\u003c\/code\u003e, \u003ccode\u003eLink\u003c\/code\u003e, \u003ccode\u003eStatus\u003c\/code\u003e, \u003ccode\u003ePreflight Post ID\u003c\/code\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":46359706337459,"sku":"N8N-22245","price":63.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/BZKIZ7b8xG_6gpx2kuqdX_jM4X732Y.png?v=1793696539","url":"https:\/\/buyflowscripts.com\/products\/schedule-validate-social-posts-from-google-sheets-with-preflight","provider":"N8N Commerce","version":"1.0","type":"link"}