# What is ContentSync?

## The Spreadsheet

Content is organized into keys and versions in a spreadsheet. The first column is always the keys, and every other column is a content version. Each row has a content key.

![](/files/-MDfi9RlOcRx8wBvApl0)

### Content Version

> A **Content Version** is a collection of content. These are columns on a spreadsheet.

### Content Key

> A **Content Key** is a unique identifier of a piece of content.  These are rows on a spreadsheet.

## Transferring Content

Content can be updated in both directions [**Push**](/what-is-contentsync.md#upload) and [**Pull**](/what-is-contentsync.md#download). Updating only a portion of a design is known as a **Selective Push** or **Selective Pull** since it will only update the selected design layers.

### Push

A Push transfers content from a design file to a spreadsheet. This will automatically create any missing content keys in the spreadsheet for the design layers that are pushed.

![A Push updates the spreadsheet with the contents of a design.](/files/-MDfYkxLK2yIpFJgFpQ3)

### Pull

A Pull transfers content from a spreadsheet into a design. The design will be updated with the chosen content version.

![A Pull updates a design with the content from a spreadsheet.](/files/-MDfiibm-iwrZVYzFfiM)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.contentsync.com/what-is-contentsync.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
