지난 글에서는 구글 스프레드 시트 값이 변경되면 Slack으로 알림을 보내는 자동화를 정리했다.
이번에는 거기서 한 단계 더 나아갔다.
단순히 알림만 보내는 것이 아니라
Slack 메시지에 버튼을 넣어 특정 작업을 자동 실행하도록 만들었다.
즉, 흐름은 이렇게 바뀌었다.
스프레드 시트 값 변경
→ Slack 알림
→ Slack 메시지 안의 버튼 클릭
→ n8n Webhook 실행
→ 내부 어드민 API 호출
→ Slack 결과 안내
사람이 직접 여러 페이지를 왔다 갔다 하며 하나하나 확인하고 등록하던 작업을
Slack에서 버튼 한 번으로 처리할 수 있도록 만든 것이다.
(사실 내가 왔다 갔다 작업하기 귀찮아서..ㅎㅎ)
전체 자동화 흐름
이번 자동화의 전체 구조는 아래와 같다.
n8n에서 이 흐름을 노드로 연결해서 구현한다고 보면 된다.
Slack 버튼 클릭
→ Webhook
→ 값 정리 (Code)
→ 등록 대상 조회 (HTTP Request)
→ 필요한 값 선택 (Code)
→ 엔진 조회 (HTTP Request)
→ 등록 대상 엔진 선택 (Code)
→ Merge
→ 등록 요청 API 호출 (PUT)
→ Slack 결과 메시지 전송
Slack 메시지에 “실행 버튼” 넣기
먼저 Slack 메시지에 실행 버튼 역할을 하는 링크를 넣었다.
예를 들면 이런 형태다.
작업 대상이 감지되었습니다.
▶ 등록 자동화 실행
https://n8n.example.com/webhook/register?블라블라블ㄹ라...
즉 Slack이 트리거가 된다.

링크 URL은 Webhook 노드를 생성했다면, 그 노드를 open 해서
상단에 Test URL / Production URL에서 카피하여 쓰면 된다.
우선 테스트 단계에서는 Test로 쓰면 되고, 링크를 누르면 카피가 된다.
* Test URL과 Production URL 차이점은 다른 글에서 확인하기 : 링크
n8n 기초 - Webhook 노드 알아보기
1. Webhook 노드란 무엇인가?Webhook은 쉽게 말하면"외부에서 신호를 보내면 자동화를 시작하는 노드"라고 생각하면 된다.예를 들어 이런 상황을 생각해 보자.사용자 클릭-> URL 호출-> Webhook-> Workflow
tamisandbox.tistory.com
Webhook (자동화의 시작점)
n8n에서 Webhook 노드는 외부에서 신호를 받아
워크플로우를 시작하는 역할을 한다.
예를 들어 이런 요청이 들어온다.
GET /webhook/register?mall_id=example
그러면 n8n이 실행된다.

Webhook이 하는 역할은 외부에서 버튼을 누르면
자동화가 시작되도록 하는 역할이다.
Code 노드 — 입력값 정리
Webhook에서 받은 값은 그대로 쓰기 어려운 경우가 많다.
그래서 첫 번째 Code 노드에서
입력값을 정리했다.

같이 이후 단계에서 필요한 값들을
JSON 형태로 정리한다.
이 단계는 데이터 전처리 단계라고 보면 된다.
Code 노드를 open 해보면, 좌측 'INPUT' 섹션에
웹훅을 통해 어떤 데이터가 들어왔는지 보이고,
중앙 파라미터 빈칸들에 Mode, Language, JavaScript 란에
어떤 식으로 데이터를 전처리 할지를 정의하면
우측 'OUTPUT' 섹션에 어떤식으로 데이터가 정제되는지 볼 수 있다.
언어는 Python도 사용할 수 있으나
아직 'Beta'라는 딱지가 붙어있어서 JavaSctipt로 했다.
HTTP Request — 등록 대상 조회
다음 단계는 등록할 대상 데이터를 조회하는 단계다.
HTTP Request 노드를 사용해서
내부 API를 호출했다.

예를 들면
응답은 이런 형태다.
{
data: {
data_list: [...]
}
}
이 데이터에서 필요한 값만 골라야 한다.
나는 코드 노드에서 2갈래로
2개의 HTTP Request를 연결해 2가지를 동시에 조회했다.
Code 노드 — 특정 조건 선택
조회 결과에는 여러 데이터가 포함된다.

그래서 다시 한번 Code 노드를 사용해서
HTTP Request로 불러온 값들에 대해
특정 조건을 기준으로 데이터를 선택했다.
인 mall만 선택하도록 했다.
이 과정은 필터링 단계다.
Merge 노드 — 두 데이터 흐름 합치기
여기서 중요한 포인트가 있다.
지금까지 두 가지 데이터가 만들어졌다.

두 갈래로 호출하고 정제한 데이터를 하나로 합쳐야 다음 단계에서 사용할 수 있다.
그래서 n8n의 Merge 노드를 사용했다.
설정은 다음과 같다.
Mode: Combine
Combine By: Position
Number of Inputs: 2
* Merge 노드에서 Number of Inputs의 최솟값이 2다.
이렇게 하면 두 개의 노드에서 나온 값이 하나의 데이터로 합쳐진다.
PUT API 호출 — 실제 등록
이제 실제 등록 작업을 수행한다.

사용한 API는 PUT 요청이다.
PUT은 보통 데이터 수정 / 등록에 사용된다.
이 요청이 성공하면
대상이 해당 엔진에 등록된다.
사실 나는 이 호출 앞에도 또 'Code' 노드로 한번 정제했는데,
PUT요청 같은 경우 사용할 때, 주의해서 사용해야 하는 만큼
형식을 한번 더 제대로 맞추어 올바른 데이터가 수정/ 등록되도록 한 것이다.
Slack 결과 메시지 보내기
등록이 끝나면
Slack으로 결과 메시지를 보내도록 했다.

이렇게 하면 담당자가 바로 다음 작업을 진행할 수 있다.
이번 작업에서 가장 막혔던 부분
이번 자동화를 만들면서
특히 세 가지에서 많이 막혔다.
1) API 호출 도메인 문제
처음에는 관리자 페이지 API를 직접 호출하려고 했는데
권한 문제로 실패했다.
결국 외부 API 게이트웨이 주소로 호출해야 했다.
이 문제를 찾는 데 시간이 꽤 걸렸다.
나처럼 회사 안에서 어드민에 접근하는 작업을 할 경우
1. 전용 토큰이 있는지
(토큰이 있다면 보안을 위해 Credentials을 설정하여 사용하는 것이 좋다)
2. 접근 권한이 있는지
(해당 웹페이지 직접 링크가 아닌 접근 전용 링크가 있거나, 접근 인프라 환경상의 보안 이슈도 고려해야 할 것이다.))
를 확인해 보길 바란다.
2) Slack JSON 오류
Slack 메시지를 보낼 때
JSON parameter needs to be valid JSON
오류가 발생했다.
원인은 Slack 노드 설정이었다.
해결 방법은
Using JSON ❌
Using Fields Below ✔
설정이었다.
이번 자동화를 통해 느낀 점
이번 작업을 통해
자동화의 핵심은 결국 데이터 흐름 설계라는 걸 느꼈다.
이번에 n8n을 이런 업무 흐름을 노드로 표현하는 도구로 사용했다.
입력→ 조회→ 선택→ 결합→ 실행→ 알림
처음에는 복잡해 보이지만
구조만 이해하면 꽤 강력하다.
이번엔 단순한 작업으로 실험했지만,
자신의 업무 워크플로우를 로직화 할 수 있다면
뭐든지 자동화 시도해 볼 수 있지 않을까 싶다.
앞으로 하고 싶은 것
지금은
Slack 버튼→ 등록 자동화→ Slack 안내
까지만 구현했다.
다음 목표는
- 최종 실행까지 자동화
- 실패 시 롤백 처리
- 자동 모니터링
이다.
마무리
작은 자동화 하나지만
업무 흐름을 꽤 많이 단순하게 만들어 준 작업이었다.
Slack에서 버튼을 누르면
필요한 작업이 자동으로 처리되는 경험은 꽤 만족스럽다.
앞으로도 이런 자동화를 계속 만들어볼 생각이다.
'자동화, n8n' 카테고리의 다른 글
| [n8n 개념] 비개발자도 가능한 업무 자동화! n8n 개념부터 시작하기 (0) | 2026.03.16 |
|---|---|
| n8n 기초 - Webhook 노드 알아보기 (0) | 2026.03.09 |
| 구글 스프레드 시트 값이 바뀌면 슬랙으로 자동 알림 보내기 (0) | 2026.03.04 |