# Draft/published system

You can decide to activate the draft/published system on a per-model basis:

(Video content)

If you do so:

-   When you create a new record, it will be put into a *Draft* status. This means that the record is still not published: you can continue making changes and saving the record without having to worry about showing unfinished content to your end users.
    
-   Once you're satisfied with the changes, you can click on the *Publish* button: the latest revision of your record will be marked as the *Published version*, and it will be instantly available in the DatoCMS APIs:
    
    -   With the [Content Delivery API](https://www.datocms.com/docs/content-delivery-api.md) and the [Realtime Updates API](https://www.datocms.com/docs/real-time-updates-api.md), the default is to return only the published record, but you can request to consider the draft with the header [`X-Include-Drafts: true`](https://www.datocms.com/docs/content-delivery-api/api-endpoints.md#preview-mode-to-retrieve-draft-contenthttps://www.datocms.com/docs/content-delivery-api/api-endpoints#preview-mode-to-retrieve-draft-content).
        
    -   With the [Content Management API](https://www.datocms.com/docs/content-management-api.md), you can request to consider the published or draft versions of records with the parameter [`?version=current`](https://www.datocms.com/docs/content-management-api/resources/item/instances.md) or [`?version=published`](https://www.datocms.com/docs/content-management-api/resources/item/instances.md).
        
-   If you make a change to a published record, its status will be become **Updated**. Again, those changes won't be visible to end users and published until you explicitly click on the *Publish* button again.
    

> [!POSITIVE]
> For more information on how the system manages the draft/published status, you can refer to this in-depth guide: [Data consistency: key concepts and implications](https://www.datocms.com/docs/content-modelling/data-migration.md).

### Saving Invalid Drafts

In some instances you may need to create posts via the UI or the API that may not have all validations in place (for instance, bulk creating records missing a specific required field like a title).

In these cases, if you have the Draft/Published flow enabled, you can also choose to allow saving records on a draft stage without passing all validations.

The feature affects the CMS and, of course, the CMA (Content Management API). When draft saving is active, it's possible to POST/PUT invalid records to CMA and have them saved: the endpoints respond with a 200, and the record just saved as a payload.

(Video content)

However, validations will take effect when the record is published. If the record is not valid, publication fails, and editors need to fix the content to ensure all rules are handled before proceeding to move the record into the Published stage.

### Finer grain control on linked records

In case of linked records you can decide which behaviour to have when a record gets published. For example, you can determine if all the linked records should be published as well or if you want to emit a validation error. The same goes for unpublishing and deleting.

In the field validation you can pick the option that you prefer:

(Video content)

To know more about how DatoCMS saves versions, check out this video tutorial:

[

(Image content)

Working with entry & asset versions

Play video »

](https://youtu.be/qJhobECFQYk)

## Related content in "General concepts"

- [What is DatoCMS?](https://www.datocms.com/docs/general-concepts.md)

- [Workspaces: Organizations and Personal Accounts](https://www.datocms.com/docs/general-concepts/organizations-and-accounts.md)
- [Project collaborators, roles and permissions](https://www.datocms.com/docs/general-concepts/roles-and-permission-system.md)

- [The content schema](https://www.datocms.com/docs/general-concepts/data-modelling.md)
- [Organizing content](https://www.datocms.com/docs/general-concepts/navigation-bar.md)

- [Record versioning](https://www.datocms.com/docs/general-concepts/versioning.md)
- [Draft/published system](https://www.datocms.com/docs/general-concepts/draft-published.md)

- [Scheduled publishing](https://www.datocms.com/docs/general-concepts/scheduled-publishing-unpublishing.md)
- [Media Area](https://www.datocms.com/docs/general-concepts/media-area.md)

- [Localization](https://www.datocms.com/docs/general-concepts/localization.md)
- [Visual Editing](https://www.datocms.com/docs/general-concepts/visual-editing.md)

- [Record-level collaboration: Presence & locking](https://www.datocms.com/docs/general-concepts/collaboration-features.md)
- [Workflows](https://www.datocms.com/docs/general-concepts/workflows.md)

- [Webhooks](https://www.datocms.com/docs/general-concepts/webhooks.md)
- [Plugins](https://www.datocms.com/docs/general-concepts/plugins.md)

- [DatoCMS Site Search](https://www.datocms.com/docs/general-concepts/site-search.md)
- [Project Templates](https://www.datocms.com/docs/general-concepts/project-starters-and-templates.md)

- [How your website and DatoCMS work together](https://www.datocms.com/docs/general-concepts/how-your-website-and-datocms-work-together.md)
- [How to deploy](https://www.datocms.com/docs/general-concepts/deployment.md)

- [Primary and sandbox environments](https://www.datocms.com/docs/general-concepts/primary-and-sandbox-environments.md)
- [Project usages](https://www.datocms.com/docs/general-concepts/project-account-usages.md)

- [Audit Logs](https://www.datocms.com/docs/general-concepts/audit-logs.md)