AutomationFlowsGeneral › Google Sheets UI for n8n Workflows

Google Sheets UI for n8n Workflows

Original n8n title: Google Sheets UI for N8n Workflow

Google Sheets UI for n8n Workflow. Uses manualTrigger, stickyNote, splitInBatches, googleSheets. Event-driven trigger; 6 nodes.

Event trigger★★☆☆☆ complexity6 nodesGoogle Sheets
General Trigger: Event Nodes: 6 Complexity: ★★☆☆☆ Added:

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "6UxyvEC8t6hfrQvm",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "Google Sheets UI for n8n Workflow",
  "tags": [],
  "nodes": [
    {
      "id": "891425c8-7f09-4a7e-8b18-4ca06a0111b6",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        0,
        64
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "6a12b4f8-95f3-4a19-9b4c-091e1a1450a1",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -640,
        -736
      ],
      "parameters": {
        "width": 1224,
        "height": 744,
        "content": "## Google Sheets UI for Workflow Control\n\nThis n8n template provides a practical and efficient way to manage your n8n workflows using Google Sheets as a user-friendly interface. It demonstrates how to leverage a simple spreadsheet to control inputs, capture outputs, and track the processing status of individual data rows, offering a clear and visual overview of your automation tasks.\n\n### Purpose of This Template:\n\nThe primary purpose of this template is to illustrate how Google Sheets can serve as a dynamic UI for your n8n automations. It's designed for n8n users who need:\n\n- A structured method to feed specific data into their workflows.\n- The ability to selectively trigger workflow execution based on data status.\n- A centralized place to view and store workflow outputs alongside original inputs.\n- A simple, no-code solution for managing workflow data without building custom applications.\n\n### Setup Instructions:\n\nTo use this template, follow these steps:\n\n1. **Create a Google Sheet:** Set up a new Google Sheet ([see the template here](https://docs.google.com/spreadsheets/d/13xu9zKI8yDqs7971qIq9zDCBCnhYzdVq8pdtnQ9vMkI/edit?usp=sharing)) with three columns: `Color`, `Status`, and `Number`. Populate the `Color` column with some sample data (e.g., color names) and set the `Status` for the rows you want to process to `READY`.\n2. **Import the n8n Workflow:** Import this n8n template into your n8n instance.\n3. **Configure Google Sheets Nodes:**\n   - For the first Google Sheets node (Read operation), ensure it's connected to your newly created Google Sheet and configured to read rows where the `Status` column is `READY`. You will need to authenticate your Google Sheets account.\n   - For the second Google Sheets node (Update operation), ensure it's also connected to the same Google Sheet. The node should automatically map the `row_number`, `Number`, and `Status` fields from the preceding nodes.\n4. **Execute the Workflow:** Run the workflow. Observe how it reads `READY` rows, processes them (calculates string length), and updates the `Number` and `Status` columns in your Google Sheet to `DONE`.\n5. **Control Execution:** To process new data, simply add new rows to your Google Sheet and set their `Status` to `READY`. Rerunning the workflow will then only process these new entries.\n\nFor more details and context on this approach, you can refer to the related blog post [here](https://n8nplaybook.com/post/2025/06/google-sheets-as-n8n-ui/)."
      },
      "typeVersion": 1
    },
    {
      "id": "3567ea8e-c780-4bd2-bc34-5a88b681d9ee",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        448,
        64
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "79583f64-4c09-4210-a440-57dbba28dc3c",
      "name": "Edit Fields",
      "type": "n8n-nodes-base.set",
      "position": [
        672,
        112
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "4a875792-664d-4c97-af72-1252c86cc64a",
              "name": "row_number",
              "type": "number",
              "value": "={{ $json.row_number }}"
            },
            {
              "id": "cd47a508-aad7-4c7c-94cc-15752e8ede05",
              "name": "Number",
              "type": "number",
              "value": "={{ $json.Color.length }}"
            },
            {
              "id": "b67e8c39-f3f9-4614-9b5d-96876cb6a669",
              "name": "Status",
              "type": "string",
              "value": "DONE"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "698a0745-a4cd-4f2f-84e4-e8f5402c5215",
      "name": "Read Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        64
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "READY",
              "lookupColumn": "Status"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/13xu9zKI8yDqs7971qIq9zDCBCnhYzdVq8pdtnQ9vMkI/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "13xu9zKI8yDqs7971qIq9zDCBCnhYzdVq8pdtnQ9vMkI",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/13xu9zKI8yDqs7971qIq9zDCBCnhYzdVq8pdtnQ9vMkI/edit?usp=drivesdk",
          "cachedResultName": "Tip #2: Using Google Sheets as UI for your n8n workflow"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "79f663cc-805a-453a-9e9f-8e8114c47083",
      "name": "Update Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        672,
        -96
      ],
      "parameters": {
        "columns": {
          "value": {},
          "schema": [
            {
              "id": "Color",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Color",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Number",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "row_number",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "autoMapInputData",
          "matchingColumns": [
            "row_number"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/13xu9zKI8yDqs7971qIq9zDCBCnhYzdVq8pdtnQ9vMkI/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "13xu9zKI8yDqs7971qIq9zDCBCnhYzdVq8pdtnQ9vMkI",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/13xu9zKI8yDqs7971qIq9zDCBCnhYzdVq8pdtnQ9vMkI/edit?usp=drivesdk",
          "cachedResultName": "Tip #2: Using Google Sheets as UI for your n8n workflow"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "40d78166-2f0e-4117-9ade-3032661b3c7f",
  "connections": {
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "Update Google Sheets",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read Google Sheets": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Read Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Google Sheets UI for n8n Workflow. Uses manualTrigger, stickyNote, splitInBatches, googleSheets. Event-driven trigger; 6 nodes.

Source: https://github.com/vklepikovskiy/n8nplaybook-public/blob/main/workflows/google_sheets_ui.json — original creator credit. Request a take-down →

More General workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

General

Preventing Google Sheets Quota Errors during Batch Processing. Uses manualTrigger, stickyNote, splitInBatches, googleSheets. Event-driven trigger; 8 nodes.

Google Sheets
General

Fetch the Most Recent Document from Google Drive. Uses googleDocs, toolWikipedia, toolCalculator, googleSheets. Event-driven trigger; 12 nodes.

Google Docs, Tool Wikipedia, Tool Calculator +3
General

SEO key word analysis and filter. Uses manualTrigger, lmChatOpenAi, googleDrive, extractFromFile. Event-driven trigger; 26 nodes.

OpenAI Chat, Google Drive, Text Classifier +1
General

Passive Income with Stock Images. Uses googleDrive, openAi, googleSheets. Event-driven trigger; 15 nodes.

Google Drive, OpenAI, Google Sheets
General

Awesome N8N Templates. Uses executionData, googleSheets. Webhook trigger; 11 nodes.

Execution Data, Google Sheets