Client Tools
Client tools enable end-to-end content production for specific domains. They manage voice profiles, save articles with domain tracking, and publish directly to CMS platforms.
aeo_get_client_profile
Get everything needed to write for a client: audit data, voice profile, CMS connection, and recent articles. Returns null for any missing component. The CMS access token is stripped from the response for security.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain | string | Required | Client domain (e.g., "understoodcare.com") |
Example
Response Structure
The response includes audit data with weak criteria highlighted, domain taxonomy, voice profile settings, CMS connection metadata (token excluded), and a list of recent articles.
aeo_upsert_client_author
Create or update a domain voice profile. One profile per domain. Covers tone, writing rules, brand stance, and content guidelines. Only provided fields are updated on an existing profile.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain | string | Required | Client domain |
name | string | Required | Author/voice profile name |
expertise | string | Optional | Domain expertise |
brand_stance | string | Optional | Brand positioning statement |
writing_sample | string | Optional | Sample writing for voice matching |
tone | string | Optional | Writing tone: conversational, professional, bold, academic |
depth | string | Optional | Content depth: short, standard, deep |
industry | string | Optional | Industry vertical |
reading_level | string | Optional | Target reading level: beginner, intermediate, expert |
do_rules | string[] | Optional | Always-do writing rules |
dont_rules | string[] | Optional | Never-do writing rules |
signature_quirks | string | Optional | Voice personality notes |
content_guidelines | object | Optional | CMS-specific content rules (output_format, internal_link_base, category_mapping, seo) |
target_criteria | string[] | Optional | AEO criteria slugs to focus on (e.g., "qa-content", "original-data") |
Example
aeo_save_client_article
Save a client article as clean HTML to pipeline executions with domain tracking. Automatically snapshots the current author profile for the domain. The article enters the review workflow with draft status.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain | string | Required | Client domain |
topic_title | string | Required | Article title |
content_html | string | Required | Full article as clean HTML |
word_count | number | Required | Total word count |
slug | string | Required | URL slug for the article |
meta_description | string | Optional | SEO meta description |
category | string | Optional | Article category |
aeo_criteria_targeted | string[] | Optional | AEO criteria this article targets |
aeo_publish_to_cms
Publish a saved article to the client CMS. Provider-agnostic - dispatches based on the connection type configured for the domain. Currently supports Webflow.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain | string | Required | Client domain |
execution_id | string | Required | Pipeline execution ID to publish |
publish_live | boolean | Optional | Publish live (true) or as draft (false)Default: false |
publish_live=true only when you are confident the article is ready. Draft mode (default) lets you review in the CMS before going live.Webflow Integration Details
When the domain has a Webflow CMS connection, the tool automatically handles Webflow-specific content processing:
- Strips
<h1>from content (Webflow uses thenamefield for the page title) - Extracts the FAQ section into a separate CMS field via
field_mapping.faq - Removes the Related Articles section from the main content body
- Resolves category names to Webflow option IDs via
config.categoryMapping - Sets
config.defaultImageas a placeholder for required image fields - Applies a 500ms rate limit delay between API calls
admin.aeocontent.ai/publishing.aeo_cms_list_content
List existing content in a client CMS for deduplication and cross-linking. Returns item titles, slugs, and timestamps from the connected CMS collection.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
domain | string | Required | Client domain |
limit | number | Optional | Max items to returnDefault: 50 |
aeo_cms_list_content before saving a new article to check for duplicate topics and find cross-linking opportunities with existing content.Workflow Example
A typical client content production workflow uses these tools in sequence. Start by loading the client profile, check existing content for gaps, write the article, save it, and publish when ready.
Load client context
aeo_get_client_profile({ domain: "understoodcare.com" })
Get audit data, voice profile, and weak criteria.
Check existing content
aeo_cms_list_content({ domain: "understoodcare.com" })
Find gaps and cross-linking opportunities.
Write article
Agent writes article targeting weak criteria
Focus on criteria with lowest scores from the audit.
Save draft
aeo_save_client_article({ domain: "understoodcare.com", ... })
Article enters review workflow as draft.
Publish to CMS
aeo_publish_to_cms({ domain: "understoodcare.com", execution_id: "..." })
Push to Webflow (or other connected CMS).