📱 Schedule Instagram posts and reels from Google Sheets with PostWire
⚡ 34 views · 📱 Social Media & Email Marketing
💡 Pro Tip — Heads up — if this workflow’s Instagram scraping breaks (it happens whenever Meta updates their frontend), ScraperNode is a community node that handles profiles, posts, reels, and comments without any HTML parsing.
Description
Quick Overview
This workflow uses Google Sheets as a content calendar to schedule Instagram posts and Reels via PostWire, updates each row with scheduling and publishing results, and sends Gmail alerts when scheduling or publishing fails.
How it works
- Runs every 15 minutes on a schedule.
- Reads Google Sheets rows where the status column is set to
ready. - Filters out rows missing a valid https media URL, a publish time, or a caption.
- Schedules each valid item in PostWire for the row’s
publish_attimestamp and target platforms from thenetworkscolumn (defaulting to Instagram). - Updates the Google Sheets row as
scheduledwith the PostWire schedule ID, or marks it aserrorand emails the fix details via Gmail. - Listens for PostWire events when a post is published or fails on a social platform.
- Writes back to Google Sheets with
publishedand the live post URL, or marks the rowfailedand emails the failure reason via Gmail.
Setup
- Install and configure the PostWire community nodes, create a PostWire account, connect your social networks, and add a PostWire API credential in n8n.
- Add Google Sheets credentials and select the target spreadsheet and sheet in all Google Sheets nodes.
- Create a sheet with the required columns (at minimum
publish_at,caption,media_url,status, and a uniquerow_number, plusnetworks,schedule_id,post_url, andnotefor write-backs). - Add a Gmail credential and set the notification email address in the Settings node and the “Email me what failed” node.
- Ensure
media_urlvalues are publicly accessible https file URLs (not a Google Drive share page) and set rows toreadyto be picked up.
🔗 Nodes Used
Google Sheets, Gmail, Schedule Trigger, Filter
📥 Import
Download workflow.json and import into n8n:
Workflow menu → Import from File