Webflow SEO content workflow and CMS publishing

Your Webflow CMS Collection remains the source of the rendered article. SEODrafts supplies the reviewed content, maps it to your collection fields, updates items by slug, and publishes only during an explicit publish run.

Best for: Marketing sites with a tested Webflow CMS Collection and an existing Collection Template for articles.

Support status: stable
Publisher: webflow

How the connection works

Authentication

A Webflow API token scoped to the destination Collection. The token and Collection ID remain in CI or another server-side secret store.

Server-side variables

  • SEO_BLOG_PUBLISH_TOKEN
  • SEO_BLOG_SITE_SLUG
  • WEBFLOW_TOKEN
  • WEBFLOW_COLLECTION_ID
  • SEO_BLOG_SITE_ORIGIN

Publishing sequence

01

Read Collection items and locate the destination slug.

02

Map title, body, excerpt, and SEO fields to the site schema.

03

Patch an existing item or create a controlled draft.

04

Send only confirmed item IDs to the Collection publish endpoint.

No-write payload and mapping preview

SEO_BLOG_PUBLISH_TOKEN='<tenant-token>' \
SEO_BLOG_SITE_SLUG='<slug>' \
WEBFLOW_TOKEN='<webflow-token>' \
WEBFLOW_COLLECTION_ID='<webflow-collection-id>' \
SEO_BLOG_SITE_ORIGIN='<origin>' \
npx --yes @wotaso/seo-blog-admin-cli publish-cms --cms webflow --site-slug '<slug>' --site-origin '<origin>' --dry-run

For a currently due approved post, --dry-run builds the destination payload without writing to the provider. It does not contact the provider or prove credentials, remote schema compatibility, deployment, or a live page; when no post is due, provider inputs are not exercised.

Scheduled runner health heartbeat

SEO_BLOG_PUBLISH_TOKEN='<tenant-token>' \
SEO_BLOG_SITE_SLUG='<slug>' \
WEBFLOW_TOKEN='<webflow-token>' \
WEBFLOW_COLLECTION_ID='<webflow-collection-id>' \
SEO_BLOG_SITE_ORIGIN='<origin>' \
SEO_BLOG_SCHEDULED='true' \
npx --yes @wotaso/seo-blog-admin-cli health --config seo-blog.config.json --mode cms --site-slug '<slug>' --site-origin '<origin>'

Run this from the real scheduled runner after seo-blog.config.json contains the selected connector configuration and the listed secrets are loaded. It reports configuration readiness, not a live article. The dashboard expires readiness at the returned deadline, with a 36-hour fallback when no deadline is available.

Fields and data model

  • Rich text receives the rendered body HTML
  • Custom collection fields use an explicit field map
  • Existing items are updated rather than recreated

Canonical and route

The Webflow Collection Template owns the public route, canonical tag, and sitemap. SEODrafts checks the expected URL against the configured site origin, while the rendered Webflow output remains authoritative.

Known limits

  • Default mappings only fit collections with matching field names.
  • Large collections need a deterministic lookup strategy.
  • The API token needs publishing rights for the target site and Collection.

Recovery

  • Begin with dry run and draft mode.
  • Compare the field map with Webflow field types when validation fails.
  • Verify the Collection Template route before reporting a post as published.

Integration questions

Where are credentials stored?

The Webflow credentials stay in CI or another server-side secret environment.

Does SEODrafts own the canonical URL?

No. The destination website owns its route, canonical tag, sitemap, rendering, and analytics.

Can the integration be tested before publishing?

Use the no-write payload preview to inspect local mapping, then separately test credentials and the first destination draft before a live run.

Keep the website your team already owns.

Review the opportunity and draft in SEODrafts, then publish approved work through Webflow.

Add my website