Google Sheets Bulk Publishing
Plan, validate, and submit social posts from Google Sheets using the Postly add-on. Choose a workspace and destination for each row, then use an explicit date or NOW to control timing.
Install the add-on, set up your template, fill rows, and publish directly from Google Sheets.
How Google Sheets publishing works
Authenticate once, create the template, fill each row, and submit only after Postly validates destinations, content, and timing.
Install the Google Sheets Add-on
Open Postly in Google Sheets
Add your content (dynamic dropdowns)
- Workspaces are pulled dynamically from your account.
- Platforms are pulled from active platforms within each workspace.
- Platforms are filtered per row: select workspace, then that row’s platform dropdown shows only that workspace’s platforms.
- Use text as the shared version and destination columns such as threads_text for platform-specific copy. Blank overrides fall back to the shared text.
Publish (validations → publish → status)
Choose when to publish
Your workspace timezone appliesSchedule for later
2030-09-10 14:30Recommended: YYYY-MM-DD HH:mm
Publish now
NOWQueues immediately, subject to approval
Fill in due_date, then check the timing preview. Blank dates never publish.
International date formats
- USA · month first
9/4/30 2:30 PM- UK / Europe · day first
DMY: 9/4/30 14:30- Year first
2030/9/4 14:30- Month name
4 Sep 2030 14:30
Ambiguous numeric text defaults to US month/day order: 9/4 means September 4. Use DMY: for April 9, or spell the English month. Unambiguous day-first dates such as 14/9/30 14:30 also work.
Use slashes, hyphens or dots, with 24-hour time or AM/PM and optional seconds. Two-digit years mean 2000–2099. Always include a time; date-only text, timezone suffixes, relative dates and raw spreadsheet serial numbers are not accepted.
Google Sheets and timezones
Google Sheets interprets date/time cells using its spreadsheet locale. Postly reads the wall-clock time in the spreadsheet timezone and schedules it in the destination workspace timezone. Text cells follow the international formats above.
No Action or Timezone column is needed. Your calendar display preference does not change text import rules. Existing templates remain compatible. Check the cell, workspace settings and timing preview before sending.
Validation and publishing results
- Correct missing, past, invalid and ambiguous or nonexistent daylight-saving times before submitting. New Date cells start blank. NOW is case-insensitive.
- Review the dates, workspaces, channels and publish-now counts before confirming. Queued, scheduled and awaiting approval do not mean published; delivery is not necessarily instantaneous.
- In Google Sheets, choose Refresh post results to check delivery.
- Retry unchanged rows after an interrupted request to reuse the same posts. Changing a row creates a new submission. Existing posts with missing schedules need correction and never publish automatically as a backlog.
Platform-specific content and destinations
Threads is a separate destination. A row may target Instagram and Threads together, while threads_text supplies the shorter Threads version and the Threads columns control replies, quotes, and mentions. The template also includes current settings for Discord, WhatsApp, WordPress, Ghost, Hashnode, DEV Community, Blogger, and X.
Required fields and Pinterest rows
The dashboard marks genuinely required inputs with a red *. For Pinterest, provide a board plus an image or video. pinterest_title, pinterest_description, and pinterest_destination_url are optional. When the destination column is blank, Postly uses the first non-media link in the Pinterest or shared post text.
These cards match the real flow: install → menu → template → validations → status/errors.
Install Postly from the Google Workspace Marketplace to enable the Postly menu inside Sheets.

Open Extensions → Postly to authenticate, set up the template, publish rows, refresh post results, or get help.

Select a workspace per row. The platform dropdown on that same row auto-filters to that workspace’s active platforms.

Triggered when the user clicks Publish Posts—Postly validates rows/fields and surfaces issues immediately so teams can fix only what’s broken.

Each row records its current validation, approval, queue, schedule, publish, or failure state plus a clear error when action is required.

Quick checklist
If publishing fails, it’s usually one of these.
- Add-on installed from Marketplace
- Opened via Extensions → Postly
- Setup Template was run (headers + dropdowns created)
- API key connected in the Postly panel
- Required columns are filled for at least one row (leave the rest blank).
- Every publishing row has a future date and time or NOW; check the date guide for US and international formats.
- Scheduled times use the selected Postly workspace timezone.
- Blank, past, invalid, and ambiguous daylight-saving times are fixed before submission.
- Media URLs are direct/public file URLs (Postly Cloud recommended).
- Platform-specific text fits each destination limit (Threads: 500 characters).
- After submission: refresh and check Status + Errors per row
- Fix failed rows only, then re-publish
Helpful links
Extra references for common publishing questions.