8
n8n 한국어amn8n.com

Google Sheets의 REST API 사용

고급

이것은Engineering, Multimodal AI분야의자동화 워크플로우로, 17개의 노드를 포함합니다.주로 Set, Webhook, GoogleSheets, RespondToWebhook 등의 노드를 사용하며. Google Sheets 데이터베이스로 CRUD REST API 생성

사전 요구사항
  • HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
  • Google Sheets API 인증 정보
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
  "id": "6QvxWwgaPghd06wj",
  "meta": {
    "instanceId": "8981479cb588889c05b145eaed421551d37a4fff11ab279d3f4744a6577c6002",
    "templateCredsSetupCompleted": true
  },
  "name": "REST API with Google Sheets",
  "tags": [],
  "nodes": [
    {
      "id": "4b53d6ea-e083-4d89-b8af-6c4e37e4066e",
      "name": "시트에 행 추가",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "name": "={{ $json.body.name }}",
            "email": "={{ $json.body.email }}",
            "status": "={{ $json.body.status }}"
          },
          "schema": [
            {
              "id": "name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q/edit?usp=drivesdk",
          "cachedResultName": "REST API data"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "FboA3kaXSneJmEGX",
          "name": "Google Service Account account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "70a88ee3-83ef-409f-b9fc-699b57aff26a",
      "name": "Webhook: 생성",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        0
      ],
      "webhookId": "e9177cf8-aab6-4cc0-8086-073c294dd575",
      "parameters": {
        "path": "items",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "4cb95925-d5be-4594-93d1-84cecaabc99d",
      "name": "Webhook: 전체 조회",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        224
      ],
      "webhookId": "e9177cf8-aab6-4cc0-8086-073c294dd575",
      "parameters": {
        "path": "items/all",
        "options": {},
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "a18c5a15-92bf-4897-83c7-0c0a4aaeb58a",
      "name": "Webhook: 생성 응답",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        448,
        0
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "{\n  \"status\": \"success\",\n  \"message\": \"Record created.\"\n}"
      },
      "typeVersion": 1.4
    },
    {
      "id": "6ee8437b-6340-4cdc-b39b-1951461d4164",
      "name": "Webhook: 전체 조회 응답",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        448,
        224
      ],
      "parameters": {
        "options": {},
        "respondWith": "allIncomingItems"
      },
      "typeVersion": 1.4
    },
    {
      "id": "1560785d-b30e-49b5-94f4-27445538d086",
      "name": "Webhook: 조회",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        448
      ],
      "webhookId": "e9177cf8-aab6-4cc0-8086-073c294dd575",
      "parameters": {
        "path": "items",
        "options": {},
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "46baff34-99e4-4c6a-9395-76fc5358c5a7",
      "name": "시트에서 행 가져오기",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        224
      ],
      "parameters": {
        "options": {},
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q/edit?usp=drivesdk",
          "cachedResultName": "REST API data"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "FboA3kaXSneJmEGX",
          "name": "Google Service Account account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "1cbcf7af-d1ba-4994-a795-d5c597439bad",
      "name": "시트에서 단일 행 가져오기",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        448
      ],
      "parameters": {
        "options": {},
        "filtersUI": {
          "values": [
            {
              "lookupValue": "={{ $json.query.id }}",
              "lookupColumn": "=row_number"
            }
          ]
        },
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q/edit?usp=drivesdk",
          "cachedResultName": "REST API data"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "FboA3kaXSneJmEGX",
          "name": "Google Service Account account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "ebaf7824-73af-47c2-8e3d-a19947a91892",
      "name": "Webhook: 조회 응답",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        448,
        448
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.4
    },
    {
      "id": "6cbd2531-b9f4-4a3f-b821-bec3caf2d09d",
      "name": "Webhook: 업데이트",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        672
      ],
      "webhookId": "e9177cf8-aab6-4cc0-8086-073c294dd575",
      "parameters": {
        "path": "items",
        "options": {},
        "httpMethod": "PUT",
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "b91994a3-ef36-4770-99dc-926640496693",
      "name": "시트에서 행 업데이트",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        448,
        672
      ],
      "parameters": {
        "columns": {
          "value": {
            "name": "={{ $json.body.name }}",
            "email": "={{ $json.body.email }}",
            "status": "={{ $json.body.status }}",
            "row_number": "={{ $json.query.id }}"
          },
          "schema": [
            {
              "id": "name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "row_number",
              "type": "number",
              "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/1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q/edit?usp=drivesdk",
          "cachedResultName": "REST API data"
        },
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "FboA3kaXSneJmEGX",
          "name": "Google Service Account account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "5180a531-5efa-4fba-a870-61f7223fcb93",
      "name": "Webhook: 업데이트 응답",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        672,
        672
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "{\n  \"status\": \"success\",\n  \"message\": \"Record updated.\"\n}"
      },
      "typeVersion": 1.4
    },
    {
      "id": "ec3b5abd-17ae-4964-b792-5d320ad7a65b",
      "name": "Webhook: 삭제",
      "type": "n8n-nodes-base.webhook",
      "position": [
        0,
        896
      ],
      "webhookId": "e9177cf8-aab6-4cc0-8086-073c294dd575",
      "parameters": {
        "path": "items",
        "options": {},
        "httpMethod": "DELETE",
        "responseMode": "responseNode"
      },
      "typeVersion": 2.1
    },
    {
      "id": "b3950509-6173-4a30-bbaa-42ef34b15878",
      "name": "시트에서 행 또는 열 삭제",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        224,
        896
      ],
      "parameters": {
        "operation": "delete",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q/edit?usp=drivesdk",
          "cachedResultName": "REST API data"
        },
        "startIndex": "={{ $json.query.id }}",
        "authentication": "serviceAccount"
      },
      "credentials": {
        "googleApi": {
          "id": "FboA3kaXSneJmEGX",
          "name": "Google Service Account account"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "0361a349-a259-4a3c-877e-2bb7bee0f9be",
      "name": "Webhook: 삭제 응답",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        448,
        896
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "{\n  \"status\": \"success\",\n  \"message\": \"Record deleted.\"\n}"
      },
      "typeVersion": 1.4
    },
    {
      "id": "ba367266-005d-42a0-aeba-2b48db0fea05",
      "name": "스티커 메모",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -688,
        0
      ],
      "parameters": {
        "width": 592,
        "height": 992,
        "content": "## Simple REST API with Google Sheets\n\n### Introduction\n\nThis workflow template demonstrates how to quickly and easily create a simple REST API using n8n and a Google Sheet as a no-code database. It's a perfect starting point for building a backend for small applications, prototypes, or internal tools without writing any code.\n\n### Purpose\n\nThe purpose of this template is to provide a complete, ready-to-use n8n workflow that handles all fundamental CRUD (Create, Read, Update, Delete) operations. The workflow uses a single Webhook trigger to handle POST, GET, PUT, and DELETE requests, allowing you to manage data in your Google Sheet through standard API calls.\n\n### Setup Instructions\n\nTo get started with this template, follow these steps:\n\n1. **Prepare your Google Sheet:** Create a new Google Sheet and add the following column headers in the first row: `name`, `email`, and `status`. You can use this [example Google Sheet](https://docs.google.com/spreadsheets/d/1bQyl8pGVutkq1LRwK_-6TAAcXwNj4_TipeWHi-qmK1Q/edit?usp=sharing) as a starting point. This sheet will serve as your database.\n2. **Authenticate:** In the n8n workflow, connect your Google Account credentials to the Google Sheets nodes.\n3. **Select your data:** Choose the Google Sheet and the corresponding sheet name from the drop-down lists in each of the Google Sheets nodes.\n4. **Activate:** Save and activate the workflow.\n5. Test the API: Use a tool like `curl`, Postman, or Insomnia to test your new API endpoints. The base URL will be your n8n webhook URL followed by `/items`.\n\n#### Example `curl` Commands:\n* **POST (Create):** `curl -X POST YOUR_N8N_WEBHOOK_URL/items -H \"Content-Type: application/json\" -d '{\"name\": \"Alice\", \"email\": \"alice@example.com\", \"status\": \"active\"}'`\n* **GET (Read All):** `curl -X GET YOUR_N8N_WEBHOOK_URL/items/all`\n* **GET (Read Single):** `curl -X GET YOUR_N8N_WEBHOOK_URL/items?id=2`\n* **PUT (Update):** `curl -X PUT YOUR_N8N_WEBHOOK_URL/items?id=2 -H \"Content-Type: application/json\" -d '{\"status\": \"inactive\"}'`\n* **DELETE (Delete):** `curl -X DELETE YOUR_N8N_WEBHOOK_URL/items?id=2`\n\nFor more detailed instructions, including building the workflow in n8n, check out the full blog post: [Build a Simple REST API in 10 Minutes with n8n & Google Sheets](https://n8nplaybook.com/post/2025/08/n8n-google-sheets-rest-api/)"
      },
      "typeVersion": 1
    },
    {
      "id": "8264647e-c5b2-4bf1-90a7-6fc0e8e5c2b9",
      "name": "업데이트 필드 준비",
      "type": "n8n-nodes-base.set",
      "position": [
        224,
        672
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={\n  \"row_number\": {{ $json.query.id }}\n  {{ $if($json.body.keys().length > 0, ', ' + $json.body.toJsonString().replace('{', '').replace('}', ''), '') }}\n}\n"
      },
      "typeVersion": 3.4
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "a0da6d17-701f-4d0f-a49d-b66b5fecd7b2",
  "connections": {
    "1560785d-b30e-49b5-94f4-27445538d086": {
      "main": [
        [
          {
            "node": "1cbcf7af-d1ba-4994-a795-d5c597439bad",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "70a88ee3-83ef-409f-b9fc-699b57aff26a": {
      "main": [
        [
          {
            "node": "4b53d6ea-e083-4d89-b8af-6c4e37e4066e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ec3b5abd-17ae-4964-b792-5d320ad7a65b": {
      "main": [
        [
          {
            "node": "b3950509-6173-4a30-bbaa-42ef34b15878",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "6cbd2531-b9f4-4a3f-b821-bec3caf2d09d": {
      "main": [
        [
          {
            "node": "8264647e-c5b2-4bf1-90a7-6fc0e8e5c2b9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "1cbcf7af-d1ba-4994-a795-d5c597439bad": {
      "main": [
        [
          {
            "node": "ebaf7824-73af-47c2-8e3d-a19947a91892",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "46baff34-99e4-4c6a-9395-76fc5358c5a7": {
      "main": [
        [
          {
            "node": "6ee8437b-6340-4cdc-b39b-1951461d4164",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4cb95925-d5be-4594-93d1-84cecaabc99d": {
      "main": [
        [
          {
            "node": "46baff34-99e4-4c6a-9395-76fc5358c5a7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4b53d6ea-e083-4d89-b8af-6c4e37e4066e": {
      "main": [
        [
          {
            "node": "a18c5a15-92bf-4897-83c7-0c0a4aaeb58a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b91994a3-ef36-4770-99dc-926640496693": {
      "main": [
        [
          {
            "node": "5180a531-5efa-4fba-a870-61f7223fcb93",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8264647e-c5b2-4bf1-90a7-6fc0e8e5c2b9": {
      "main": [
        [
          {
            "node": "b91994a3-ef36-4770-99dc-926640496693",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b3950509-6173-4a30-bbaa-42ef34b15878": {
      "main": [
        [
          {
            "node": "0361a349-a259-4a3c-877e-2bb7bee0f9be",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
자주 묻는 질문

이 워크플로우를 어떻게 사용하나요?

위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.

이 워크플로우는 어떤 시나리오에 적합한가요?

고급 - 엔지니어링, 멀티모달 AI

유료인가요?

이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.

워크플로우 정보
난이도
고급
노드 수17
카테고리2
노드 유형5
난이도 설명

고급 사용자를 위한 16+개 노드의 복잡한 워크플로우

외부 링크
n8n.io에서 보기

이 워크플로우 공유

카테고리

카테고리: 34