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 on an hourly schedule. You can also use Run Now for one run without waiting. New rows create posts, changed rows update their linked posts, and unchanged rows are skipped. Rows with missing or invalid inputs are reported with messages so you can correct them.

The per-run allowance is 200 rows on Pro and 500 rows on Agency. Check the row count shown beside your spreadsheet in the automation list; do not assume a larger tab will be fully processed in one run.

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, allow Google files access if asked, choose your spreadsheet, and select the tab that contains your data. Use the Google account matching your Tenwrite email address, with edit access to the spreadsheet. Tenwrite needs to write row results back to the sheet; sharing linked Docs alone does not give it spreadsheet access. See Google connections.

Google Picker showing spreadsheet selection

Enable automation immediately is selected by default. For a first test, clear it before clicking Create Automation. You can run the automation once while its regular schedule stays Disabled, then enable the schedule when you are ready.

Completed Create Sheet Automation form

  1. Prepare one new test row. Use the connected blog in SITE, a title in TITLE, and either CONTENT or GOOGLE DOC as the body.
  2. Set STATUS to DRAFT. If a linked Google Doc controls publication through frontmatter, choose Keep as draft there too. Check the publication outcome rules before running.
  3. Save the automation with its regular schedule Disabled. Use View Sheet to check the spreadsheet and selected tab.
  4. Click Run Now. This performs a real export using the saved rows and settings; it is not a preview. It does not enable or move the regular schedule.
  5. After Automation queued., wait while the row shows Queued or Running. Do not start another run while this one is pending or in progress.
  6. Check the updated last-run time and click View Last Run. Read the counts and any row messages.
  7. Open Blogger > Posts and inspect the resulting draft in Blogger. Check the title, body, images, and links. Also check TENWRITE STATUS and TENWRITE LOGS in the sheet.
  8. Leave the schedule disabled while testing. When you want repeated runs, click Enable and check Next run at.

A successful run can create a draft, update a post, or skip unchanged rows. It does not always create a new public post.

Run Now works while the regular schedule is Disabled, provided your plan and access allow it. It runs the saved automation once without changing that setting. It is unavailable while a run is queued or running, or while your plan blocks the automation.

Next run at describes the regular schedule, not when a manual run will finish. Its date and time use your browser’s local time. A post’s publication date uses your Tenwrite account timezone.

  • Schedule disabled: automatic runs are paused; Run Now can still be available.
  • Scheduled attempts are blocked: the schedule remains enabled, but a plan restriction prevents it from running. Open Review your plan. Disable the schedule first if you want it to stay paused after resolving the restriction.
  • Unavailable: refresh the list and check its status. This message alone does not mean a row failed.

Destinations come from SITE in each row. An inaccessible or inactive blog can appear as a row issue even when the automation is enabled. Check it in Blogger > My Sites. See shared run controls.

Click View Last Run on the automation’s row to open Last Run Details. Check the time to identify the run. These details describe the latest run, not its full history.

The Summary tab shows the result and counts:

CountMeaning
ProcessedRows processed by this run; not a count of public posts.
Created / UpdatedNew posts created, or existing linked posts updated.
FailedRows that could not complete. Read Failed rows below the counts.
Skipped / UnchangedRows not exported, including unchanged rows. Read the message for other skips.
WarningsRows needing attention, including skipped rows and exports completed with a warning.

The counts overlap: Unchanged is included in Skipped. Do not add every card together to get a total. The list’s cumulative Runs and Posts figures are separate from this latest-run summary.

Under Failed rows or Warning and skipped rows, read the row number, title when shown, and message. Run-level issue concerns the run as a whole. A completed export can have a warning, so check the destination before assuming nothing was saved.

Open Raw Timeline for the recorded sequence of events and errors. Older runs may have only timeline data. If no details are available yet, wait for the current run to finish and reopen the dialog. A problem loading the dialog does not itself mean the export failed.

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.

Use Enable or Disable for the regular schedule, Run Now for one run, and View Last Run for its result. The list shows the spreadsheet, selected tab, row allowance, next scheduled time, latest result, and cumulative statistics.

WordPress Sheets automation list showing Disabled, Run Now, Next run at, View Last Run, and latest-run counts

WordPress example. Blogger Sheets automations use the same run controls.

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.

If the automation is Queued or Running, wait for that run to finish. For a plan block, open Review your plan and check automation access and limits. If Tenwrite says the Sheet automation is not ready to run, contact support with its ID. Do not delete and recreate it or change its tracking to bypass that message.

  1. Wait for the run to finish, then open View Last Run > Summary.
  2. Find the row under Failed rows or Warning and skipped rows. Match the row number and title to the selected sheet tab. If you sorted the sheet after the run, also use the title to identify it.
  3. Open View Sheet and read TENWRITE LOGS for that row when available. Correct the input named in the message, or fix the relevant connection or permission.
  4. Keep the existing row and its tracking. Do not clear Tenwrite-managed result columns or copy the processed row to force a retry.
  5. Use Run Now on the same automation. Review the new result and destination content. Other changed rows may also run; this does not retry only the selected error.

Use the template headers, including SITE, TITLE, and either CONTENT or GOOGLE DOC. Column capitalization does not matter, but keep the template’s names and spelling. Missing or misspelled headers can prevent Tenwrite from reading the inputs. Check the selected tab as well as the row.

Use a valid connected blog address in SITE. Use LIVE, DRAFT, or SCHEDULED for STATUS. For scheduling, choose SCHEDULED and a future PUBLISH DATE in YYYY-MM-DD HH:MM format. Dates use your Tenwrite account timezone. If frontmatter supplies the matching field, correct or clear it there instead.

The Google account connected to Tenwrite needs edit access to the spreadsheet. In the web app, use Reconnect Google files when asked, or Retry Google access check if that check failed. See Google connections. In the installed add-on, close and reopen it to renew its Google connection.

A linked Google Doc has separate sharing requirements. Use the sharing steps above for the automation account. Selecting the spreadsheet does not give access to every Doc linked from it.

Check SITE and whether that blog is connected, accessible, and active within your connected-site allowance. For Blogger access errors, use Reconnect Blogger in the web app. The connected Google account must match your Tenwrite account and have access to the blog. See Google connections.

A destination problem can affect some rows while other destinations still work. Use the row messages to identify which SITE needs attention.

Success but no new posts, or old sheet results

Section titled “Success but no new posts, or old sheet results”
  • Unchanged rows: no new post is needed. Open the existing item to check it.
  • Draft or scheduled content: check its actual status in Blogger; success does not always mean public content.
  • Row allowance: compare the selected tab’s row count with the per-run allowance. Split a larger workload into tabs or sheets within your plan’s limits.
  • Sheet results not updated: status and logs can update separately from the export. Check View Last Run and the destination before repeating it. Check spreadsheet edit access if Tenwrite reports that it could not write the results.

Tenwrite could not safely match the row to its tracking. Do not edit internal tracking or copy a fully processed row to create another post. Keep the sheet as it is and contact support@tenwrite.com with the automation ID, sheet/tab, and last-run message.

The sheet values are not showing in Blogger

Section titled “The sheet values are not showing in Blogger”

Filled Google Doc frontmatter overrides matching sheet columns. Edit that value, or clear it to use the sheet value. Leave unrelated frontmatter fields in place.

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.