Importing posts via CSV
Zestly's CSV import lets you upload multiple scheduled posts at once using a spreadsheet. This is useful for content agencies managing large batches of posts or for migrating from another scheduling tool.
Downloading the template
Always use Zestly's official CSV template to avoid import errors.
- ā¢Go to Posts ā Import CSV
- ā¢Click Download Template
- ā¢Open the file in Excel, Google Sheets, or Numbers
CSV column guide
| Column | Required | Description |
| account_handle | Yes | The social account handle as shown in Zestly (e.g. @yourbusiness) | |
| platform | Yes | instagram, facebook, linkedin, x, tiktok, or pinterest | |
| caption | Yes | Post caption text | |
| scheduled_at | Yes | Date/time in ISO 8601 format: YYYY-MM-DDTHH:MM (e.g. 2026-05-15T09:00) | |
| media_url | No | Direct URL to image/video (must be publicly accessible) | |
| hashtags | No | Pipe-separated list (e.g. #socialmedia | #marketing) |
| first_comment | No | Text to post as first comment (Instagram only) | |
| alt_text | No | Accessibility alt text for images |
Time zone note
All times in the CSV are interpreted in your workspace time zone. Make sure your workspace time zone is set correctly before importing (Settings ā Workspace ā Time Zone).
Uploading your CSV
- ā¢Go to Posts ā Import CSV
- ā¢Click Upload CSV and select your file
- ā¢Zestly will validate the file and show a preview of posts before importing
- ā¢Fix any errors flagged in the validation step (see Fixing CSV import errors in Troubleshooting)
- ā¢Click Confirm Import
Your posts will appear in the Content Calendar immediately.
Limits
- ā¢Maximum 500 posts per CSV import
- ā¢Maximum file size: 10MB
For larger imports, split into multiple files or contact support for a bulk migration consultation.
Was this article helpful?
