Blog

Workspace StudioAutomation

Workspace Studio won't run on shared files. Design around it.

Studio flows fail on shared drives, shared folders and IMPORTRANGE. Messaging sheets are shared by definition. Here is the two-sheet pattern that works.

· 3 min read · Joe Gelman

Workspace Studio flow: when a sheet changes, ask Gemini to summarise the changed messaging lines, notify the launch space in Chat
TL;DR
  • Google’s Studio guide: flows fail on Shared Drives, shared folders and sheets with IMPORTRANGE. Files must be private to you.
  • Keep the team’s messaging sheet shared. Mirror it to a private sheet the flow owner owns, with a short script.
  • The flow watches the private sheet, asks Gemini what changed and which assets it touches, and posts to Chat.
  • October’s nested conditionals let one flow route headline changes and proof changes to different people.

The wall

The obvious product marketing flow: when the messaging sheet changes, tell the team what changed and which assets need updating. Workspace Studio has a starter for “when a sheet changes” and steps to ask Gemini and notify a Chat space. It should take five minutes.

Then it fails. Google’s getting-started guide lists the file restrictions: flows fail if you use Shared Drives, shared folders or spreadsheets with the IMPORTRANGE function, and files must be private to you. A messaging sheet that only one person can see isn’t a messaging sheet.

Two sheets: shared for people, private for the flow

Diagram: a shared messaging sheet edited by the team, a script copying it every 15 minutes into a private sheet owned by the flow owner, and a Studio flow watching the private sheet
People edit the shared sheet. The flow only ever touches the private copy.

In the shared sheet, open Extensions › Apps Script and paste:

// In the SHARED messaging sheet. Copies the Messages tab into a private sheet that the Studio flow watches.
const PRIVATE_ID = 'paste-the-private-sheet-id';

function mirrorMessages() {
  const src = SpreadsheetApp.getActive().getSheetByName('Messages').getDataRange().getValues();
  const dst = SpreadsheetApp.openById(PRIVATE_ID).getSheetByName('Messages');
  const old = dst.getDataRange().getValues();
  if (JSON.stringify(old) === JSON.stringify(src)) return;   // write only when something changed
  dst.clearContents();
  dst.getRange(1, 1, src.length, src[0].length).setValues(src);
}

// Run once to mirror every 15 minutes.
function installMirror() {
  ScriptApp.newTrigger('mirrorMessages').timeBased().everyMinutes(15).create();
}

Run installMirror once, as the flow owner. The script runs with that person’s access, so it can write to their private sheet.

The flow

  1. Starter: when a sheet changes. Pick the private sheet and, if you like, only the Approved line column.
  2. Step: ask Gemini. “List the messaging rows that changed. For each, give the key, the old and new line, and the assets in its Used in column.”
  3. Step: notify the launch space in Chat with Gemini’s answer.
Google Chat message from a flow: three approved lines changed, with keys, new wording and the assets each one appears in
What the launch space sees. Mockup.

On October 9, Google added nested conditionals and new search steps to Studio. Use a condition to route by row type: headline and positioning changes to the PMM lead, proof changes to whoever owns the proof library.

Limits to plan for

For the meeting side of the same idea, see logging objections per slide from Meet notes.

What we have tested

The screens in this post are mockups, not captures of Google’s products. Google Slides, Google Sheets, Google Docs, Google Forms, Google Meet, Google Chat, Google Drive, Gemini and Google Workspace are trademarks of Google LLC.

Related posts

Google SlidesUpdate Google Slides collateral from one messaging sheet with GeminiNov 9, 2026, updated Nov 10Workspace StudioCustomer proof points expire. Track them.Sep 9, 2026GeminiTurn your messaging recipes into Gemini skillsOct 8, 2026

Sources