Skip to Content

Webflow Integration

Connect your Webflow account to publish content generated in Asky directly to your Webflow CMS collections.

What You Get

Connecting Webflow enables:

FeatureDescription
Content PublishingPublish articles and posts to Webflow CMS
SEO Meta DescriptionsSync each draft’s meta description into Webflow’s page level SEO description
Status TrackingMonitor publishing status in Asky

Prerequisites

Before connecting, ensure you have:

  • A Webflow account
  • At least one site with CMS capability (not on free plan)
  • A CMS collection set up for blog posts or articles
  • Editor or Admin access to the site

Webflow’s free plan doesn’t include CMS. You’ll need a CMS Site Plan or higher to use this integration.

Connecting Webflow

Go to SettingsConnections in Asky.

Find Webflow

Locate the Webflow card.

Authorize with Webflow

You’ll be redirected to Webflow:

  1. Sign in to your Webflow account (if not already)
  2. Review the permissions requested. Asky asks for read and write access to sites, CMS collections, pages, assets, and custom code so we can publish items, create the Asky Schema field for you, and read your page bindings.
  3. Click Authorize

Select Your Site

If you have multiple Webflow sites:

  1. You’ll see a list of available sites
  2. Select the site you want to publish to
  3. Click Confirm

Complete Setup

You’ll be redirected back to Asky with Webflow connected.

Meta Description Setup

Asky generates a meta description for every draft. To get that description onto your live Webflow page, you bind one of your CMS fields to the Page Settings → SEO Description slot on the Collection Template. Asky detects the binding automatically and writes the meta description to the bound field on every publish.

This is a one time setup per collection.

Without this binding, your draft’s meta description is still saved in Asky and used in the JSON-LD output, but it never reaches Webflow’s <meta name="description"> tag on the live page.

How it works

Webflow’s Collection Template Page Settings let you bind any PlainText or RichText CMS field to the page level SEO Description. Webflow then renders that field’s value into <meta name="description"> on every published item. Asky scans your Pages API on every load of the publish panel, parses the binding, and:

  • If a CMS field is bound, Asky shows an inline Meta Description widget in the Webflow item editor and writes the value into the bound field at publish time.
  • If no CMS field is bound, Asky still lets you edit a meta description in a fallback textarea in SEO Settings, but it is saved on the draft only and is not sent to Webflow.

Bind a CMS field to the SEO description

Decide which CMS field will hold the description

You can either reuse an existing field on your collection (for example a Summary or Excerpt PlainText field) or create a new one. If you create a new one:

  1. Open the collection settings in Webflow Designer
  2. Add Field → Plain text → Multiple line
  3. Name it something obvious such as Meta Description
  4. Save the field

Open the Collection Template’s Page Settings

  1. In Webflow Designer, open the Pages panel
  2. Under CMS Collection Pages, click the gear icon next to the template for your collection

Webflow Pages panel with the Collection Template highlighted

Bind the field in SEO Settings

  1. Scroll to SEO Settings
  2. In the Description field, click the purple + Add Field button
  3. Select your CMS field (for example Meta Description, Summary, or Excerpt) from the dropdown
  4. Webflow inserts a binding token. Save Page Settings.

Webflow SEO Settings Description field with the Add Field dropdown open

If not already set, make sure to do the same thing for the Title tag, where you should choose the collection field containing the page title (default is Name).

Publish your Webflow site

Click Publish in the top right of the Designer to make the binding live.

Editing the meta description in Asky

Once the binding is in place, open any draft pointed at this collection in Asky. Asky detects the binding and renders the meta description inline as a regular field in the Webflow item editor.

Asky Webflow item editor with the inline Meta Description widget

What happens if no field is bound

If Asky doesn’t detect a CMS field bound to the SEO description, the inline widget is replaced by a fallback textarea in the SEO Settings collapsible section near the bottom of the publish panel.

The fallback is fully editable, but it only saves on the draft. The value still feeds Asky’s JSON-LD output, but it does not reach Webflow’s <meta name="description"> until you bind a CMS field as described above.

Troubleshooting

Asky still shows the fallback textarea after I added the binding:

  1. Click the refresh icon next to the collection picker on the content page so Asky re-scans Page Settings.
  2. Confirm the field bound in Webflow is a Plain text or Rich text field. Other types (Image, Reference, Number, Link) are ignored because a meta description has to be a plain string.
  3. Re-publish your Webflow site so the Page Settings change is included in Webflow’s API response.

The live page still has Webflow’s auto generated description:

  1. Webflow falls back to a default description when the bound CMS field on a specific item is empty. Open the draft in Asky and confirm the Meta Description field has content, then publish again.

Adding JSON-LD to your articles

Webflow does not allow external providers to upload custom scripts like JSON-LD snippets through the API. The easiest way, without much custom development or manually updating every single page, is to use Webflow’s native JSON-LD solution.

To enable this, go to the Designer tab —> Pages —> Collection Templates —> Settings

Asky SEO Settings fallback Meta Description textarea

Then scroll down to the Schema Markup settings and click Generate schema markup and update the fields as you require.

Asky SEO Settings fallback Meta Description textarea

For more information refer to the Webflow Docs 

Adding tables to your articles

Tables perform well in AI search: ChatGPT, Perplexity, Gemini, and Claude frequently pull feature comparisons, pricing matrices, and spec sheets directly out of tables when citing a page. Unfortunately, the Webflow Data API does not allow tables or HTML embeds to be written into rich text fields, so Asky cannot push them in for you automatically.

Asky strips tables from the published article and surfaces them in a warning next to the publish button, with a Copy table HTML button per table. The workflow below takes under a minute per article and produces a real, styled HTML table on your live page.

This is a one time setup for the styling (shared across every article on the site). After that, adding a table to a new article is three steps: copy in Asky, paste in Webflow, publish.

Per article: paste the table into a HTML Embed

Copy the table in Asky

On the content page, scroll to the Webflow publishing card. If your article contains one or more tables, you’ll see an amber warning below the Publish button with a Copy table HTML button (a dropdown if there’s more than one table). Click it to copy the raw HTML.

Asky content page showing the Copy table HTML button inside the amber warning below the Webflow Publish button

Open the article in Webflow

  1. In the Webflow Designer, open the CMS panel
  2. Open the collection item for the article you just published
  3. Click into the rich text field (the field your article body publishes to, e.g. Post Body / Content)

Add a HTML Embed block inside the rich text

  1. Place the cursor where you want the table to appear
  2. Click the + button in the rich text toolbar
  3. Select HTML Embed (this is the only rich text element type that can render arbitrary HTML)

Rich text + menu opened with the HTML Embed option highlighted

Paste the table HTML

Paste the HTML you copied from Asky into the Custom Code editor. Click Save & Close.

Custom Code editor with the pasted table HTML and Webflow's rendered preview below it

Publish the site

Click Publish in the top right of the Designer. The table is now live on the article page. If you would like to see a preview of what the table looks like first, check out the preview here:

Preview button location

If you want to learn how to change the styling of the table, keep reading.

One time: style every table on the site

Pasted tables render with zero styling by default. The cleanest fix is a site wide stylesheet that targets tables inside Webflow’s rich text wrapper class .w-richtext. You add it once, and every table you ever paste into any article inherits it.

Open Site Settings → Custom Code

  1. In the Webflow Designer, open Site Settings (gear icon, top left)
  2. Go to the Custom Code tab
  3. Scroll to Head Code

Webflow Site Settings with the Custom Code tab selected and the Head Code textarea visible

Paste the default table CSS

Paste the block below into Head Code:

<style> .w-richtext table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.95rem; line-height: 1.5; } .w-richtext thead { background: #f6f6f6; } .w-richtext thead th { font-weight: 600; text-align: left; } .w-richtext th, .w-richtext td { border: 1px solid #e5e7eb; padding: 0.5rem 0.75rem; vertical-align: top; } .w-richtext tbody tr:nth-child(even) { background: #fafafa; } </style>

Every selector is scoped to .w-richtext (Webflow’s rich text wrapper), so these rules only touch tables inside article bodies. They won’t conflict with any table you’ve already styled elsewhere on the site.

Save changes and publish the site

  1. Click Save Changes at the top of the Site Settings page
  2. Return to the Designer and click Publish in the top right
  3. Reload any article with a pasted table: it’s now styled

Customize the styling with AI

If you want the tables to match your brand (custom colors, fonts, hover states, responsive collapse, etc.), you can follow these steps.

Paste the following prompt into an AI chat

Paste the prompt into ChatGPT, Claude, Gemini, or any LLM chat and update the placeholder. The prompt looks like:

I'm styling HTML tables inside rich text fields on my Webflow site. Webflow wraps every rich text element in a `.w-richtext` class, so all my table rules need to be scoped to that class. Here is the CSS I currently have pasted into Webflow under Site Settings -> Custom Code -> Head Code: <style> .w-richtext table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; font-size: 0.95rem; line-height: 1.5; } .w-richtext thead { background: #f6f6f6; } .w-richtext thead th { font-weight: 600; text-align: left; } .w-richtext th, .w-richtext td { border: 1px solid #e5e7eb; padding: 0.5rem 0.75rem; vertical-align: top; } .w-richtext tbody tr:nth-child(even) { background: #fafafa; } </style> I'd like to update the styling so that: {REPLACE THIS WITH WHAT YOU WANT, e.g. "the header row uses my brand color #5B43F0 with white text, body rows have a subtle hover background, and the font is sans-serif at 14px"} Please reply with the complete, ready-to-paste <style> block that replaces what I have above. Keep every selector scoped to `.w-richtext` so the styles don't leak into other parts of the site. Only return the CSS, no commentary.

Replace the placeholder with what you want

Find the {REPLACE THIS WITH WHAT YOU WANT ...} line and replace it with your actual design goal, e.g.:

“The header row should use our brand color #5B43F0 with white text, body rows should have a subtle hover effect, and the overall font should be Inter at 14px.”

Paste the generated CSS back into Webflow

Copy the CSS the model returns, open Site Settings → Custom Code → Head Code, and replace the existing <style> block with the new one and save. You can now see the new table styling when you preview the page (make sure custom code is enabled for the preview).

Webflow Site Settings with the Custom Code tab selected and the Head Code textarea visible

Troubleshooting

The table renders but looks wrong (too wide, broken borders):

  • Confirm the <style> block is inside Head Code under Site Settings (not Footer Code, and not on an individual page’s custom code).
  • Check that your existing site CSS doesn’t set a more specific .w-richtext table rule. Webflow’s own template CSS rarely does, but a theme or custom stylesheet might.

The table is there in the Custom Code preview but missing on the live site:

  • Click Publish in the Designer. CMS item rich text changes go live at the next site publish.
  • Confirm you pasted the HTML inside a HTML Embed block (the + HTML Embed option), not directly into the rich text or a Quote block.

I want different styles per collection or per article:

  • Put per collection CSS in the collection template page’s Custom Code (Page Settings → Before </body> tag). It will scope to that template only.
  • For per article overrides, add inline style="..." attributes directly to the <table>, <tr>, or <td> in the HTML Embed block before saving.

Managing the Connection

Viewing Status

The connection card shows:

  • Connection status
  • Connected Webflow account
  • Selected site

Switching Sites

To publish to a different site:

  1. Go to SettingsConnections
  2. Find Webflow
  3. Click Change Site
  4. Select the new site

Switching Collections

The collection picker lives on the content page. Switch collections per draft from the Collection dropdown above the Webflow item editor.

Disconnecting

To disconnect Webflow:

  1. Go to SettingsConnections
  2. Find Webflow
  3. Click Disconnect
  4. Confirm

Disconnecting:

  • Stops the ability to publish new content
  • Does not delete content already in Webflow
  • Can be reconnected anytime

Revoking Access

You can also revoke access from Webflow:

  1. Log in to Webflow
  2. Go to Account SettingsIntegrations
  3. Find Asky and click Revoke Access

Troubleshooting

Connection Failed

“Authorization Failed”:

  1. Verify you’re logging into the correct Webflow account
  2. Check you have Editor or Admin access
  3. Try disconnecting and reconnecting

“No Sites Found”:

  1. Verify you have at least one site in Webflow
  2. Check that you have access to the site
  3. Ensure the site has CMS enabled

Publishing Fails

“Collection Not Found”:

  1. Verify collection still exists in Webflow
  2. Check collection hasn’t been renamed
  3. Reconnect and re-select collection

“Field Mapping Error”:

  1. Check required fields are mapped
  2. Verify field types match
  3. Update field mapping in settings

“Rate Limited”:

  1. Wait a few minutes and retry
  2. Avoid publishing many items rapidly
  3. Contact support if persistent

“Missing cms:write scope”:

  1. Reconnect Webflow from Settings → Connections to grant the new permission. This is needed for Asky to provision the Asky Schema field on a collection.

Content Issues

“Content Appears in CMS but Not Live”:

  1. Publish your Webflow site after adding CMS items
  2. CMS items need a site publish to go live

“Formatting Lost”:

  1. Check Webflow collection field type (use Rich text)
  2. Some complex formatting may need adjustment
  3. Review content in Webflow editor

Token Expired

If connection shows “Expired”:

  1. Click Reconnect
  2. Re-authorize with Webflow
  3. Re-select site if prompted

Security & Privacy

Permissions Requested

Asky requests:

  • Read site list
  • Read and write CMS collections (so we can publish items and create the Asky Schema field for you)
  • Read pages (so we can detect your Page Settings → SEO and JSON-LD bindings)
  • Read and write assets (for image uploads)

We do not access:

  • Your Webflow account settings
  • Billing information
  • Site code or design beyond what is required for the integration

Data Flow

  • Content flows one direction: Asky → Webflow
  • We don’t import Webflow content
  • Published content exists independently in Webflow

Best Practices

  1. Test with draft: Publish as draft first to verify formatting
  2. Use appropriate collection: Match content type to collection
  3. Review in Webflow: Check published items before making live
  4. Bind your meta description and JSON-LD once: Do the Page Settings setup the first time you connect a collection so every future publish carries SEO data automatically
  5. Map custom fields: Utilize Webflow’s custom fields for rich content
  6. Regular checks: Verify connection status periodically

Limitations

AspectLimitation
Tables in bodyWebflow’s API blocks HTML in rich text. Use the Copy table HTML workflow above.
Bulk publishOne item at a time
ReferencesAuthor and other reference fields are auto detected when slug names match. Other reference fields require manual mapping.

Next Steps

  • Connect WordPress for additional publishing
Last updated on