---
title: "CSV formats"
description: "The exact file format for importing scheduled chat messages, with examples and error messages."
---

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

# CSV formats

This page covers the files you can bring into and take out of FullHouse.

## Scheduled chat import

Use this to add a whole script of [scheduled chat](/webinars/simulated-chat) messages at once. Import it from either place:

- **Webinars → your webinar → Set up → Room timeline → Import chat**
- **Webinars → your webinar → Set up → Chat & questions → Scheduled chat → Import CSV**

### Columns

Columns are read by position, in this order. The names in a header row don't matter.

| Position | Column | Required | What goes in it |
| --- | --- | --- | --- |
| 1 | `time` | Yes | When the message appears, measured from the start of the video. |
| 2 | `name` | Yes | The sender's name. Longer than 80 characters is cut to 80. |
| 3 | `message` | Yes | The message. Longer than 1,000 characters is cut to 1,000. |
| 4 | `role` | No | `host`, `moderator` or `attendee`, in any case. Empty or anything else counts as `attendee`. |

### Time formats

| You write | It means |
| --- | --- |
| `90` | 90 seconds |
| `1:30` or `01:30` | 1 minute 30 seconds |
| `90:00` | 90 minutes |
| `1:02:03` | 1 hour, 2 minutes, 3 seconds |

Whole numbers only, up to 24 hours. Fractions such as `1:30.5` and negative times aren't accepted.

### Example

```csv
time,name,message,role
0:15,Maya,"Welcome in, everyone! Say hi and tell us where you're watching from.",host
0:32,Sarah M.,Hi from Leeds!,attendee
0:48,Devon,"Grabbing a notebook, one sec",
12:05,Team Support,Drop your questions in the Q&A tab and we'll get to them.,moderator
1:02:40,Sarah M.,"She said ""book the call first"" and it finally clicked",attendee
```

### Rules

- **Header row.** Optional. The first row is treated as a header if its first cell is `time`, `timestamp`, `t`, `seconds` or `offset`, in any case.
- **Commas and quotes.** Separate columns with commas, not semicolons or tabs. If a value contains a comma, quote mark or line break, put it in double quotes. Write a quote mark inside quotes as two quote marks.
- **Line breaks.** A quoted message can run over several lines.
- **Encoding.** The file must be UTF-8. The invisible marker some spreadsheet apps add to the start is fine. In Excel, choose **CSV UTF-8** when saving.
- **File.** A `.csv` or `.txt` file, up to 2 MB. The **Import CSV** button's file picker only offers `.csv`, so use **Import chat** to pick a `.txt` file.
- **Row limit.** The first 2,000 usable rows are imported, and the rest are ignored. To add more, import a second file.

### What the import does

- **It adds to your messages.** It doesn't replace them or check for duplicates, so importing a file twice gives you two copies. To start again, use **Clear all chat** first.
- **It skips bad rows silently.** A row is skipped if it has fewer than three columns, a time it can't read, or an empty name or message. You aren't told which rows, or how many. Compare the count beside the **Chat** track with your file.
- **It doesn't check your video's length.** A message timed after the video ends imports, but never appears.
- **It applies straight away.** Messages are live in every session as soon as the import finishes, with no separate save.

### Errors

| What you see | What it means | What to do |
| --- | --- | --- |
| No usable rows found. Expected columns: time, name, message. | Every row was skipped. Often the file uses semicolons, or the columns are in the wrong order. | Check the file against the example above. |
| Upload a CSV or text file up to 2 MiB. | The file is too big, or isn't `.csv` or `.txt`. | Split it, or save it as CSV. |
| Upload a UTF-8 text file. | The file isn't UTF-8. Older Excel exports often aren't. | Save it again as **CSV UTF-8**. |
| The upload is too large. | The upload is over 3 MB. | Split the file. |

### Export your chat

Export gives you a file you can edit and import again.

| Where | File name | Time format |
| --- | --- | --- |
| **Room timeline → More chat actions → Export chat as CSV** | *(webinar address)*`-chat.csv` | `1:02:40` |
| **Chat & questions → Scheduled chat → Export CSV** | `chat-timeline.csv` | Seconds, such as `3760` |

Both have the columns `time,name,message,role`. To replace your script from an edited export, clear the chat first, or you'll end up with both versions.

## Registrant exports

To download your registrants, with their sessions and what they did in the room, see [Registrants](/run/registrants).

Source: https://docs.meetfullhouse.com/reference/csv-formats/index.mdx
