Skip to content
Google Sheets Add-on Guide

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.

Requires a Postly API key
The add-on connects to your Postly account using your API key (one-time setup per user).
Google Sheets
Postly Google Sheets Demo

Install the add-on, set up your template, fill rows, and publish directly from Google Sheets.

Guide

How Google Sheets publishing works

Authenticate once, create the template, fill each row, and submit only after Postly validates destinations, content, and timing.

1

Install the Google Sheets Add-on

Install Postly from the Google Workspace Marketplace. This adds a Postly menu inside Google Sheets.
Also required: connect your Postly account using an API key.
2

Open Postly in Google Sheets

In any Sheet, open Extensions → Postly. Authenticate or switch your API key, run Setup Template, publish rows, refresh post results, or open Help.
3

Add your content (dynamic dropdowns)

Fill rows using 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.
4

Publish (validations → publish → status)

Click Publish Posts. Postly blocks unsafe rows, shows a destination and timing confirmation, and writes each submission result back into the sheet:
Validations: you’ll see blank, past, invalid, and ambiguous daylight-saving dates alongside content, media, URL, workspace, and destination issues before a row is sent.
Notifications: each row records validation, approval, queued, scheduled, published, or failed status. Queued means accepted for processing; it does not mean published.

Choose when to publish

Your workspace timezone applies

Schedule for later

2030-09-10 14:30

Recommended: YYYY-MM-DD HH:mm

Publish now

NOW

Queues 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.

Screenshots (what users actually see)

These cards match the real flow: install → menu → template → validations → status/errors.

InstallWhat you’re seeing
Marketplace install

Install Postly from the Google Workspace Marketplace to enable the Postly menu inside Sheets.

Google Workspace Marketplace listing for Postly add-on
MenuWhat you’re seeing
Google Sheets menu

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

Postly menu inside Google Sheets showing Setup Template, Publish Posts, Help
TemplateWhat you’re seeing
Template with workspace + auto-filtered platforms

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

Sheet template showing workspace dropdown and platform dropdown filtered by workspace
ValidationsWhat you’re seeing
Validations while publishing

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

Validation feedback in Google Sheets while publishing posts
ResultsWhat you’re seeing
Notifications: Status and Errors

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

Row-level status and error notifications in Google Sheets after publishing
Guide

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
Need help? Visit docs.postly.ai or open your dashboard.