14. n8n으로 구글시트에 데이터 자동 저장하는 방법
매일 문의 이메일을 손으로 구글시트에 옮기다가 전화번호를 한 자리 잘못 복사한 적이 있었어요. 고객이 연락이 없다고 다시 문의를 해왔고, 그때부터 구글시트 자동 저장을 만들어야겠다고 생각했어요.
Google Sheets 노드를 처음 설정할 때는 연결보다 "열 매칭"에서 가장 많이 막혀요. 구글시트 열 이름과 n8n 필드 이름을 어떻게 맞추는지를 모르면 값이 비거나 엉뚱한 열에 들어가거든요.
이번 글에서는 구글시트 자동 저장의 전체 흐름과 함께, 열 매칭에서 자주 막히는 부분을 중심으로 정리해볼게요.
구글시트 자동 저장이 어울리는 업무
"어딘가에서 데이터가 들어오면 표 형태로 계속 쌓아야 하는 업무"에 잘 맞아요. 구체적으로는 이런 것들이에요.
- 랜딩페이지 상담 신청 → 이름·연락처·문의 내용 자동 기록
- 이메일 문의 → 보낸 사람·제목·본문 시트 저장
- 블로그 글감 수집 → RSS 제목·링크·수집일 누적
- 업무 체크리스트 → 매일 항목 기록
- 광고 성과 → 날짜별 클릭수·전환수 누적
구글시트는 자동화 결과를 눈으로 확인하기 좋아요. 워크플로우가 실행된 뒤 실제로 행이 추가되는 걸 보면 자동화 구조가 훨씬 실감나게 이해돼요.
이번 실습 구조
처음에는 Webhook이나 Gmail 없이, Set 노드 샘플 데이터로만 연습하는 게 안전해요.
Manual Trigger → Set 노드 → Google Sheets 노드
이 구조를 익히면 나중에 Manual Trigger 자리에 Webhook이나 Gmail Trigger를 넣기만 해도 실무 자동화로 확장돼요.
시작 전: 구글시트 열 이름을 먼저 만들어야 한다
처음엔 구글시트에 열 이름 없이 바로 n8n을 연결했는데, Google Sheets 노드 설정에서 열 목록이 제대로 불려오지 않아서 한참 헤맸어요. 첫 행에 열 이름을 만들고 나서야 깔끔하게 됐어요.
n8n Google Sheets 노드는 시트의 첫 행을 열 이름으로 인식해요. 그래서 데이터를 저장하기 전에 구글시트 첫 행에 열 이름을 미리 만들어둬야 해요.
created_at | customer_name | customer_email | inquiry_title | inquiry_message | status
Google Sheets 노드 설정, 실제로 어떻게 하나?
열 매칭 — 이 부분이 가장 중요하다
Google Sheets 노드에서 가장 많이 막히는 부분이에요. 구글시트의 각 열에 n8n에서 넘어온 어떤 값을 넣을지 지정해야 해요.
n8n 필드 이름을 customer_email로 만들었는데 구글시트 열 이름을 email로 설정해서 값이 저장이 안 된 적이 있었어요. 이름을 정확히 맞춰주고 나서야 해결됐어요.
구글시트 열: created_at ← Set 노드 필드: created_at
구글시트 열: customer_name ← Set 노드 필드: customer_name
구글시트 열: customer_email ← Set 노드 필드: customer_email
구글시트 열: inquiry_title ← Set 노드 필드: inquiry_title
구글시트 열: inquiry_message ← Set 노드 필드: inquiry_message
구글시트 열: status ← Set 노드 필드: status
Append Row vs Append or Update Row — 무엇을 쓸까?
처음엔 Append Row가 훨씬 이해하기 쉬워요. 그런데 Append Row로 테스트를 10번 눌렀더니 구글시트에 똑같은 행이 10줄 생겼어요. 실습 중 실행 횟수에 주의해야 하고, 실습용 시트를 따로 만들어서 쓰는 게 좋아요.
실행 후 확인해야 할 것들
워크플로우를 실행하고 구글시트를 열어보면 새 행이 추가되어 있을 거예요. 이때 확인해야 할 것들이에요.
- 새 행이 실제로 추가됐는가
- 각 열에 값이 올바르게 들어갔는가 (비어 있는 열 없는지)
- created_at이 의도한 형식으로 저장됐는가
- 엉뚱한 열에 값이 들어가지 않았는가
- 테스트 데이터가 실수로 중복 추가되지 않았는가
이 구조, 어떻게 실무로 확장하나?
Manual Trigger + Set 노드 + Google Sheets 구조를 익히면, Manual Trigger 자리만 바꾸면 실무 자동화로 이어져요.
| 트리거 교체 | 자동화 내용 |
|---|---|
| Webhook → Set → Sheets | 랜딩페이지 상담 신청 자동 저장 |
| Gmail Trigger → Set → Sheets | 이메일 문의 자동 정리 |
| Schedule + RSS → IF → Set → Sheets | 매일 블로그 글감 수집 |
| Schedule → Set → Sheets | 업무 체크리스트 매일 기록 |
처음엔 샘플 데이터로 구조를 만들고, 트리거만 교체하면 돼요. 데이터 출처가 달라져도 Set 노드에서 정리하고 Google Sheets로 저장하는 흐름은 같아요.
초보자가 자주 막히는 4가지
1. 구글시트 열 이름을 먼저 안 만든다
열 이름이 없으면 Google Sheets 노드 설정에서 열 목록이 제대로 안 불려와요. n8n을 열기 전에 구글시트 첫 행에 열 이름을 반드시 만들어두세요.
2. Credentials 연결 계정이 해당 파일에 접근 권한이 없다
파일이 목록에 안 보이는 경우, 연결한 구글 계정에 그 파일의 접근 권한이 없는 거예요. 공유 문서라면 해당 계정에 편집 권한이 있는지 확인해야 해요.
3. 열 이름과 필드 이름이 달라서 값이 안 들어간다
구글시트 열은 customer_email인데 Set 노드 필드를 email로 만들면 매칭이 안 돼요. 열 이름과 필드 이름을 동일하게 맞춰두는 게 제일 안전해요.
4. 열 이름을 바꾸고 n8n 설정을 갱신 안 한다
구글시트에서 열 이름을 바꾸면 n8n의 Google Sheets 노드 설정도 갱신해야 해요. 그렇지 않으면 열을 찾지 못한다는 오류가 발생해요.
오류가 생겼을 때 확인 순서
- 구글시트 첫 행에 열 이름이 있는지 확인하기
- Credentials에 연결된 계정이 해당 파일에 편집 권한이 있는지 확인하기
- Set 노드 Output 탭에 값이 제대로 있는지 먼저 확인하기
- Google Sheets 노드의 열 매칭이 구글시트 열 이름과 일치하는지 확인하기
- Operation이 Append Row로 설정되어 있는지 확인하기
구글시트에 개인정보 저장할 때 주의할 것들
- 실습 중엔 실제 고객 정보 대신 샘플 데이터 사용하기
- 구글시트 공유 권한은 꼭 필요한 사람에게만 부여하기
- 전화번호·이메일이 있는 시트를 공개 공유하지 않기
- API 키·토큰은 구글시트 셀에 저장하지 않기
- Execution 기록에 개인정보가 남을 수 있다는 점 인식하기
마무리: 열 매칭만 잘 되면 구글시트 자동 저장은 어렵지 않다
Google Sheets 노드 설정에서 기억해야 할 것 세 가지예요.
- 구글시트 첫 행에 열 이름을 미리 만들어두기
- Credentials로 연결된 계정이 해당 파일에 편집 권한이 있는지 확인하기
- 열 이름과 n8n 필드 이름을 동일하게 맞추면 매칭이 단순해진다
이 구조를 익히면 Manual Trigger 자리에 Webhook이나 Gmail Trigger를 넣기만 해도 상담 신청 자동 저장, 이메일 문의 정리, 블로그 글감 수집 자동화로 이어져요. 데이터 출처가 달라져도 Set 노드로 정리하고 Google Sheets에 저장하는 흐름은 그대로예요.
다음 글에서는 n8n과 Gmail을 연동해 특정 조건의 이메일을 자동 처리하는 방법을 살펴볼게요. Gmail에서 문의 메일을 가져오고 구글시트에 저장하거나, 중요한 메일만 알림으로 보내는 흐름을 만들어볼 거예요.
※ 이 글은 n8n 비개발자 자동화 시리즈 14화입니다. n8n의 기능과 화면은 버전에 따라 달라질 수 있으며, 실제 사용 전에 공식 문서를 함께 확인해주세요.
참고자료
- n8n Docs, Manual Trigger node
- n8n Docs, Edit Fields (Set) node
- n8n Docs, Google Sheets node
- n8n Docs, Google Sheets Sheet Within Document operations
- n8n Docs, Google Sheets node common issues
- n8n Docs, Google credentials
- Google Developers, Google Sheets API spreadsheets.values.append
- Google Docs Help, Stop, limit, or change sharing
- n8n Docs, Execution data redaction
- n8n Docs, Securing n8n
- 국가법령정보센터, 개인정보 보호법 제3조