Skip to content
Postly Documentation

Publishing Workflows

Bulk Posting with CSV

Launch large batches of scheduled content with one structured import workflow.

Corporate-ready workflowsPublishing WorkflowsPublishing operations

Collection

Publishing Workflows

Best For

Operators, marketers, and collaborators

Workflow Focus

Launch large batches of scheduled content with one structured import workflow.

Bulk Posting with CSV

Bulk posting is the fastest way to move a large content calendar into Postly. It is best when you already know the schedule, the copy, and the media plan, and now need reliable throughput.

Best use cases

  • seasonal campaigns
  • ecommerce promotions
  • agency content calendars
  • event countdowns
  • franchise or multi-location schedules
  • spreadsheet-driven marketing teams

How bulk posting works

  1. Start with the Postly CSV template.
  2. Fill in your post text, schedule fields, destinations, and media references.
  3. Upload the CSV into the bulk posting flow.
  4. Let Postly validate the rows before scheduling.
  5. Resolve any issues, then import the final batch.

Date rules for CSV and Google Sheets

The due_date field is required. Enter a future date/time, preferably as YYYY-MM-DD HH:mm, or enter NOW (case-insensitive) to queue immediate publishing. Blank dates never publish. Past, invalid, impossible, and ambiguous or nonexistent daylight-saving times are rejected.

Postly applies the destination workspace timezone automatically. No Action or Timezone column is needed. For multiple workspaces, the same entered time is interpreted separately in each workspace. Check the timezone in workspace settings before importing.

New Date cells are blank by default. For example, 2030-09-10 14:30 schedules a post; NOW queues it immediately. NOW still follows workspace approval rules and does not guarantee instantaneous delivery.

Review the immediate/scheduled counts, dates, workspaces and channels before confirming. Fix every validation error before submitting. Review each row result: queued, scheduled and awaiting approval do not mean published. In Google Sheets, use Refresh post results to check delivery without resubmitting.

Retry unchanged rows after an interrupted request to reuse the same posts. Changing a row creates a new submission. Correct existing posts with missing schedules in Postly; they are never automatically published as a backlog.

Make media easier before import

Bulk posting works best when your media is already stable and reachable.

Recommended patterns:

  • host reusable assets in Postly Cloud first
  • use durable public URLs
  • keep filenames and references consistent across the sheet
  • avoid last-minute manual edits after validation

What to validate before import

  • target channels belong to the right workspace
  • dates are valid and the workspace timezone is correct
  • media URLs resolve to the intended asset
  • copy length makes sense for the destinations involved
  • recurring content is separated from one-off content

Required fields and platform columns

Postly marks genuinely required fields with a red * in the dashboard and only blocks a row when the selected destination requires that value. Optional platform columns may be left blank.

For Pinterest rows:

  • an image or video and a selected board are required
  • pinterest_title, pinterest_description, pinterest_destination_url, and alt text are optional
  • when pinterest_destination_url is blank, Postly uses the first non-media link in the Pinterest or shared post text
  • the same behavior applies to CSV imports and the Google Sheets add-on

If the same CSV workflow repeats every week or month, create a reusable spreadsheet process around it. Bulk posting becomes much more valuable when the import pattern is standardized.

When bulk posting is not the best tool

Choose another flow if:

  • each post needs heavy manual review
  • your campaign depends on dynamic AI generation at the last minute
  • platform-specific overrides vary too much post by post
  • the content should actually be recurring instead of imported in batches

Good next guides

US and international date formats

CSV and Google Sheets accept numeric dates with slashes, hyphens or dots, English month names, AM/PM or 24-hour time, and optional seconds:

  • US: 9/4/30 2:30 PM means September 4, 2030.
  • Day-first: 14/9/30 14:30 means September 14, 2030.
  • Year-first: 2030/9/4 14:30 or 2030-09-04T14:30.
  • Written month: 4 Sep 2030 14:30 or September 4, 2030 2:30 PM.

Ambiguous numeric text uses month/day order. Use DMY: 9/4/30 14:30 for April 9, or spell the month. The calendar display setting does not change this import rule. Two-digit years mean 2000–2099. A time is required; date-only text, timezone suffixes, relative dates and raw spreadsheet serial numbers are not accepted.

Google Sheets date/time cells follow the spreadsheet locale when entered. Postly reads their wall-clock time in the spreadsheet timezone and schedules it in the destination workspace timezone. Review the cell and final timing before publishing. Existing templates remain compatible; no new template date format is required.

Previous guide

Recurring Posts

Set evergreen campaigns, repeated reminders, and recurring content schedules without rebuilding posts.

Next guide

Approval Workflow

Route drafts through review, lock content during approval, and keep publishing governance in place.

Related guides