seo_auto_assign_cta
Automatically assign CTAs to blog articles: matches keywords to side pages and writes CTA header, text, button, link. Skips blogs with existing CTAs or Webflow sync.
Instructions
Optional capstone step — runs AFTER blog articles are published. Auto-suggests a published side-page CTA for each blog article in the batch by matching the article's keywords (cluster + tags + title) against the brand's published side pages, then writes the result to BlogArticle.sidePageInfo (header + ctaText + ctaButtonText + ctaHref). Defaults are safe to re-run: skips blogs that already have a CTA (overwriteExisting=false) and skips Webflow-synced blogs (skipWebflowSynced=true) since CTA edits don't push back to Webflow. Synchronous — returns { updated, skipped, errors, total, results: [{blogId, status, sidePageId?, sidePageSlug?}] } directly; no polling needed. Pass blogIds: "all" to process every blog for the brand, or a list of up to 50 blog IDs. Hard cap of 50 blogs per call. For brands with more uncovered blogs, batch your blogIds arrays in groups of 50. The matcher uses keywords today; reusing an existing CTA header/ctaText body as a matching signal is a planned enhancement.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| blogIds | Yes | Blog article IDs to process, or the literal "all" for every blog in the brand | |
| brandId | No | Brand ID (defaults to active brand) | |
| overwriteExisting | No | Overwrite blogs that already have a sidePageInfo CTA (default false) | |
| skipWebflowSynced | No | Skip blogs with externalProvider=webflow (default true) |