# 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.

![](https://1554041498-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MDWTX8OcRpD4pfUmZFB%2F-MDfgxW9GQeNZ2i4fDHl%2F-MDfi9RlOcRx8wBvApl0%2FSpreadsheet.png?alt=media\&token=1805d404-c41b-4846-b05a-3fb7edd7072d)

### 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**](#upload) and [**Pull**](#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.](https://1554041498-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MDWTX8OcRpD4pfUmZFB%2F-MDfXsrYCwFe52_BK6pM%2F-MDfYkxLK2yIpFJgFpQ3%2FPush.png?alt=media\&token=0f5a97bd-3ca8-4729-85d4-f98020a409c2)

### 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.](https://1554041498-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MDWTX8OcRpD4pfUmZFB%2F-MDfgxW9GQeNZ2i4fDHl%2F-MDfiibm-iwrZVYzFfiM%2FPull.png?alt=media\&token=d5dd5194-10d7-428f-a036-ed6ef37efdbf)
