10. n8n Set 노드 사용법: 필요한 데이터만 골라 정리하는 방법
n8n에서 자동화가 복잡해지는 이유는 노드가 많아서가 아니라, 앞 노드에서 넘어오는 데이터가 정리되지 않은 채 다음 단계로 계속 전달되기 때문인 경우가 많아요.
Set 노드는 이 데이터를 다음 노드가 사용하기 쉬운 형태로 정리하는 역할을 합니다.
복잡한 Output → 필요한 값 선택 → 알아보기 쉬운 필드명 → 다음 노드
이번 글에서는 Set 노드의 버튼 위치를 하나씩 설명하기보다, 어떤 데이터를 남기고 어떤 이름으로 정리해야 이후 자동화가 편해지는지를 중심으로 살펴볼게요.
Set 노드를 넣기 전과 후는 무엇이 다를까요?
예를 들어 Gmail에서 가져온 데이터에 많은 필드가 있다고 해볼게요.
Google Sheets에 실제로 필요한 것은 몇 개뿐일 수 있습니다.
| 원본 데이터 | Set에서 정리한 이름 | 사용 목적 |
|---|---|---|
| from | customer_email | 고객 이메일 |
| subject | email_subject | 문의 제목 |
| text | email_body | 문의 내용 |
| date | received_at | 접수 시간 |
그리고 원본 데이터에 없는 값도 직접 만들 수 있어요.
status = "대기"
source = "이메일"
이렇게 한 번 정리해두면 뒤에서 IF, Google Sheets, Telegram을 연결할 때 훨씬 이해하기 쉬워집니다.
Set 노드의 역할은 크게 세 가지입니다
1. 필요한 값만 고르기
Gmail, Webhook, RSS, API처럼 외부 데이터를 받는 노드는 Output이 복잡할 수 있어요.
모든 값을 그대로 다음 노드에 넘기기보다 실제 업무에 필요한 값만 추려두면 흐름이 단순해집니다.
2. 필드 이름을 이해하기 쉽게 바꾸기
from, text, value처럼 모호한 이름은 나중에 워크플로우를 다시 열었을 때 헷갈리기 쉽습니다.
가능하면 데이터의 의미가 바로 드러나는 이름으로 정리하세요.
| 피하고 싶은 이름 | 추천 이름 |
|---|---|
| data1 | customer_email |
| text | inquiry_message |
| date | received_at |
| temp | inquiry_status |
3. 새로운 값을 만들기
앞 노드에 없는 값이라도 Set에서 직접 추가할 수 있어요.
status = "대기"
source = "랜딩페이지"
priority = "일반"
이 기능을 활용하면 단순히 데이터를 옮기는 자동화에서 한 단계 더 나아가 업무 상태를 관리하는 구조를 만들 수 있습니다.
Set 노드는 Output을 본 다음에 설정하세요
Set 노드에서 가장 중요한 순서는 이것입니다.
앞 노드 실행 → Output 확인 → 실제 필드명 확인 → Set 노드 설정
필드명을 예상해서 먼저 입력하면 값이 비어 나올 수 있어요.
예를 들어 인터넷 예제에는 subject라고 되어 있어도 실제 Output 구조가 다르면 그대로 사용할 수 없습니다.
실습 — 문의 이메일을 저장용 데이터로 바꿔보기
Gmail에서 문의 메일이 들어왔다고 가정해볼게요.
원본 Gmail 데이터
from
subject
text
date
Set 노드에서는 이렇게 바꿉니다.
customer_email ← from
email_subject ← subject
email_body ← text
received_at ← date
status ← "대기"
source ← "이메일"
Set 노드를 실행한 뒤 Output에서 최종 결과를 확인합니다.
{
"customer_email": "test@example.com",
"email_subject": "자동화 상담 문의",
"status": "대기",
"source": "이메일"
}
이 결과가 정상이라면 이후 Google Sheets 연결은 훨씬 단순해져요.
Google Sheets와 연결할 때의 장점
Set에서 시트 열 이름과 비슷하게 정리해두면 매핑이 명확합니다.
| Google Sheets 열 | Set 필드 |
|---|---|
| 고객 이메일 | customer_email |
| 문의 제목 | email_subject |
| 접수 시간 | received_at |
| 처리 상태 | status |
값이 비어 나온다면 어디를 봐야 할까요?
- 앞 노드 Output에서 원본 값이 있는지 확인
- 필드명이 실제 Output과 일치하는지 확인
- 직접 입력값과 Expression을 혼동하지 않았는지 확인
- Set 노드를 실행한 뒤 Set Output 확인
이 네 단계로 확인하면 다음 노드까지 다시 수정하는 일을 줄일 수 있습니다.
Set 노드는 자동화의 데이터 규칙을 만드는 곳입니다
Set 노드를 단순히 값을 바꾸는 노드라고 생각하면 활용 범위가 좁습니다.
실제로는 자동화 전체에서 사용할 필드명과 데이터 형태를 표준화하는 단계라고 보는 편이 더 이해하기 쉬워요.
특히 같은 데이터를 Google Sheets, Telegram, IF 노드에서 반복해서 사용할 계획이라면 처음부터 Set에서 정리해두는 편이 좋습니다.
공유하거나 캡처하기 전에는 데이터도 확인하세요
- 실습에는 실제 고객 이메일 대신 샘플 데이터 사용
- API Key나 Token을 Set 값으로 직접 입력하지 않기
- 캡처할 때 이메일·전화번호 가리기
- 워크플로우 공유 전 Set 값에 민감한 정보가 없는지 확인
한 줄로 정리하면
Set 노드는 앞에서 받은 데이터를 뒤에서 사용하기 쉬운 규칙으로 정리하는 노드입니다.
다음 글에서는 이렇게 정리한 데이터를 기준으로 true와 false 두 방향으로 업무 흐름을 나누는 IF 노드를 살펴볼게요.
※ 이 글은 n8n 비개발자 자동화 시리즈 10화입니다. n8n에서는 Set 노드가 Edit Fields 형태로 표시될 수 있으며, 실제 화면은 버전에 따라 달라질 수 있습니다.
참고자료
- n8n Docs, Edit Fields (Set) node
- n8n Docs, Understanding the data structure
- n8n Docs, Expressions
- n8n Docs, Referencing previous nodes
- n8n Docs, Google Sheets node