For the complete documentation index, see llms.txt. This page is also available as Markdown.

Content Updates

Track when pages are published or refreshed across your workflows, Grid exports, API, and MCP. Audit content updates without manually refreshing pages.

Open Insights → Onsite → Content Updates to review your content publishing activity. Every time a page is published or refreshed through AirOps, the update is recorded and surfaced here, whether it was made via MCP, API, or a workflow step. Use this history to measure output, correlate content changes with visibility outcomes like citations and clicks, and identify pages that need a refresh.

Content updates are captured automatically when you use native CMS integration steps in workflows or Grid exports. For custom integrations (Code steps, API calls), you can log content updates explicitly using the Track Content Update workflow step, the Content Updates API, or the track_aeo_page_content_update MCP tool.

If Automated Change Detection is enabled for your workspace, every content update you log also triggers a fresh page capture so the diff in the page detail's Changes table stays current. Detected changes flow back into this feed as Page Refreshed content updates tagged as auto-detected.


How Content Updates Are Captured

Source
How it works
Action required

A weekly capture of every enrolled page records a Page Refreshed content update when a meaningful change is detected, no CMS integration required

None (early access)

Native CMS step (workflow)

Automatically detected when a supported CMS step creates or updates content

None

Grid export

Automatically detected when exporting rows to a supported CMS via Grid

None

Track Content Update step

Manually added to a workflow to record a content update

Add step and configure URL + type

MCP

The track_aeo_page_content_update tool records content updates from any MCP client

Call the tool with URL and type

Public API

POST /public_api/brand_kits/{brand_kit_id}/content_updates creates content updates programmatically

Send API request


Automatic Detection from CMS Integrations

When a workflow uses a native CMS step to create or update content, AirOps captures the content update automatically. The system resolves the page URL from the CMS API response and determines whether the action was a publish or refresh.

Supported integrations in workflows

Integration
Publish (new page)
Refresh (update)

Webflow

Create collection item

Update collection item

WordPress

Create post

Update post

Shopify

Create article, Create collection

Update product, Update collection

Ghost

Create post, Publish post

Update post

Supported integrations in Grid exports

Integration
Publish
Refresh

Webflow

New row export

Existing row update

WordPress

New row export

Existing row update


Types

Type
Meaning

Page Published

A new page was created and published

Page Refreshed

An existing page had its content updated


Brand Kit Association

Every content update requires the page URL to match a domain configured in your workspace's Brand Kit. AirOps checks the URL domain against all Brand Kit domains and brand URLs automatically. No manual Brand Kit selection is needed.

A page URL can match more than one Brand Kit. If your workspace has multiple Brand Kits on the same domain (for example, regional or archived variants), a separate content update is recorded for each matching Brand Kit.

When Brand Kits use path-specific brand URLs, such as locale subpaths like example.com/es/, content updates route to the most specific matching Brand Kit. A URL under example.com/es/… is recorded against the /es/ Brand Kit, while a URL that isn't under any path-specific Brand Kit is recorded against the domain-level Brand Kit(s).

If no match is found, automatic detection silently skips the content update. Manual sources (Track Content Update step, API, MCP) return an error so you can correct the URL.


Content Updates Dashboard

Insights → Onsite → Content Updates has two main views:

Updates Over Time

A line chart with daily counts of publish and refresh content updates over the selected date range. Each type has its own line, so you can see publishing velocity and refresh cadence at a glance.

Content Updates History

A sortable, filterable table with the following columns:

Column
Description

Type

Page Published or Page Refreshed

Source

Where the content update originated (workflow, grid, api, mcp)

URL

The page URL associated with the content update

Date

When the content update was recorded

Metadata

Key-value pairs with additional context

Bulk selection and deletion are supported for cleanup.


Content Updates in the Page Detail View

When viewing a page's detail view, a Related Content Updates card appears at the bottom showing all content updates whose URL matches that page. This gives you a timeline of every publish and refresh for that specific page, with columns for type, source, date, and metadata.


Last Refreshed and Stale Pages

The Pages table includes a Last Refreshed column showing how long ago the most recent content update was recorded for each page (for example, "6 months ago"). This column is only visible while a stale pages filter is active.

Use the Stale Pages smart filter to surface pages whose most recent content update is older than 6 months. Additional filter presets are available: over 1 month, 3 months, 6 months, and 1 year. Pages with no content update record are not included in the filtered results. Pair the Stale Pages filter with Refresh Opportunities to prioritize which pages to refresh first based on visibility impact.


Content Update Metadata

Each content update can carry metadata, which are key-value pairs providing additional context about the content update.

System metadata

Automatically attached to every content update:

Key
Description

airops_app_id

The workflow ID that generated the content update

airops_app_type

The type of AirOps app (e.g., workflow)

airops_execution_id

The workflow execution ID

airops_integration_page_status

The page status reported by the CMS (e.g., published, draft)

airops_grid_table_id

The Grid table ID (for Grid export content updates)

Custom attributes

You can add your own key-value pairs (up to 20 per content update) when using the Track Content Update step, API, or MCP. In the Track Content Update step, both keys and values support Liquid templating.


Programmatic Access

Create, list, and retrieve content updates programmatically using the Content Updates API. Content updates created via the API have source api. The URL must match a Brand Kit domain in your workspace.

The track_aeo_page_content_update and list_aeo_page_content_updates MCP tools provide the same capabilities from any MCP-compatible client.

Last updated

Was this helpful?