# Google Sheet Node (WIP)

## 📌 Google Sheets Node 개요

### Google Sheets Node란?

- n8n에서 **Google Sheets API**를 활용하여 구글 스프레드시트와 자동으로 상호작용할 수 있도록 도와주는 노드

- 시트에 데이터를 읽고 쓰며, 셀을 업데이트하거나 삭제할 수 있는 기능을 제공

- 다양한 앱과 연동해 실시간 데이터 자동화, 리포트 생성, 대시보드 업데이트 등을 가능하게 함!

### Google Sheets Node를 통해 가능한 작업들

✅ 데이터 조회: 특정 시트의 데이터를 가져오기 (범위 지정 가능)

✅ 데이터 추가: 행 단위로 새 데이터를 삽입

✅ 데이터 업데이트: 조건에 맞는 셀 또는 범위를 수정

✅ 데이터 삭제: 특정 범위 또는 행 삭제

## 📌 사전 준비

### Google API Credential 발급 ( [🔗상세 가이드](https:///3d9a3b42b781423cad389d03caae9c64) )

step1) Google Cloud Console 접속 및 프로젝트 생성

- https://console.cloud.google.com/ 접속 후, 새 프로젝트를 생성

- "Google Sheets API"와 "Google Drive API"를 활성화

step2) 서비스 계정 생성 및 키 발급

- IAM & 관리자 > 서비스 계정 > 서비스 계정 생성 클릭

- 역할은 "Editor" 또는 "Spreadsheet Editor" 부여

- 키 유형은 JSON 선택 후 생성하여 로컬에 저장

step3) 스프레드시트 공유 설정

- Google Sheet 문서를 열고, 생성한 서비스 계정 이메일(예: `xxx@project.iam.gserviceaccount.com`)에 **편집 권한으로 공유**

이제 n8n에서 Google Sheets 연동을 위한 준비 완료! 💪

이제부터 각 노드 기능을 살펴봅시다.

## 📌 시나리오 기반 노드 기능 설명

---

### ✅ 1단계: 스프레드시트 및 시트 생성

### 1. Create Spreadsheet (스프레드시트 문서 생성)

- **기능**: Google Drive 상에 새 Google Sheet 파일을 생성

- **입력값**: `title` (문서 제목)

- **출력값**: `spreadsheetId`, `spreadsheetUrl`

- **예시 노드**: `Create Spreadsheet`

### 2. Create Sheet (시트 생성)

- **기능**: 기존 Google Sheet 문서에 새로운 시트(탭) 추가

- **입력값**:

    - `documentId`: 생성된 문서의 ID (이전 노드의 출력값 사용)

    - `title`: 생성할 시트 이름

- **출력값**: `sheetId`, `title`, `index`

- **예시 노드**: `Create Sheet`

---

### ✅ 2단계: 데이터 추가

### 3. Append Row (행 추가)

- **기능**: 시트에 새로운 데이터 행을 추가

- **입력값**:

    - `documentId`: 문서 ID

    - `sheetName`: 시트 ID 또는 이름

    - `columns`: 추가할 데이터 필드 매핑 (`id`, `name`, `email`, `notes`, `country`, `created`)

- **데이터 소스**: `Customer Datastore (n8n training)` 노드에서 불러온 데이터

- **예시 노드**: `Append Row`

---

### ✅ 3단계: 데이터 조회 및 수정

### 4. Read Sheet (특정 조건으로 행 검색)

- **기능**: 시트 내에서 조건에 맞는 행을 조회

- **입력값**:

    - `documentId`, `sheetName`

    - `filtersUI`: 예) `id`가 `"23423532"`인 행 조회

- **출력값**: `row_number`, `name`, `email` 등 포함된 행 정보

- **예시 노드**: `Read Sheet`

### 5. Update Sheet (데이터 수정)

- **기능**: 조회된 행의 데이터를 수정

- **입력값**:

    - `matchingColumns`: 기준 열 (예: `id`)

    - `columns.value`: 수정할 내용 (`name`, `email`, `country` 등)

- **예시 노드**: `Update Sheet`

---

### ✅ 4단계: 조건 기반 삭제 및 초기화

### 6. Read Sheet_ (조건 조회 for 삭제)

- **기능**: 특정 조건(예: `country = US`)의 데이터를 찾기

- **출력값**: 삭제 대상 행의 `row_number` 확보

- **예시 노드**: `Read Sheet_`

### 7. Delete Row (행 삭제)

- **기능**: 특정 `row_number`를 기반으로 행 삭제

- **입력값**: `startIndex = $json.row_number`

- **예시 노드**: `Delete Row`

### 8. Clear Sheet (전체 값 삭제)

- **기능**: 시트 내 모든 데이터를 삭제하고 빈 시트로 초기화

- **예시 노드**: `Clear Sheet`

---

### ✅ 5단계: 시트 또는 전체 문서 삭제

### 9. Remove Sheet (시트 자체 삭제)

- **기능**: 스프레드시트 내 특정 시트(탭)를 삭제

- **예시 노드**: `Remove Sheet`

### 10. Delete Spreadsheet (스프레드시트 파일 삭제)

- **기능**: 전체 문서를 Google Drive에서 삭제

- **예시 노드**: `Delete Spreadsheet`

For the site tree, see the [root Markdown](https://slashpage.com/n8n-guide.md).
