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

ColumnRequiredWhat it holds
bodyyesThe post body, in plain text.
channelsyesComma-separated channel slugs (eg x,linkedin).
scheduled_atyesISO 8601 timestamp in your workspace timezone.
media[]optionalOne or more URLs to media (Unison fetches and re-uploads).
override.<channel>.bodyoptionalPer-network body override for one channel.
override.<channel>.first_commentoptionalFirst 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. 1

    Open Queue → Import → CSV.

  2. 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. 3

    Fix any flagged rows in the in-app editor or in your CSV, re-upload.

  4. 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?