Validate and initialize Webflow
SEO_BLOG_PUBLISH_TOKEN='<tenant-token>' \
SEO_BLOG_SITE_SLUG='<slug>' \
SEO_BLOG_CMS_LOCALE='<primary-bcp47-locale>' \
WEBFLOW_TOKEN='<webflow-token>' \
WEBFLOW_COLLECTION_ID='<webflow-collection-id>' \
SEO_BLOG_SITE_ORIGIN='<origin>' \
npx --yes @wotaso/seo-blog-admin-cli@0.2.2 init-cms --cms webflow --site-slug '<slug>' --site-origin '<origin>' --locale '<primary-bcp47-locale>'
init-cms performs the connector's read-only credential, permission, and destination-schema checks first. It writes seo-blog.config.json and the scheduled tenant workflow only after validation passes; review both files, add the named GitHub secrets and variables, then trigger the workflow once manually.
Scheduled runner health heartbeat
SEO_BLOG_PUBLISH_TOKEN='<tenant-token>' \
SEO_BLOG_SITE_SLUG='<slug>' \
SEO_BLOG_CMS_LOCALE='<primary-bcp47-locale>' \
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@0.2.2 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. CMS health re-runs the remote read-only validation; it still does not create an 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 rendered body HTML
- Image fields receive a durable public URL in Webflow's required object shape
- Explicit mappings are checked against real field slugs, types, and required fields
Canonical and route
The Webflow Collection Template owns the public route, canonical tag, sitemap, schema, and rendering. SEODrafts confirms the rendered page on the configured customer-owned origin.
Known limits
- The Collection must expose a compatible title, slug, and Rich Text body mapping.
- Localized duplicate slugs require an explicit locale-aware mapping before publishing.
- The token must expose verifiable cms:write scope for the selected Collection.
Recovery
- Run init-cms after fixing token scope, field names, types, or required mappings.
- Correct ambiguous locale or slug configuration instead of updating an arbitrary item.
- Fix the Collection Template canonical and route before rerunning the public verification.