Automatic Pages
Automatic Pages turns public source records into detail URLs using an existing CMS page as their design. The provider controls publication, record text, translations and image metadata. You choose the site, address range and design in Dynamic Content → Automatic Pages. This guide describes CMS 1.104.0, using the plugin catalogue as an example.
A Grid loop repeats cards inside one catalogue page; an automatic-page rule serves a separate detail URL for each eligible record. They use related sources but are configured separately. See Dynamic Content for source selection, loops and field mappings.
Understand what is created
An active rule serves base path + / + record slug. For example, base path /extensions and slug webblocks-appointments produce /extensions/webblocks-appointments; Turkish uses /tr/extensions/webblocks-appointments. The slug stays the same in all six languages. Names and descriptions are translated by the provider.
The CMS renders the URL when requested; it does not create six editable page copies for every new record. Pages contains the design and any retained native pages, not one new stored page per generated URL. A stable record key identifies the record; its slug supplies the public address. Keep both stable. Changing a slug changes its URL; this workflow does not automatically redirect the old slug.
Prepare the source and detail design
The installed provider must expose a collection with publication contract 1.0 and a compatible single-record entity source. A normal collection alone is insufficient. In the example, Published plugin catalog (webblocks-extensions-live::plugins) publishes records through Published plugin (webblocks-extensions-live::plugin). API credentials and upstream publication settings belong to the provider integration, not the rule form.
Create or select a same-site detail-design page with translations for every enabled site language. Bind its page-owned fields to the declared entity source: Header to title, summary text to summary, Image source to image_url, alt text to image_alt and caption to image_caption. These are entity bindings, not Current loop record mappings. A selected record supplies those fields during automatic rendering; the stored record choice and editorial values are not rewritten. Unrelated sources, loops and Shared Slots keep their own behavior.
The selected design needs at least one compatible entity binding. Review the block, destination field and source field under Fields supplied by the selected record. See Dynamic Content image bindings for separate image, alt-text, caption and link connections. Published blocks must be ready for public rendering; a private preview can also show draft blocks.
Create a draft rule
- Open Dynamic Content → Automatic Pages, select the site and choose New draft rule.
- Enter a Rule name and select the eligible Content source.
- Choose the Detail design. Optionally choose the normal Catalogue page; this does not build or configure its card loop.
- Enter the Base path, such as
/extensions, and choose Save draft. Use a canonical, non-reserved path; do not enter a locale prefix or an individual record slug.
The form shows Site languages and the provider's declared entity, slug, title, description and image fields. If no eligible source appears, check the installed provider and its publication contract. Do not invent a second CMS publication-status field. The provider decides which records are public.
Saving a draft does not publish routes or change existing URLs. Active and paused rule configurations are read-only; the form does not offer saving arbitrary changes to their source, base path or design.
Inspect records and preview every language
Choose Inspect records, select a record, examine Inspect source fields, then open Render preview for each enabled site language. The inspector checks actual source values in all six CMS languages: en, tr, de, es, it and fr. The design itself must also contain the enabled page translations.
The provider supplies localized titles, summaries, alt text, captions and other declared fields. An image file may be shared across languages. CMS does not translate missing source content or silently substitute English. Check both image loading and the meaning of its alt text; check links as well as visible copy.
Private previews require authentication, use noindex,nofollow and do not activate routes, create stored detail pages or modify the design. Switching preview language keeps the selected record. A source's declared language support is not a substitute for inspecting its real translations.
Review existing addresses before activation
Open Review transition. The review lists current public record keys, proposed URLs, six-language readiness, existing detail-page IDs and the design selected for each record. A matching native detail page keeps its individual design; records without a matching page use the shared Detail design. The catalogue remains a normal CMS page.
Resolve reported errors before activation: overlapping rule address ranges, conflicting or unmatched native pages, protected designs, missing page translations, invalid source content or unavailable public slug lookup. Keep every native detail translation at the expected record path when preserving an existing address. The review uses the complete publication catalogue, independently of a Grid's filters, limits and pagination.
The review covers source values, rule revision and retained page content. If any changes before activation, review again. The CMS rejects a stale review rather than activating a different transition.
Activate, then publish records at the source
Activate automatic routes is a separate publication action. Super admins and site admins with access to the selected site can activate; editors with site access can inspect the configuration and previews. Saving or previewing does not grant publication authority.
After activation, suppose the Plugins application exposes a valid published record with slug webblocks-appointments. Its source text renders through the selected design at /extensions/webblocks-appointments and the five locale-prefixed counterparts. When another valid record becomes public, the active rule can serve its detail URL without copying a CMS page or activating a new rule for that record. Availability depends on the provider returning a public record with complete translations, not merely on an administrator typing a status word in CMS.
This is the request flow:
Active rule + public slug
-> provider resolves the stable record key
-> source content is validated in all six CMS languages
-> retained design or shared detail design is selected
-> the requested language is rendered at its existing URL
Withdraw a record without leaving an old public copy
Withdraw the record in the source application. When the provider no longer exposes it as public, its automatic detail URLs return 404 in every enabled language, and it no longer contributes automatic search results or sitemap entries. For example, withdrawing webblocks-appointments removes its /extensions/webblocks-appointments detail route and locale variants from public availability. This is an illustrative sequence; following this guide does not change the live example's publication status.
You do not separately unpublish six CMS copies. An active rule owns its detail address range, so a retained native page cannot become a stale public fallback. Do not use Restore previous publication to withdraw one record: that stops the entire rule and can restore the old native publication. The catalogue's card visibility is governed by its collection provider and source freshness; a Grid loop is not the automatic-route rule.
Distinguish withdrawal from a source failure
- Ready: current public content passes the source contract in all six languages; an eligible detail route can render.
- Not public / not found: the record or exact slug is absent or withdrawn; the public detail route returns
404. - Source unavailable: the provider cannot be reached or publication lookup fails; public resolution returns
503. - Incomplete or incompatible content: an identity, slug, title, schema or actual translation fails validation; public resolution returns
503instead of a partially translated page.
For example, an intentional withdrawal is different from a timeout or an invalid French record. Fix the provider or translation when appropriate. The CMS does not expose an older native copy to conceal an upstream problem. Search and sitemap generation also require a valid current publication catalogue; a failed catalogue can return 503 instead of stale or partial discovery results.
Check search, canonical URLs and sitemap
Active rules contribute current public records to the site's normal HTML and JSON search without a manual index rebuild. Search uses the provider's declared publication title, description and public URL in the requested language, not every source field or the retained native text. Newly public and withdrawn records are checked on subsequent searches. Empty or too-short queries keep the normal search behavior without resolving the source.
Generated pages use the record's public URL as canonical and provide enabled-language alternates. The sitemap enumerates current eligible records, including their locale URLs and alternates; normal indexability and access rules still apply. A collection block's record limit does not limit automatic detail discovery. Verify the six URL variants, localized content, image metadata, site search and sitemap after an authorized activation. See Search and Localization.
Restore a previous native publication deliberately
Activation retains complete recovery revisions of matching native detail pages, changes those pages to draft and serves the source through their preserved designs. Their addresses, blocks, images and translations remain stored. Retained designs cannot be deleted or moved to another site while the adoption records remain.
On an active rule, Restore previous publication restores retained pages' original publication statuses and pauses automatic routes. It checks that retained content has not changed since activation and blocks restoration on drift. Protected recovery revisions are not removed by maintenance pruning. A paused rule keeps its configuration and must pass a fresh transition review before reactivation.
Restoration concerns retained native pages; it does not create native copies for new records that only existed as automatic routes. Treat it as a site publication decision, then review the resulting public routes and discovery. See Editorial Workflow.
Provider reference
A standard-1.0 collection declares publishesPages() with a same-plugin entity source and publication field mappings. It implements ContentPublicationSource::publicationPage() for bounded public identities and ContentPublicationSource::publicationRecord() for current record status. Public routes also require ContentPublicationRouteSource::publicationKey() to resolve an exact slug without scanning the catalogue. Both source access policies must allow public resolution.
Enumeration must advance its cursor and reject duplicate identities or slugs. Record lookup distinguishes available, missing, unavailable and incomplete content. Stable keys and lowercase hyphenated slugs must match the six localized records; _locale must match each requested language. Public rendering uses a non-preview context without an admin actor. Do not provide stale success data after withdrawal or label English content as another language. See Dynamic Content source contract for field types, images and provider-owned translations.