Bulk schedule social media posts with a CSV file

Bulk scheduling in SocialPatra means uploading one CSV file, checking every row, and creating all the valid posts in one step.

Plan: Free and up

Each row of the spreadsheet becomes one post. You set the text, the accounts it goes to and, if you want, the date and time, the media, the tags, a title and the post type.

Nothing is created when you upload. SocialPatra first checks every row and shows you what is wrong, and you decide what happens next.

How to bulk schedule social media posts

  1. Download the CSV template. The bulk upload page has a Download CSV Template button. The template has the eight column headings and one example row.
  2. Fill in one row per post. Write the post text, the platforms and the ID of each connected account. Add a date and time, media links, tags, a title or a post type if you need them.
  3. Upload the file. Drag the file onto the upload area or choose it from your computer.
  4. Review the validation result. You see how many rows are valid, how many are invalid and the total. A preview table lists the first 10 rows with the errors found on each.
  5. Create the posts. Choose Create to make every post, or Skip Invalid to create only the valid rows. Plain Create stops if any row is invalid, so nothing is half done by accident.
  6. Check the result. The result shows how many posts were created and how many failed. Past uploads are listed in the bulk history.

CSV columns for a social media CSV template

Column headings are not case sensitive, and common alternatives are accepted: for example text or caption for content, and date or publish_date for scheduledAt.

The eight CSV columns
ColumnRequiredWhat goes in it
content Yes The post text. It cannot be empty and can be at most 5000 characters.
platforms Yes The platforms to post to, separated by commas, for example facebook,twitter,linkedin.
platformIds Yes The ID of each connected account, separated by commas, in the same order as platforms. Both lists must have the same number of items.
scheduledAt No The date and time to publish, in ISO 8601 format such as 2025-11-15T10:00:00Z. It must be in the future.
mediaUrls No Links to images or videos, separated by commas.
tags No Tags for the post, separated by commas.
title No A title for the post.
postType No One of text, image, video, link, carousel, thread, poll, reel or story. If you leave it empty it is set to text with no media, video if any link is a video file, and image otherwise.

How errors are reported for each row

Every row is checked on its own and gets a row number that matches the line in your spreadsheet, counting the heading as line 1. A row can have several errors, and all of them are listed.

  • A missing content, platforms or platformIds column is reported for the whole file, and no rows are imported.
  • Empty content, empty platforms, empty platformIds, or lists of different lengths are reported on the row.
  • A date that cannot be read, or a date in the past, is reported with the value you entered.
  • An unknown post type, or a post type a chosen platform does not support, is reported with the platform name.
  • Content over 5000 characters is reported with its length.

Some problems only appear when the post is created, for example a date that passed while you were reviewing. Those rows are marked failed with the reason, and the other rows are still created.

A date without a timezone, such as 2025-11-15T10:00:00, is read in your workspace scheduling timezone when one is set. A date ending in Z or with an offset is used exactly as written.

File limits

  • Up to 100 rows per file. A longer file is rejected as a whole with a message to split it, rather than cut short.
  • Files up to 1 MB.
  • Only CSV files are accepted.
  • Uploads are limited to 3 per minute.
  • You need permission to schedule posts in the workspace. Members with view-only access see a message asking an admin to upload.

Frequently asked questions

How do I bulk schedule social media posts?

Download the CSV template, fill in one row per post, upload the file, review the validation result and create the posts. Nothing is created until you confirm.

How many posts can I upload at once?

Up to 100 rows per file, and the file can be up to 1 MB. Split a bigger list into several files.

What happens if some rows have errors?

You can fix the file and upload it again, or use Skip Invalid to create only the valid rows. Creating without skipping stops if any row is invalid.

Do I have to set a date for every post?

No. The scheduledAt column is optional. When you give a date it must be in the future.

Where do I find the platformIds value?

It is the ID of the connected account you want to post to. The template shows the format, and each ID lines up with the platform in the same position.

Try it on your own accounts

No card needed to start.