Bulk schedule from a CSV
How to load a spreadsheet of posts into Unison's queue in one go.
Updated May 12, 2026·1 min read
Bulk scheduling is included on Pro and Team. Drop a CSV with one row per post and Unison parses it into the queue, ready for review before publish.
CSV columns
| Column | Required | What it holds |
|---|---|---|
body | yes | The post body, in plain text. |
channels | yes | Comma-separated channel slugs (eg x,linkedin). |
scheduled_at | yes | ISO 8601 timestamp in your workspace timezone. |
media[] | optional | One or more URLs to media (Unison fetches and re-uploads). |
override.<channel>.body | optional | Per-network body override for one channel. |
override.<channel>.first_comment | optional | First comment override (Instagram). |
Example
csv
body,channels,scheduled_at
"Shipped today: per-network preview is live for everyone.","x,linkedin","2026-05-13T09:00:00"
"Heads-up: scheduled maintenance Sunday 02:00 UTC.","x,bluesky,threads","2026-05-15T18:00:00"Step by step
- 1
Open Queue → Import → CSV.
- 2
Drop your file. Unison validates each row and lists any problems (missing channels, invalid timestamps, body too long for the channel after auto-thread).
- 3
Fix any flagged rows in the in-app editor or in your CSV, re-upload.
- 4
Review the dry-run summary (
24 posts will be queued, 3 will use auto-thread), then click Confirm import. Posts are scheduled.
Editing imported posts
Imported posts behave like manually-created drafts. Open them in the queue to edit, override per-channel, or move on the calendar.
Limits
- 500 rows per upload (split into multiple uploads for larger batches).
- Imported media is mirrored to Unison's media library so a deleted source URL does not break a scheduled post.
Was this helpful?