Connect Webflow

Publish a released blog as a CMS Collection Item in your Webflow site. Re-publishing the same blog updates the existing item rather than creating a duplicate. Essel uses the Webflow Data API v2 with a site API token.

Requirements

  • A Webflow site with a CMS Collection for blog posts. A typical blog collection has, at minimum, a Name field, a Slug field, and a Rich text body field — plus optional summary, cover image, and published date fields.
    • No collection yet? The connect wizard can create a ready-to-map “Blog Posts” collection for you (after you confirm). Note: Webflow’s API can create the collection and its fields but not the page that displays them, so you’ll then need to add a Collection Page for it in the Webflow Designer and publish your site before posts render live.
  • Permission to generate a site API token (site admin).

1. Create a site API token

See Webflow’s site token guide:

  1. In Webflow, open Site settings → Apps & integrations → API access.
  2. Click Generate API token, name it (e.g. Essel), and select these scopes:
    • sites:read — list your sites during setup.
    • cms:read — read collections and their field schema.
    • cms:write — create, update, and publish items.
  3. Generate and copy the token.

A site can hold at most 5 tokens, and a token expires after 365 days of inactivity. If setup ever fails at the first step with an auth error, the token is usually missing sites:read.

2. Connect in Essel

The connect wizard walks four steps:

  1. Token — paste the site API token and continue. Essel lists your sites.
  2. Site — pick the Webflow site that holds your blog collection.
  3. Collection — pick the CMS collection to publish into.
  4. Map fields — match Essel’s blog fields to your collection’s fields. Essel pre-fills sensible guesses from field types and names; adjust as needed.

Field mapping

Essel fieldMaps toRequired
TitleYour Name fieldYes
SlugYour Slug fieldYes
BodyA Rich text field (accepts HTML)Yes
SummaryA plain-text / summary fieldOptional
Cover imageAn Image field (or a plain link/URL field)Optional
Published dateA Date/Time fieldOptional

Only Title, Slug, and Body are required. Essel re-checks this mapping against your live collection on every publish, so if you later rename or remove a mapped field the destination flags a clear error instead of posting silently broken content.

Settings

  • Default item statusPublish to live site or Staged draft (created in Webflow for you to publish manually).
  • Publish automatically on release — push released blogs to Webflow with no manual step. Enabling this makes Webflow your workspace’s single automatic destination.
  • Set the cover image field — sends the blog’s cover image to the mapped image field. This is best-effort: if Webflow rejects the image, Essel retries once without it so the post still goes out.

How publishing works

  • Items are created staged, then published to the live site when the status is Publish (Webflow’s two-step staged item → publish model).
  • The item id is stored, so re-publishing performs an idempotent update.
  • Image fields accept a public URL that Webflow ingests as an asset (max 4 MB). Rich-text fields accept HTML — note Webflow’s API does not currently support code blocks in rich text.
  • Webflow doesn’t expose a reliable public URL for a CMS item via the API, so Essel doesn’t display one — view the post on your published site.
  • The token is stored encrypted and is never returned by any read endpoint.

Troubleshooting

  • Auth error on the first step — the token is missing sites:read. Generate a new token with all three scopes.
  • “This site has no CMS collections” — the site has no CMS. Let the wizard create a “Blog Posts” collection for you, or add one in the Webflow Designer; if you expected collections to appear, check the token has cms:read and you picked the right site.
  • Created a collection but posts don’t show on the site — an API-created collection has no page. Open the Webflow Designer, add a Collection Page bound to it, and publish your site.
  • “The collection no longer has the mapped field(s)” — a mapped field was renamed or deleted in Webflow. Reconnect and re-map.
  • Rate limited (429) — Webflow caps requests per minute by plan (60 on Starter/Basic, 120 on higher tiers). Essel surfaces this; retry shortly.