> ## Documentation index
> Fetch the complete documentation index at: https://dash.robopost.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Import posts from a CSV file

Write your posts in a spreadsheet, one per row, and import them all at once. Before anything is scheduled,
Robopost shows every post so you can pick the channels, tags and repeats and fix the dates.

**You need:** a spreadsheet app that can save a `.csv` file, and the **Schedule Posts** right on your team.

## Get the template

1. In the sidebar, click **Posts → New post**, then **Import from CSV** ([CSV import](https://dash.robopost.app/post-csv-bulk-import)).
2. Click **Example CSV file** to download a template.

## Fill in the file

Each row is one post. Robopost reads every row as a post, so don't keep a header row with column names.
Use these columns, in this order:

| Column | What to put in it | Required |
| --- | --- | --- |
| 1 | The post text | Text or media |
| 2 | Media links, separated by commas | Text or media |
| 3 | Date and time, in ISO 8601 format | Yes |
| 4 | A link: Pinterest destination link, Google Business Profile button link | No |
| 5 | Video type: `VIDEO` (default), `SHORT` or `STORY` | No |
| 6 | A title: Pinterest Pin title, YouTube video title, TikTok photo title | No |

```csv
"Our spring sale starts today!",https://example.com/sale.jpg,2026-12-01T09:00:00-05:00,https://example.com/sale,,Spring sale
"Behind the scenes",https://example.com/clip.mp4,2026-12-02T17:30:00Z,,SHORT,
```

### Media links (column 2)

- Use direct links to the files, starting with `https://`. Google Drive share links work too, as long as
  anyone with the link can view the file.
- Robopost downloads JPEG and PNG images, one video and one GIF per row. Other image formats are skipped.
- A row with a broken or unreadable video is skipped.
- To reuse files from your media library, select them in [Media](https://dash.robopost.app/medias) and use **Download as CSV** to
  get their links.

### Dates and timezones (column 3)

Write the date as ISO 8601. End it with `Z` for UTC, or with your offset from UTC:

| Time | Write |
| --- | --- |
| 9:00 in UTC | `2026-12-01T09:00:00Z` |
| 9:00 in New York (UTC−5 in winter) | `2026-12-01T09:00:00-05:00` |
| 9:00 in Paris (UTC+1 in winter) | `2026-12-01T09:00:00+01:00` |
| 9:00 in Tokyo (UTC+9) | `2026-12-01T09:00:00+09:00` |
| 9:00 in Delhi (UTC+5:30) | `2026-12-01T09:00:00+05:30` |

A row without a date is skipped. If Robopost can't read a date, it uses the time of the import instead, so
check the dates on the review screen.

### Video type (column 5)

| Value | Instagram | Facebook | YouTube |
| --- | --- | --- | --- |
| `VIDEO` or empty | Post | Reel | Short |
| `SHORT` | Reel | Reel | Short |
| `STORY` | Story | Post | Video |

For Facebook, a Reel needs a video: rows without one become regular posts.

### Titles and links (columns 4 and 6)

- **Pinterest**: column 6 is the Pin title. Without it, the first 100 characters of the text are used.
  Column 4 is the destination link.
- **YouTube**: column 6 is the video title. Without it, the first 100 characters of the text are used.
- **TikTok**: column 6 is the title of a photo post.
- **Google Business Profile**: posts are imported as **Standard** updates with a **Learn more** button that
  points to column 4.

Save the file as CSV (UTF-8 if your app asks).

## Upload and review

1. On the [CSV import](https://dash.robopost.app/post-csv-bulk-import) page, click **Upload CSV** and pick your file (CSV only, up to
   10 MB). Robopost reads the file and downloads the media. Large files with many videos take longer.
2. When it's done, each row appears as **Post #1**, **Post #2** and so on.
3. In **Select Import Destination**, choose **Schedule**, **Draft** or **Post Collection**. For a collection,
   pick which one.
4. In **Select Channels**, pick the channels and click **Set to all posts**. You can also change the
   channels of a single post in its card.
5. Optional: in **Select Tags**, pick tags and click **Set to all posts**.
6. Optional: under **Recurring options**, set a repeat and click **Set to all posts**, or turn on
   **Recurring Post** in a single card.
7. Check each post's **Schedule** date, text and media.

> **Tip:** To leave a row out, clear its channels. Posts without channels are dropped when you import.

## Import the posts

Click **Start Importing posts**. If some posts have a problem, such as no channel selected, Robopost asks
**Some items contains errors. They will be removed upon import. Continue to import?** Confirm to import the
rest.

When you see **Posts import was successful.**, the posts are in [Scheduled posts](https://dash.robopost.app/posts-scheduled),
[Draft posts](https://dash.robopost.app/posts-drafts) or your collection, depending on the destination. Each scheduled post is
created once per channel.

> **Tip:** To control each network's post type and settings precisely, import to **Draft**, then open and
> check the drafts before you schedule them.

## If the import doesn't start

| Message | What it means |
| --- | --- |
| **Your subscription plan does not allow for that much posts. Please upgrade your plan.** | The file has more rows than your plan's remaining scheduled posts. Split the file or see [Usage and limits](https://dash.robopost.app/docs/account/usage-and-limits.md) |
| **CSV import has failed.** | The file couldn't be read. Check that it's a CSV file with commas between columns |
| **Posts import failed.** | Something went wrong while creating the posts. Try again, then [contact support](https://dash.robopost.app/docs/help/contact-support.md) |

The composer's network checks don't run on imported posts. If a post doesn't fit a network, for example an
Instagram post without media, it fails when it publishes, and YouTube, TikTok and Pinterest posts without the
media they need are dropped. See [Why did my post fail?](https://dash.robopost.app/docs/posts/why-did-my-post-fail.md)

## Next

- [Manage scheduled posts](https://dash.robopost.app/docs/posts/manage-scheduled-posts.md)
- [Collections](https://dash.robopost.app/docs/posts/collections.md)
