Content Objects
Publishing and addresses
Keep records as drafts, publish or schedule them, and give each one an address per language that your site can use.
View as MarkdownWith Publishing switched on for a type, new records start as drafts: nothing reaches your site or the Objects API until you publish them. With it off, a record is live as soon as you create it. You can also give a type addresses, so every record has a readable path such as /services/kitchen-fitting.
Turn publishing on or off for a type
New types you create in the dashboard have Publishing on. Types that existed before keep it off until you switch it on.
- Open the type builder (the gear icon on Content → Objects, or Type on the records list).
- In the Publishing and addresses card, switch Publishing on or off ("Records of this type can be published to your public site and API.").
- Click Save.
Switching it on leaves existing records live, with their creation date as Published at; only records created from then on start as drafts. You can only switch it off once the type has no drafts: while it has any, Save shows "Publish or delete the drafts of this type first." Without Publishing there is no Publish button, so publish or delete the drafts, then switch it off.
Draft, Published and Scheduled
A publishable type adds a Status column to the records list, and the record page shows the same badge next to its title:
| Badge | Meaning | On your site and API |
|---|---|---|
| Draft | Not published. New records start here. | Hidden. |
| Published | Live, with a Published at date that is now or in the past. | Visible. |
| Scheduled | Published with a Published at date in the future. | Hidden until that moment, then it appears on its own. |
The records list also gets a Status filter with Draft and Published (a scheduled record counts as published there).
Publish, unpublish and reschedule
On a record of a publishable type, the Published at card sits above the form. It holds a date and time field and the hint "Leave empty to keep the previous publish date, or publish now if there is none. A future date schedules the record."
- Publish (shown on a draft): publishes the record. With the field empty it goes live now (or on the date it was published at before); with a future date it becomes Scheduled.
- Update date (shown on a published or scheduled record once you change the field): moves the Published at date, for example to reschedule a launch.
- Unpublish: sets the record back to Draft. It disappears from your site and API at once. Its addresses are kept.
Editing a published record does not unpublish it, and your changes are live as soon as you click Save. If you need to work on a record privately, unpublish it first.
If the type has addresses, a record needs an address in the default language before it can be published. Publish refuses with "Add an address for {language} before publishing." and shows the message above the Addresses card.
Addresses
An address is the last part of a record's path. The type decides how addresses are built; the record holds one per language.
In the Publishing and addresses card of the type builder:
- Address (slug) source picks the text property the address comes from ("Each record gets its address from this text property."). None (no addresses) switches addresses off. Only text properties are offered.
- Address prefix per language appears once a source is chosen, with one field per content language. A prefix is empty, or starts with a slash and has no trailing slash, for example
/services. The full path of a record is its prefix plus/plus its address. - A prefix can only be used by one type per language. If another type already uses it, saving fails with "Another type already uses this address prefix.".
- If no content language is set, the card says to set one under Settings → Business. See Translations.
On a record, the Addresses card lists one row per content language, showing the full path (prefix plus address) or "No address yet". Click Edit to type a new address and Save. The change applies immediately.
- A new record gets its addresses automatically from the source property, one per language (a language without its own text falls back to the default language's). Addresses are made of lowercase letters, digits and hyphens. When an address is taken in that language, a number is added (
kitchen-fitting-2). - Editing the title later does not change the address. Your links stay put unless you edit the address yourself.
- Two records of one type cannot share an address in a language: you get "This address is already used.". An address must be lowercase letters, digits and hyphens ("Use lowercase letters, digits and hyphens.").
Redirects when an address changes
When you change an address and the language has a prefix, Borkol records a permanent redirect from the old path to the new one, so links and search results keep working. Storefronts read them with the redirects endpoint. A language without a prefix gets no redirect.
What your storefront sees
Only published records that are live are served, and they carry their published_at and, for types with addresses, their slugs. Drafts and scheduled records answer "not found". See Records for the exact shape and Webhooks for the object_record.* events that tell your site when to update.