What are Surfaces?
A Surface is a named display context that defines how product content should be adapted for a specific distribution channel or platform. Each surface has constraints — max title length, tone of voice, format hints — that guide the AI when generating content. Without surfaces, the Canvas generates “universal” content: a single version of each product’s title, description, and attributes that serves as the default across all channels. With surfaces, you can generate channel-specific versions that are optimized for each platform’s requirements and audience expectations.System Surfaces
Alana provides five pre-configured system surfaces that cover the most common distribution channels. System surfaces cannot be deleted, but you can generate overrides for any product on any of them.Custom Surfaces
Workspaces can create custom surfaces for any display context they need. A custom surface has a uniquesurface_key (lowercase letters, digits, and underscores), a display name, and optional constraints.
Examples of custom surfaces:
tiktok_shop— short-form descriptions optimized for TikTok’s buying intenttrade_show_kiosk— large-display format with bold headlineswhatsapp_catalog— catalog API format for WhatsApp Businessb2b_wholesale— technical specifications in a formal tone
How Surface Resolution Works
When a channel requests product content with a surface context, Alana resolves the content through a three-tier cache:Surface Overrides
A surface override is a partial set of product fields stored per-product, per-surface in theproduct_surfaces table. Overrides are generated by:
- Canvas: Select a surface before generating content; the AI applies the surface constraints automatically
- API: PUT a partial product object to
/api/workspace/{id}/products/{pid}/surfaces/{key} - Bulk: Generate overrides for multiple products at once via the Batch API
Surfaces Across Channels
Each channel resolves surfaces differently:Canal 1 — Feed API
The platform determines the surface implicitly. There is nosurface query parameter — the feed endpoint selects the surface based on the platform:
vtex, shopify, nuvemshop) receive universal content.
Canal 2 — Search API
Pass thesurface query parameter to receive surface-adapted content:
surface returns universal content.
Canal 3 — MCP Tools
AI agents can request surface-resolved content using thesurface parameter in tool calls, or use the dedicated surface tools:
list_surfaces— enumerate available surfaces for a workspaceget_surface_product— fetch a product with a specific surface applied