Bulk upload
For batch content (a month of quotes, a backlog of clips, a content calendar export), bulk upload lets you schedule many posts from a single CSV.
CSV format
The CSV needs these columns. Headers are case-insensitive.
| Column | Required | Notes |
|---|---|---|
channel | Yes | Channel name as shown in Schedulin (e.g. Instagram - Acme). Comma-separate for multi-channel posts. |
caption | Yes | Post text. Wrap in quotes if it contains commas or line breaks. |
media_url | No | Public URL of an image or video. Comma-separate for carousels. |
scheduled_at | No | ISO 8601 timestamp. If empty, the post is added to the queue. |
placement | No | For Instagram: feed, reel, or story. Default: reel for video, feed for image. |
A blank scheduled_at adds the post to the queue and lets your channel's posting schedule place it.
How to upload
- Open Create → Bulk upload.
- Drop in your CSV.
- Schedulin previews each row and flags errors (missing channels, invalid URLs, captions over the character limit).
- Fix any errors and confirm. The posts are created as drafts you can review before they publish.
Limits
- 500 rows per CSV.
- 25MB per media URL — larger files fail to import.
- Bulk-uploaded posts count against your plan's monthly post limit.
Tips
- For large media, use a CDN URL (S3, Bunny, Cloudflare R2) rather than a personal cloud share link, which often requires auth.
- If your CSV has a lot of carousels, double-check that each
media_urlcell uses commas (not semicolons) between URLs. - Save your first successful CSV as a template — most teams settle on a fixed schema and reuse it.