seo_edit_cluster
Edit SEO cluster details: update name, pillar keyword, description, content mix, and brief assignments. Manage membership by replacing the keywordsMeta array with the complete set of keywords.
Instructions
Edit a cluster's name, pillarKeyword, description, keywordsMeta, contentMix, and/or briefAssignments. Housekeeping op — not part of the main flow. At least one field must be supplied. MEMBERSHIP: there is no separate add/remove-member endpoint. Cluster membership is entirely controlled by keywordsMeta — it is a REPLACEMENT array, not a delta/patch. To add a keyword to the cluster, fetch the cluster's current keywordsMeta (seo_list_clusters with detail="full"), append a new entry {keyword, id, volume, kd, intent, relevance, priority, excluded?} (use the SeoScoredKeyword id from seo_list_keywords / seo_list_keyword_ids), and send the WHOLE array back. To remove a keyword, send the array with that entry omitted. Sending a partial array will drop the missing members from the cluster. contentMix must be an object with blog/tool/comparison/landing fractions summing to 1.0 (the server normalizes small rounding drift). briefAssignments is an array of {keyword, type, ...} entries (type ∈ hub|blog|comparison|tool|landing|skip); duplicate keywords are rejected. Example (rename): {"clusterId":"kwc_123","name":"Better cluster name"}. Example (remove a member): fetch full keywordsMeta, filter out the unwanted keyword, then {"clusterId":"kwc_123","keywordsMeta":[...remaining members]}.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New cluster name | |
| brandId | No | Brand ID (defaults to active brand) | |
| clusterId | Yes | Cluster ID from seo_list_clusters | |
| contentMix | No | Content-type distribution {blog, tool, comparison, landing} — fractions must sum to 1.0 | |
| description | No | New description (null clears it) | |
| keywordsMeta | No | REPLACEMENT array of cluster members: [{keyword, id?, volume?, kd?, intent?, relevance?, priority?, excluded?}, ...]. This is how membership is added/removed — see tool description. | |
| pillarKeyword | No | New pillar keyword (null clears it) | |
| briefAssignments | No | Per-keyword brief assignments: [{keyword, type, ...}, ...] |