Guide

Bulk-edit your Webflow CMS

By Axel Antas-Bergkvist Published June 10, 2026

Desktop & open-source edition. Prefer to work in your browser? Open this in the Spectersync webapp →subscribe now for 500 free credits when your workspace opens.

The Webflow Editor lets you edit one item. The Data API lets you edit many — until you hit a rate limit, a timeout, or a malformed payload halfway through a hundred-item push and you’re left wondering which items made it. Specter is the layer that does bulk well: pull the whole collection into a folder, edit at the folder level (yourself or with AI), preview the diff, then push back at a pace the Data API is happy with.

This guide walks the bulk-edit loop using three workflows operators actually run: a meta-description sweep, an internal-link audit, and a tone refresh on the back catalogue.

Meta-description sweep

You’ve decided every published blog post needs a fresh meta description against a tighter brief — 140–160 characters, names the concrete problem, ends with a noun phrase rather than a CTA. The Editor would have you click through every item. Here’s the bulk version.

  1. Pull. If your Webflow site isn’t already connected, connect it. Pick the blog collection during setup. Specter pulls every blog item into one subfolder of markdown files.
  2. Edit at the folder level. Open Claude (or your AI of choice) and point it at the blog subfolder. Give it the brief and tell it to write the new meta description into the seoMetaDescription field in each item’s frontmatter, leaving the body untouched. (Full Claude workflow →)
  3. Preview. In Specter, click Preview Sync. You’ll see a list of every blog item that changed, with a frontmatter-only diff. Scan it for outliers — meta descriptions that drifted under 140 or over 160 characters, items where Claude punted with a # CLAUDE NOTE: comment line. Fix those locally.
  4. Push. When the diff looks right, click Sync. Specter streams the updates back through the Webflow Data API, batching to stay under the rate limit. The push doesn’t time out on a hundred-item collection because Specter is handling the pacing, not your AI tool.

This same shape works for SEO titles, slugs, summary fields, OG images, canonical URLs — any frontmatter field your collection exposes.

You renamed /pricing-old to /pricing six months ago and there are still posts with the old link. The Editor’s search is fine for one or two — useless for forty. Here’s the bulk version.

  1. Pull. As above.
  2. Find and replace at the folder level. A simple find + sed over the markdown files will do this if you trust your patterns. If you want context-aware replacement (“update the link, and if the post is older than 18 months also add an editor’s-note line”), hand the folder to Claude with that brief.
  3. Preview. The diff lists every blog item whose body changed. Spot-check a few that look suspicious — automatic replacement is great at the easy cases and famously bad at the edge cases.
  4. Push. Same as above.

The diff is doing real work here. The most painful failure mode of a sweeping find-and-replace is that you don’t notice the one item where the pattern matched something it shouldn’t have, until it’s already live. The Preview step shows you that item before the push, while the change is still local and revertable.

Tone refresh on the back catalogue

Your voice has changed since the early posts. You want every guide-collection item to read like the current style guide, but only the intro paragraph — the body of older guides is structurally fine and you don’t want Claude rewriting working content.

  1. Pull. As above. Pick the Guides collection during setup.
  2. Edit with constraints. Give Claude the current style guide as /style-guide.md and tell it to rewrite only the intro paragraph of each guide item to match the voice. Tell it explicitly not to touch the rest of the body. Tell it to add a # CLAUDE NOTE: comment line at the top of any item whose intro paragraph it can’t confidently identify, instead of guessing.
  3. Preview. Scan the diff. The whole-body diffs are the failure cases — Claude exceeded its mandate and you’ll want to revert and re-prompt. The intro-paragraph-only diffs are the success cases.
  4. Push. Same as above.

Rate limits and how Specter handles them

Webflow’s Data API is honest about rate limits — they’re documented, they’re enforced, and a hundred-item push without pacing will hit them. Specter pushes one item at a time, retries on the rate-limit responses Webflow sends back, and surfaces real failures (a validation error on a specific item) without aborting the whole batch.

The practical implication: even on a 500-item collection, the push will complete. It may take a couple of minutes because of the pacing. That’s the trade you make for not having items stuck in the half-pushed state.

What this loop doesn’t help with

Specter is scoped to CMS items. If your edit needs to touch the Designer (a layout change), a component definition (an embed-block tweak), or your site SEO outside what each collection’s SEO fields cover, you’re back in the Webflow UI. That’s by design — the Designer is the Designer’s job and Specter has nothing useful to say about it.

For everything that is CMS-shaped — text content, frontmatter fields, internal links, tone — the bulk loop above is the workflow.