# Publish Rules

### About this export

| Field | Value |
| --- | --- |
| **content_type** | lesson |
| **platform** | contentstack-academy |
| **source_url** | https://www.contentstack.com/academy/courses/contentstack-end-user-training-eut-/publish-rules |
| **course_slug** | contentstack-end-user-training-eut- |
| **lesson_slug** | publish-rules |
| **markdown_file_url** | /academy/md/courses/contentstack-end-user-training-eut-/publish-rules.md |
| **generated_at** | 2026-05-28T12:30:02.340Z |

> Part of **[Contentstack End User Training (EUT)](https://www.contentstack.com/academy/courses/contentstack-end-user-training-eut-)** on Contentstack Academy. **Academy MD v3** — structured for retrieval; no quiz or assessment keys.

<!-- ai_metadata: {"lesson_id":"38","type":"text","duration_minutes":1,"topics":["Publish","Rules"]} -->

#### Lesson text

**Publish Rules** are conditions that you define for your content publishing. They allow you to govern whether entries can be published with or without someone’s approval, or only when the content is at a particular stage.

![CSendUserTraining\_L38\_img-1.png](https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/bltab3f600083a5d5d0/67ddd03d37e25a07371e4bb0/CSendUserTraining_L38_img-1.png)

# **Exercise Video**

Follow along with the video to practice governance, workflows, and permissions.

# **Understanding with an example**

*   You can define a publishing rule in which every entry first needs to be approved by a particular user, such as John Smith. Unless John Smith approves it, the entry cannot be published. Alternatively, if you define that the Stage should be Complete to be published, the entry will not be published unless the Complete Stage is reached.
    

Only the stack owner, the administrator, or the developer can define the Publish Rules.

Publish Rules are made up of two parts:

*   **Parameters** -  For every publish rule, you need to define the following parameters:
    

1.  **Environment** - The environment for which the publish rule will be applicable.
    
2.  **Content type** - The content type to which the publish rule will be applied.
    
3.  **Action** - Whether the publishing rule is for publish or unpublish (or both) action.
    
4.  **Language** - The language for which the rule is applicable.
    

Once you define the parameters, define a condition.

*   **Conditions** - You can use either or both of the following conditions for your publishing rule.
    

1.  **Approver** - Use this condition if you want to add an approver to all the entries that are being published or unpublished. Add the user(s)/role(s) who should be authorized to approve the publishing or unpublishing of an entry.  
    Example: If you assign 'John Smith' as the Approver, every entry sent for publishing or unpublishing (and meets the required parameters) will go to John Smith for approval. The entry cannot be published or unpublished unless John approves it. And, if you assign a role, let's say 'Content Approver,' as the Approver, every entry sent for publishing or unpublishing and meets the required parameters will go to every user assigned this role for approval. The entry cannot be published or unpublished unless any user assigned the 'Content Approver' role approves it.
    
2.  **Stage** - Use this condition to allow the publishing or unpublishing of an entry only if it has reached a particular workflow stage. When this condition is defined, an entry cannot be published or unpublished unless it comes to the defined Stage while creating content.  
    Example: If you have selected 'Complete' here, an entry (that matches the parameters defined above) cannot be published unless it reaches the Complete Stage.
    

Key points to remember:

*   Setting up publish rules is optional.
    
*   You must choose at least one condition (Approver(s) or Stage) for a publishing rule. You can select both if required, but at least one is mandatory.
    
*   A publishing rule with Approver (s) as the condition can work independently of workflows. This means you can add one or more publish rules (with Approver (s) under conditions) even if you have not added any workflows for your stack.
    

However, you will need at least one workflow to use the Stage condition for your publishing rule. Once a rule is in place, whenever a content manager attempts to publish or unpublish an entry on the specified environment, Contentstack will either send the entry for approval (if approvers are added as a condition) or check if the entry has reached the specified Stage (if the Stage is added as a condition). It will then return the response accordingly.

**Potential Use Case**:

*   Publish Rules are helpful to set up specific rules for any entry to be published in a particular environment or language with appropriate approvals.
    
*   You can setup a Publish Rule that no entry is allowed to be published on production till it does not reach an approved stage in the workflow.
    

# **Further Reading**

*   [About Publish Rules](https://www.contentstack.com/docs/developers/set-up-workflows-and-publish-rules/about-publish-rules/)
    
*   [About Publish Rule Components](https://www.contentstack.com/docs/developers/set-up-workflows-and-publish-rules/about-publish-rule-components/)

#### Key takeaways

- Connect **Publish Rules** back to your stack configuration before moving to the next module.
- Capture one concrete artifact (screenshot, Postman call, or code snippet) that proves the step works in your environment.
- Re-read the delivery versus management boundary for anything you changed in the entry model.

## Supplement for indexing

### Content summary

Publish Rules. Publish Rules are conditions that you define for your content publishing. They allow you to govern whether entries can be published with or without someone’s approval, or only when the content is at a particular stage. ! CSendUserTraining\ L38\ img-1.png (https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/bltab3f600083a5d5d0/67ddd03d37e25a07371e4bb0/CSendUserTraining L38 img-1.png) Exercise Video Follow along with the video to practice governance, workflows, and permissions. Understanding with an example You can define a publishing rule in which every entry first needs to be approved by a particular user, such as John Smith. Unless John Smith approves it, the entry cannot be publis

### Retrieval tags

- Publish
- Rules
- contentstack-end-user-training-eut-
- lesson 38
- Publish Rules
- contentstack-end-user-training-eut- lesson

### Indexing notes

Index this lesson as a primary chunk tagged with lesson_id "38" and topics: [Publish, Rules].
Parent course slug: contentstack-end-user-training-eut-. Use asset_references URLs as thumbnail hints in search results when present.
Never surface LMS quiz content or assessment answers from this file.

### Asset references

| Label | URL |
| --- | --- |
| CSendUserTraining\_L38\_img-1.png | `https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/bltab3f600083a5d5d0/67ddd03d37e25a07371e4bb0/CSendUserTraining_L38_img-1.png` |

### External links

| Label | URL |
| --- | --- |
| Contentstack Academy home | `https://www.contentstack.com/academy/` |
| Training instance setup | `https://www.contentstack.com/academy/training-instance` |
| Academy playground (GitHub) | `https://github.com/contentstack/contentstack-academy-playground` |
| Contentstack documentation | `https://www.contentstack.com/docs/` |
| CSendUserTraining\_L38\_img-1.png | `https://images.contentstack.io/v3/assets/bltebc53cfaf0dd6403/bltab3f600083a5d5d0/67ddd03d37e25a07371e4bb0/CSendUserTraining_L38_img-1.png` |
| About Publish Rules | `https://www.contentstack.com/docs/developers/set-up-workflows-and-publish-rules/about-publish-rules/` |
| About Publish Rule Components | `https://www.contentstack.com/docs/developers/set-up-workflows-and-publish-rules/about-publish-rule-components/` |
