> ## Documentation Index
> Fetch the complete documentation index at: https://docs.omni.co/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://docs.omni.co/feedback

```json
{
  "path": "/content/develop/index",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Editing & publishing content

> Get started with Omni's content development workflows.

Omni supports two ways to create and modify content:

* [**Draft**](#draft-only)
* [**Branch Mode**](#branch-mode)

## Draft-only

Every Omni document has two states: **draft** and **published**. When you create a draft, you're creating a saved - but unpublished - version of a document, including its workbook and dashboard. You can make changes in the draft without impacting the live version of the document.

Publishing a draft creates a new, read-only version of the document, which is the version that users with access will see when they view the document. Drafts are specific to documents and a document can only have one draft at a time. This makes drafts ideal for things like [quick changes](/content/develop/workflows#applying-small-changes-to-one-document), such as adding a new chart or calculated field.

If you added a new field to a model, your workflow to add the field to documents might look like this:

```mermaid theme={null}
flowchart LR
  one("`Enter **Edit** 
  mode in a document`") 
  two("`Add new field
  to a query`")
  three("`Publish
  changes`")
  
  one --> two
  two --> three
```

## Branch Mode

If you're familiar with git - and it's okay if you're not! - branches in Omni are similar.

In Omni, a branch is an isolated space that allows you to modify a model and/or content without affecting the live versions, typically referred to as production. This enables you to experiment, update, and refine changes at your own pace.

Merging a branch immediately applies all changes in the branch to the live environment. It also publishes an updated version of any documents that were modified as part of the branch. The ability to stage changes across documents and the model that backs them makes branches ideal for bigger changes, such as adding a new field to visualizations in separate dashboards.

Let's go back to the example in the [drafts section](#draft-only), where you added a new field to a model. If you use Branch Mode, your workflow might look like this:

```mermaid theme={null}
flowchart TB 
  subgraph documentA
  direction LR
  editDoc("`Enter **Edit**
  mode`")
  fieldQuery("`Add new field
  to a query`")

  editDoc --> fieldQuery
  end

  subgraph modelIDE
  direction LR
  branch("`Create
  branch`")
  newField("`Add new 
  field  to view`")

  branch --> newField
  end
  
  repeat("`Repeat for
  documents B, C, & D`")
  merge(Merge branch)
  prod@{ shape: text, label: "Publish documents & integrate field into model" }

  modelIDE --> documentA
  documentA --> repeat
  repeat --> documentA
  repeat --> merge
  merge --> prod
```

## Comparing drafts and branches

While both drafts and branches allow you to make changes without impacting live content, there are times when one approach may be a better fit. If you need some guidance, use the following table as a starting point:

|                                          | Document drafts                                        | Branches                                                                                                     |
| ---------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ |
| **Works with**                           | One document at a time                                 | Documents and the associated model                                                                           |
| **Useful for**                           | Changes to a single document                           | - Changes to multiple documents- Changes to a model and documents                                            |
| **Drafts**                               | One per document at any given time                     | One per document, per branch                                                                                 |
| **Required permissions**                 | Editor or Manager content permissions for the document | - Querier, Modeler, Connection Admin to create a branch<br />- Connection Admin or Modeler to merge a branch |
| [**git integration**](/integrations/dbt) | Not supported                                          | Only commits model changes to git, but content changes are published when branches are merged                |

## Getting started

Check out these guides to get started working with your Omni content:

* [Drafting and publishing content](/content/develop/drafts)
* [Using Branch Mode](/content/develop/branch-mode)
