Publish Google Sheet rows to Webflow CMS every weekday
Drain your content queue automatically. Every weekday at 8am ET, ready rows move from Google Sheets to your Webflow blog or directory, fully published.
Build me a code workflow that publishes ready rows from a Google Sheet into a Webflow CMS collection every weekday morning. My content team writes posts as spreadsheet rows because it is faster than the Webflow editor, and I want a deterministic publisher that drains the queue daily.
Trigger: cron, every weekday (Monday through Friday) at 8:00am America/New_York.
Step 1: Call Google Sheets Get Values against a known spreadsheet ID and tab range that I will configure. The tab has a header row with these columns: title, slug, body, summary, hero_image_url, tags, Status. Read the full range including the header so the workflow can map column names to positions.
Step 2: In code, filter to rows where the Status column equals the literal string "Ready". Skip rows where Status is empty, "Draft", "Published", or anything else. Keep track of each ready row's sheet row index so we can write back to it later. If there are zero ready rows, exit the workflow cleanly without calling Webflow.
Step 3: Call Webflow Get Collection Details once on my target collection so we have the live field schema. Map each spreadsheet column to the right Webflow field slug (title to name, slug to slug, body to a rich-text or content field, summary to a plain-text or post-summary field, hero_image_url to the main image field, tags to a multi-reference or option field). Use the schema response to pick the actual slugs at runtime rather than hardcoding.
Step 4: Call Webflow Bulk Create Collection Items in batches of up to 100 items per request. For each batch, build the fieldData payload from the filtered rows using the slugs from step 3. Capture the returned item IDs in the same order as the input rows.
Step 5: Call Webflow Publish Collection Items with the item IDs returned in step 4 so the new items go live. Publish in the same batch sizes.
Step 6: Call Google Sheets Update Values to write back to each successfully published row: set Status to "Published", write the new Webflow item ID into a webflow_item_id column, and write an ISO 8601 timestamp into a published_at column. Use the row indexes captured in step 2 so we update the right rows, and use USER_ENTERED so the timestamp formats nicely. If a particular item failed at the Webflow step, leave its row unchanged so the next run retries it.
Inputs to expose as workflow configuration: the Google spreadsheet ID, the tab name and range (for example "Queue!A1:H1000"), the Webflow site ID, and the Webflow collection ID. Hardcode the Status values ("Ready" and "Published") and the cron schedule as defaults but allow overrides.
Failure handling: Webflow rate-limits at 60 requests per minute on Starter/Basic plans and the site publish endpoint is capped at 1 per minute, so respect Retry-After on 429 responses. If Bulk Create returns per-item errors, only publish and write back the items that succeeded. Do not retry within the same run if a batch errors out at the API level; let the next scheduled run pick up the rows that are still marked Ready.
Additional information
What does this prompt do?
- Reads your content queue tab in Google Sheets and picks up every row marked Ready.
- Creates the matching items inside your Webflow collection in batches, up to 100 at a time.
- Publishes the new items to your live site so they go public the same morning.
- Writes Published, the new Webflow item ID, and a timestamp back to each row so your team knows what shipped.
What do I need to use this?
- A Google account that can view and edit the content queue spreadsheet.
- A Webflow account with edit access to the target site and collection.
- A spreadsheet tab with columns for title, slug, body, summary, hero image URL, tags, and a Status column.
How can I customize it?
- Change when it runs, for example move it to daily at 6am or only on Mondays and Thursdays.
- Point it at a different collection like a job board, directory, or recipe site instead of a blog.
- Add more spreadsheet columns to feed extra fields such as author, category, or SEO metadata.
Frequently asked questions
Do I need a developer to set this up?
How many rows can it publish at once?
What happens to rows that are not marked Ready?
Will it overwrite content that is already live in Webflow?
Can I use this for a directory or job board instead of a blog?
Stop copy-pasting rows into Webflow.
Connect Google Sheets and Webflow once, and Geni drains your content queue every weekday morning.