All articles
Guides

Google Workspace automation: practical workflows for your team

For request intake, a useful starting point is a linked Google Form that adds a response row, followed by a small script that assigns the right review owner.

11-connected-access

Google Sheets automation can handle repeated formatting, calculations and workflows triggered by new information. For request intake, a useful starting point is a linked Google Form that adds a response row, followed by a small script that assigns the right review owner.

This guide builds that specific workflow. It preserves the submitted content and writes only two routing fields. It does not send messages or change the reported website.

Download the routing script and setup and test packet. The example handles website-correction requests and includes checks for missing question names, changed rows and existing routing.

Choose the automation around the job

For repeated manual formatting, Sheets macros can record interactions and create an Apps Script function. A macro is useful for a repeated sequence, but recording it does not automatically make it run whenever a form is submitted.

For this intake workflow, use an installable spreadsheet form-submit trigger. It supplies the submitted row and the form's named answers, which the handler uses to choose a routing owner.

The source response remains the request. The routing result simply tells the team who should inspect it next.

Create the form and link its responses

Create three required questions with distinct, exact names:

Question

Type

Choices or purpose

Request type

Dropdown

Broken link, Outdated information, Other

Page URL

Short text

Reference to the affected page

Description

Paragraph

What the requester observed

In Forms, open Responses → Summary, then More → Select destination for responses. Choose a new or existing spreadsheet. Google's response-storage guidance documents the link.

In the response tab, add two adjacent output headers: Routing owner, followed immediately by Intake state. Leave those output cells blank for new responses. Do not change the form's raw response values.

Keep this response tab append-only. Use another tab or view for sorting and analysis so row positions are not displaced while the handler is processing an event. Maintain access to the form and spreadsheet separately.

Define the routing rules

The example uses three local rules:

Request type

Routing owner

Intake state

Broken link

Web operations

Ready for triage

Outdated information

Content operations

Ready for triage

Other

Intake coordinator

Needs classification

“Ready for triage” means a person should review the report. It does not mean the reported issue has been verified or fixed.

The handler checks that the required answers exist and that the page reference begins with an HTTP or HTTPS scheme. That is a basic input check, not proof that the URL exists, is trustworthy or is owned by your company. The script does not open it.

Install the script in the linked spreadsheet

From the response spreadsheet, open Extensions → Apps Script. Copy the downloadable script into the bound project and set its RESPONSE_TAB value to the exact response-tab name in your spreadsheet.

The handler uses named form answers rather than assuming that the request type is always in a particular column. It checks that required headers appear once and that the two output columns are adjacent before writing.

Google's spreadsheet event reference defines namedValues as question names mapped to answer arrays, with range identifying the event row. A renamed question changes that mapping, so the script reports an error instead of guessing.

The script also compares the current raw row with the event's answers. If the row changed, it stops for review. Existing complete routing is preserved, and a partially populated routing pair is flagged rather than silently overwritten.

Add the correct trigger

Save the script, open Triggers → Add Trigger, select routeWebsiteRequest and configure a spreadsheet form-submit event. Save and complete the required authorization under the intended trigger owner.

Use the spreadsheet event, not the separate Forms-bound event or a simple edit handler. Clicking the editor's Run button does not supply a real submission event.

Google's installable-trigger guide explains that the trigger runs as its creator. Review that ownership when a maintainer leaves or changes access. Keep one intended trigger for this handler, and investigate other installed triggers if the workflow appears to run twice.

Test the actual submission path

Submit an authorized sample through the form. Inspect the raw response, the two derived cells and Apps Script Executions.

Sample

Expected result

Broken link on a resources page

Web operations, Ready for triage

Outdated information on an about page

Content operations, Ready for triage

Other issue on a help page

Intake coordinator, Needs classification

Request type renamed without updating mapping

Error and raw response preserved

Test repeat handling and changed inputs too. A routing script should not overwrite a teammate's completed ownership decision merely because the same row is handled again.

We ran thirteen local checks against the downloadable script's mapping and simulated row objects. They confirmed the expected mapping, preserved existing routing and rejected the tested missing or changed inputs. Those checks are not a live Google integration test. No form, trigger or Google account was configured for this article.

Keep failed requests visible

Review failed executions and rows with blank routing. A rename, authorization change or quota limit can stop the handler. Google's quota documentation explains that limits can halt execution and vary by account.

After repairing the cause, reconcile the affected rows deliberately. Do not assume that installing or fixing a trigger automatically processes every old response. The packet separates local check results from the live tests your team still needs to run.

Let Artie own the intake follow-through

Artie is an AI employee who works across your apps and collaborates with your team in Slack. Give him responsibility for reviewing intake context, preparing the triage queue and keeping unclear requests with the right owner.

The fixed routing rule handles a small repeatable step. Artie can help carry the broader responsibility forward as the team investigates, decides and completes the work.

Get started with Artie.

Written by RafaSEO Specialist

Your next hire is an AI employee

Start with Artie and build a team of AI employees for your business.