Skip to content

Blogger - Sheet Automation

Sheet Automation turns a Google Sheet into a publishing queue. Each row becomes a Blogger post — you define the title, content, labels, status, and destination blog right in the spreadsheet, and Tenwrite handles the rest.

Because each row can target a different blog, a single sheet can manage content across all your Blogger blogs at once. This makes it particularly useful for bulk publishing and programmatic SEO.

Tenwrite checks your sheet once every hour. New rows create new posts. Rows that have changed update the existing post. Rows that are unchanged are skipped. Rows missing required fields are skipped without error.

The maximum is 200 rows per sheet on Pro and 500 rows per sheet on Agency.

ColumnRequiredDescription
SITEYesBlogger blog URL, e.g. example.blogspot.com
TITLEYesPost title
CONTENTOne of these twoPost body — Markdown is supported
GOOGLE DOCOne of these twoURL of a Google Doc to use as the post body
LABELSNoComma-separated labels: tech, tutorial
STATUSNoLIVE, DRAFT, or SCHEDULED
PUBLISH DATENoYYYY-MM-DD HH:MM — required if STATUS is SCHEDULED
READER COMMENTSNoALLOW, DONT_ALLOW_SHOW_EXISTING, or DONT_ALLOW_HIDE_EXISTING
FORMATTINGNobalanced or full
PRESETNobalanced or a saved preset name

Every row needs SITE, TITLE, and at least one of CONTENT or GOOGLE DOC. Use CONTENT for short posts written directly in the sheet. Use GOOGLE DOC for long-form content that lives in Google Docs.

If you’re using the GOOGLE DOC column, the referenced document needs to be readable by Tenwrite. There are two ways to do this:

Option A — Share with the service account:

Open the Google Doc, click Share, and add automation@tenwrite-gcp.iam.gserviceaccount.com as a Viewer. Click Share anyway if prompted.

Share button in Google Docs

Google Docs Share dialog

Service account email entered

Option B — Make the doc public:

In the Share dialog, change General access to Anyone with the link (Viewer) and click Done.

General access dropdown with Anyone with the link highlighted

Anyone with the link selected, Done button

Open the Tenwrite add-on or Web Dashboard, go to Blogger > Automations, and switch to the Sheets tab.

Click New Automation (or Create Sheet Automation if none exist). The create form opens.

Sheet Automation tab with New Automation button

Create Sheet Automation modal

Click Select Google Sheet, choose your spreadsheet from the picker, and select the tab that contains your data.

Google Picker showing spreadsheet selection

Check Enable Automation Immediately if you want it to start on the next hourly run, then click Create Automation.

Completed Create Sheet Automation form

When the automation processes your sheet, Tenwrite adds and manages two result columns on the selected tab:

  • TENWRITE STATUS shows the latest Blogger state that Tenwrite confirmed for the post.
  • TENWRITE LOGS records what Tenwrite did, when it happened, and whether the row needs attention.

These are output columns. You keep working in columns such as TITLE, CONTENT, GOOGLE DOC, and STATUS; Tenwrite writes the result columns for you.

STATUS and TENWRITE STATUS serve different purposes.

  • STATUS tells Tenwrite what you want when it creates or updates the row, such as LIVE, DRAFT, or SCHEDULED.
  • TENWRITE STATUS tells you what Tenwrite most recently confirmed in Blogger.

For example, a row can keep SCHEDULED in STATUS while TENWRITE STATUS changes from SCHEDULED to PUBLISHED after the scheduled time. Do not type into, rename, or delete the Tenwrite-managed columns.

StatusMeaning
DRAFTThe post is saved in Blogger but is not live.
SCHEDULEDBlogger is set to publish it at a future date and time.
PUBLISHEDThe post is live.
TRASHEDThe post has been moved to Blogger’s trash and may still be recoverable.
MISSINGTenwrite can no longer find the linked post in Blogger. It may have been deleted.
NOT EXPORTEDThe row is not linked to a Blogger post because one has not been created yet.

The cells are color-coded to make large sheets easier to scan: published posts are green, scheduled posts are blue, and trashed or missing posts are red. The written label is always the final meaning, so you do not need to rely on color alone.

Each log line includes a date and time, an action, and a simple explanation. Times use your account or spreadsheet time zone when available, with UTC as the fallback. The newest entry appears at the bottom.

Log actionWhat happened
EXPORTEDTenwrite created the Blogger post for the first time.
SYNCEDTenwrite updated the Blogger post already linked to the row.
SKIPPEDTenwrite intentionally did not create or update the row. Read the message for why.
EXPORT FAILEDTenwrite could not create the post. The message explains what you should check.
SYNC FAILEDTenwrite could not update the existing post. The message explains what went wrong.
STATUS INITIALIZEDTenwrite checked Blogger and filled in the row’s current status for the first time.
STATUS CHANGEDBlogger now reports a different state from the last one Tenwrite confirmed.

The cell keeps the latest 10 Tenwrite entries so a busy sheet stays readable. If older entries have been removed, the first line says so. Open Automations > View Last Run for fuller run details and errors.

  • A new, updated, or newly tracked row receives its confirmed status during an automation run.
  • A SCHEDULED row is checked on later hourly runs so it can change to PUBLISHED after Blogger publishes it.
  • A TRASHED or MISSING row is checked on the next few eligible runs, then no more than once a day. If you restore the post, Tenwrite can detect that and update the row.
  • Other rows show the latest state Tenwrite confirmed while processing them. A change made directly in Blogger may not appear until Tenwrite processes that row again.
  • A temporary Blogger or connection problem does not automatically change a row to MISSING; Tenwrite keeps the last confirmed state instead.

You can sort or move existing rows without losing their Tenwrite tracking. If you clear every editable input cell from a row, Tenwrite clears its managed status and logs after confirming that the row is still empty. To create a separate post, add a fresh row rather than copying a fully processed row.

The Sheets tab lists all your automations with run stats — total runs, posts created, rows processed, failures — and when each last ran. Use the action button in each row to pause or resume.

Sheet automations list

SITETITLECONTENTLABELS
shop.blogspot.comRed T-ShirtComfortable 100% cotton tee…products, clothing
events.blogspot.comConcert FridayDoors open at 8pm…events, music
tech.blogspot.comApp Review: NotionWe’ve been using Notion for…tech, reviews

Each row targets a different blog. Tenwrite processes all three in the same hourly run.

  • Column names are case-sensitive — SITE, TITLE, CONTENT, GOOGLE DOC must match exactly.
  • Every row needs SITE, TITLE, and at least one content column.
  • If using GOOGLE DOC, make sure the doc is shared with the service account or set to public.
  • Confirm the automation is enabled and the Blogger blogs are connected.
  • Use exactly LIVE, DRAFT, or SCHEDULED — all uppercase.
  • For scheduled posts, also set PUBLISH DATE to a future date in YYYY-MM-DD HH:MM format.

The sheet values are not showing in Blogger

Section titled “The sheet values are not showing in Blogger”
  • If a doc has a Frontmatter table, it overrides the corresponding sheet columns. This is intentional — the doc’s own metadata takes priority.

Need help? Contact support@tenwrite.com.

Tenwrite is an independent product not affiliated with or endorsed by Google LLC, Blogger, or WordPress Foundation. Google Docs, Gmail, Google Workspace are trademarks of Google LLC. WordPress is a trademark of the WordPress Foundation.