Skip to main content

Overview

Surface content generation allows you to create channel-specific versions of product content that are automatically optimized for each platform’s requirements. Instead of manually editing titles for Google Shopping character limits or rewriting descriptions for mobile screens, the AI adapts the content based on surface constraints you define.

Prerequisites

  • A workspace with at least one catalog and products
  • API key with write:surfaces scope (for API usage)
  • At least one surface available (system surfaces are always available)

Generate via Canvas

The simplest way to generate surface-adapted content is through the Canvas UI:
1

Open Canvas for a product

Navigate to your catalog, find the product, and open its Canvas.
2

Select a surface

Use the surface selector dropdown at the top of the Canvas. Choose from system surfaces (Google Shopping, OpenAI Commerce, etc.) or any custom surfaces your workspace has configured.
3

Generate content

Click any Canvas action (Text, SEO, etc.). The AI applies the surface constraints automatically — titles will respect the max length, tone will match the surface requirements, and format hints guide the output.
4

Review and commit

Review the generated content in the surface preview. When satisfied, commit the content. It is stored as a surface override for this product.
5

Content is now available

The override is immediately available to all channels. The next Canal 1 feed sync, Canal 2 search result, or Canal 3 tool call for this product + surface will return the adapted content.

Generate via API

Step 1: List available surfaces

Response:

Step 2: Generate content with surface constraints

Trigger Canvas generation with a surfaceKey parameter:

Step 3: Read the resolved product

Response:

Step 4: Set overrides manually (optional)

Skip AI generation and set overrides directly:

Serve via Channels

Canal 1 — Feed API

Surface overrides are applied automatically when the platform maps to a surface:
Products with google_shopping overrides will return the adapted title and description. Products without overrides return the universal content.

Canal 2 — Search API

All products in the result set will have surface resolution applied. The surface parameter accepts any valid surface key.

Canal 3 — MCP Tools

Or use the dedicated surface tools:

Create Custom Surfaces

The surface_key must match ^[a-z][a-z0-9_]{1,48}[a-z0-9]$. It cannot be changed after creation.

Delete a Surface Override

To revert a product back to universal content for a surface:

Best Practices

  • Start with system surfaces for standard platforms (Google Shopping, OpenAI Commerce). They are pre-configured with optimal constraints.
  • Use Canvas for generation rather than setting overrides manually — the AI produces better results when it understands the surface constraints during generation.
  • Create custom surfaces sparingly — each new surface adds content generation and storage overhead per product. Only create surfaces you’ll actively generate overrides for.
  • Review before publishing — generated surface content should be reviewed, especially for tone and accuracy, before relying on it in production channels.
  • Cache warm-up — after creating a surface or updating constraints, the cache warmer runs automatically for the top 100 products. New products are warmed on first access.
Last modified on March 19, 2026