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)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Unli.dev를 사용하여 시스템 힌트 생성
Unli.dev를 사용하여 LLM에 AI 시스템 힌트 생성
Set
Webhook
Http Request
+
Set
Webhook
Http Request
7 노드Khairul Muhtadin
엔지니어링
인증 및 Supabase 통합 안전 웹훅 API 학습
인증 및 Supabase 통합을 포함한 안전한 웹휘크 API를 배우기
Set
Webhook
Supabase
+
Set
Webhook
Supabase
27 노드Wayne Simpson
엔지니어링
경쟁사 콘텐츠 격차 분석기: 자동화된 웹사이트 주제 매핑
Gemini AI, Apify, Google Sheets를 사용한 경쟁사 콘텐츠 격차 분석
If
Set
Code
+
If
Set
Code
30 노드Mychel Garzon
기타
코치 온보딩 및 교육 자동화
문자 메시지, Twilio 및 Google 시트를 사용한 30일 코칭 트레이닝 자동화
If
Set
Code
+
If
Set
Code
36 노드Ronnie Craig
콘텐츠 제작
여러 채용 사이트의 구직 활동 자동화
5개 채용 플랫폼 및 AI 이력서 생성기를 사용한 구직 및 지원 자동화
If
Set
Code
+
If
Set
Code
34 노드Gerald Denor
개인 생산성
잠재 리드 전화 자동화: VAPI, Google Sheets 기록 및 캘린더 예약
잠재 고객 전화 자동화: VAPI, Google Sheets 기록 및 캘린더 약속
Set
Code
Webhook
+
Set
Code
Webhook
13 노드Meak
콘텐츠 제작