n8n은 인공지능(AI) 기반 워크플로 자동화 도구입니다. 이 도구는 다양한 애플리케이션과 서비스를 손쉽게 연결하고, 워크플로를 최적화하도록 지원합니다. 특히 n8n은 Visual Editor 기능을 중심으로 직관적인 인터페이스를 제공하는데요. 기술 지식이 없는 사용자도 드래그 앤드 드롭 방식으로 워크플로를 쉽게 구축할 수 있어 편리합니다. 또 유·무료 버전을 지원해 사용자 편의와 환경에 따라 적합한 버전을 선택해 쓸 수 있죠. 이 글에서는 n8n의 주요 기능과 이 도구로 워크플로를 자동화하는 방법을 알아보겠습니다.
주요 기능
n8n은 시각적 플로 빌더, 노드, AI 통합, 오류 처리와 디버깅, 셀프 호스팅과 클라우드 호스팅, 로코드(low code)로 워크플로 자동화를 지원합니다. 각 기능을 자세히 살펴보겠습니다.
1. 드래그 앤드 드롭으로 워크플로 설계
n8n에서 여러 노드를 사용해 워크플로를 설계한 화면. 출처=n8nn8n에서는 드래그 앤드 드롭 방식으로 노드를 추가하고 연결할 수 있습니다. 이로써 복잡한 워크플로를 쉽게 설계할 수 있습니다.
2. 다양한 노드로 앱, 서비스 통합
n8n에서 Notion 노드를 추가하는 화면n8n은 400개 이상의 사전 구축된 노드를 제공합니다. n8n에서 노드는 워크플로를 구성하는 개별 작업 단위를 의미합니다. 각 노드는 데이터베이스 질의 실행, HTTP 요청 전송, 이메일 전송, 파일 처리 등 작업을 수행할 수 있습니다. 이는 다양한 애플리케이션과 서비스를 연결하고 데이터를 처리하는 역할을 합니다. 노드를 사용하면 Gmail, Notion, Spreadsheet File, MongoDB 등과 통합할 수 있습니다.
주요 노드 유형은 다음과 같습니다.
- Trigger 노드: 워크플로를 시작하는 트리거 역할을 합니다. 일정 시간마다 실행되거나 특정 이벤트가 발생할 때 워크플로를 시작합니다.
- Action 노드: 특정 작업을 수행합니다. 데이터를 가져오거나 전송하고, 파일을 처리하며, API 호출을 수행합니다.
- Function 노드: JavaScript 코드를 실행해 데이터를 처리하거나 변환할 수 있습니다.
- Integration 노드: 다양한 외부 서비스와 통합해 데이터를 주고받을 수 있습니다. Google Sheets, Slack, Notion 등과 통합할 수 있습니다.
3. AI 통합으로 작업 자동화
n8n에서 Integration 노드로 OpenAI를 추가하는 화면n8n에서는 OpenAI와 통합해 여러 작업을 자동화할 수 있습니다. 예를 들어, 텍스트 요약, 자연어 처리 등을 자동으로 수행하도록 설정할 수 있습니다.
4. 오류 처리, 디버깅
n8n에서 에러가 발생할 때 노드 처리를 설정하는 화면n8n에서 에러가 발생할 때 실행할 에러 워크플로를 설정하는 화면
n8n은 워크플로를 실행할 때 발생하는 오류를 처리하고 디버깅하는 기능을 제공합니다. 오류 발생 시 알림을 보내고, 이전 실행 데이터를 로드하도록 설정해 문제를 해결할 수 있습니다.
5. 셀프 호스팅, 클라우드 호스팅
n8n은 자체 서버에 설치해 운영할 수 있는 셀프 호스팅 옵션과 n8n이 직접 관리하는 클라우드 호스팅 옵션을 제공합니다. 사용자는 자기 환경과 요구사항에 맞는 운영 방식을 선택하면 됩니다.
6. 로코드
INPUT의 JSON 데이터를 매개변수로 사용하는 화면n8n은 로코드 도구이기에 코드 없이도 많은 작업을 수행할 수 있습니다. 사용자는 필요할 때 코드를 추가할 수도 있습니다. 코드 노드를 사용하면 워크플로에 Javascript를 추가할 수 있고, 표현식을 사용해 노드에서 데이터를 변환할 수 있습니다. 표현식에는 Javascript를 사용할 수 있으며 n8n의 내장 메서드와 변수, 데이터 변환 함수도 이용할 수 있습니다.
워크플로 자동화 시나리오
n8n 워크플로 자동화 시나리오위 이미지는 n8n으로 워크플로 자동화를 설계한 시나리오입니다. 전개 과정을 살펴보면, Schedule Trigger가 지정된 시간에 트리거돼 워크플로가 실행됩니다. 이후 Notion 태그가 ‘리뷰 대기상태’인 페이지를 검색하고 해당 페이지의 본문만 추출해 OpenAI API로 리뷰를 진행합니다. 그다음, 리뷰 결과를 Slack 채널에 전송합니다.
워크플로에 사용하는 각 노드는 다음과 같습니다.
- Schedule Trigger: 워크플로가 주기적으로 실행되도록 설정합니다.
- 노션 페이지 가져오기: Notion 데이터베이스에서 데이터를 검색합니다.
- 태그:리뷰 대기상태 검색: 검색된 데이터 중 '태그' 속성이 '리뷰 대기상태'인 항목만 필터링합니다.
- 검색된 페이지 가져오기: 필터링된 항목의 세부 정보를 가져오기 위해 Notion API를 호출합니다.
- 본문 추출: Notion API 응답에서 본문 내용을 추출합니다.
- 리뷰 진행: 추출된 본문 내용을 요약합니다.
- 슬랙 전송: 요약된 내용을 Slack 웹훅으로 Slack 채널에 전송합니다.
이제 워크플로 자동화 과정을 구체적으로 살펴보겠습니다.
1. Schedule Trigger 노드
Schedule Trigger 노드 설정 화면Schedule Trigger 노드는 워크플로의 시작점으로, 정해진 일정에 따라 자동으로 워크플로를 실행합니다. 구체적인 내용은 다음과 같습니다.
- 이 노드는 워크플로의 첫 번째 노드로 사용됩니다. 워크플로 화면의 번개 아이콘이 이를 나타냅니다.
- INPUT 화면은 없습니다. 이는 외부 입력 없이 자체적으로 트리거(첫 번째 노드)되기 때문입니다.
Schedule Trigger 노드를 사용하면 정기적인 작업을 자동화할 수 있습니다. 이로써 데이터 수집, 보고서 생성, 알림 전송 등 반복 작업을 효율적으로 관리할 수 있습니다. 이 노드가 트리거되면, 연결된 다음 노드(이 시나리오에서는 노션 페이지 가져오기 노드)가 순차적으로 실행돼 전체 워크플로가 작동합니다.
2. 노션 페이지 가져오기 노드
노션 페이지 가져오기 노드 설정 화면노션 페이지 가져오기 노드는 Schedule Trigger 노드 다음으로 실행되는 노드입니다. 이 노드는 Notion 데이터베이스에서 페이지를 검색하는 역할을 합니다. 위 이미지에 나오는 ‘노션 페이지 가져오기’ 창의 주요 설정 칸과 토글 기능은 다음과 같습니다.
- Credential to connect with: Notion 데이터에 접근하기 위해 API KEY가 입력된 Credential이 필요하며, 이를 Credential to connect with에 연결합니다.
- Operation: 'Search'를 선택해 Notion 데이터베이스를 검색합니다.
- Return All: 토글을 켜 true로 설정해 모든 검색 결과를 반환합니다.
해당 시나리오에서는 Notion 데이터베이스에서 모든 페이지를 가져옵니다. 이 데이터(OUTPUT)는 노드로 전달돼 추가 처리됩니다.
3. 태그:리뷰 대기상태 검색 노드
태그:리뷰 대기상태 검색 노드 설정 화면태그:리뷰 대기상태 검색 노드는 Notion에서 가져온 데이터를 필터링하는 역할을 합니다. 이 노드는 JavaScript 코드를 실행해 특정 조건에 맞는 항목만 선별합니다. 구체적인 기능은 다음과 같습니다.
- Notion에서 가져온 모든 항목을 순회합니다.
- 각 항목의 '태그' 속성을 확인합니다.
- '리뷰 대기상태' 태그가 있는 항목만 선별합니다.
해당 시나리오에서는 '리뷰 대기상태' 태그가 있는 Notion 페이지만 다음 단계로 전달됩니다. 23개의 items가 INPUT으로 들어왔지만(맨 왼쪽 이미지) 해당 노드의 처리로 1개 item이 OUTPUT 됐습니다(맨 오른쪽 이미지).
OUTPUT 데이터에는 태그가 ‘리뷰 대기상태’인 페이지의 URL, ID 등 정보만 있고 실제 페이지의 본문 내용은 없습니다. 따라서 페이지의 데이터를 가져와 본문만 추출하는 추가 워크플로가 필요합니다.
4. 검색된 페이지 가져오기 노드
검색된 페이지 가져오기 노드 설정 화면검색된 페이지 가져오기 노드는 이전 노드에서 필터링된 Notion 페이지의 정보를 가져오는 역할을 합니다. 이 노드는 Notion API를 사용해 페이지 정보를 요청합니다. 위 이미지에 나오는 ‘검색된 페이지 가져오기’ 창의 주요 입력 칸 내용은 다음과 같습니다.
- URL은
https://api.notion.com/v1/blocks/{{ $json.id }}/children
와 같이 앞서 INPUT에서 입력받은 {{ $json.id }} 를 입력합니다. 드래그도 가능합니다. - Header Parameters: Notion API 인증을 위한 Authorization 헤더와 API 버전을 지정하는 Notion-Version 헤더를 포함합니다.
이 노드는 선별된 각 Notion 페이지 정보를 가져와 다음 노드로 전달합니다.
5. 본문 추출 노드
본문 추출 노드 설정 화면본문 추출 노드는 앞서 검색된 페이지 가져오기 노드에서 가져온 Notion 페이지의 블록 데이터에서 실제 텍스트 내용을 추출하는 역할을 합니다. 구체적인 기능은 다음과 같습니다.
- 다양한 블록 타입(paragraph, heading, list item 등)에서 텍스트를 추출합니다.
- 추출된 텍스트를 하나의 문자열로 결합합니다.
이 노드로 Notion 페이지의 구조화된 데이터에서 순수한 텍스트만 추출해 다음 단계로 전달합니다.
6. 리뷰 진행 노드
리뷰 진행 노드 설정 화면리뷰 진행 노드는 이전 단계에서 추출한 텍스트 내용을 요약하는 역할을 합니다. 이 노드는 OpenAI의 GPT-3.5-turbo 모델을 사용해 텍스트를 처리합니다. 위 이미지에 나오는 ‘리뷰 진행’ 창의 주요 설정 칸과 입력 칸 내용은 다음과 같습니다.
- Credential to connect with: OpenAI API를 사용하기 위해 API KEY가 입력된 Credential이 필요합니다. 이를 Credential to connect with에 연결합니다.
- Messages: "내용 요약 {{ $json.content }}" 형태로 입력합니다.
이 노드는 Notion 페이지의 내용을 OpenAI로 리뷰합니다. 이 내용은 다음 단계에서 Slack으로 전송됩니다.
7. 슬랙 전송 노드
슬랙 전송 노드 설정 화면OpenAI로 요약한 내용이 Slack에 전송된 모습
마지막 노드인 슬랙 전송 노드는 OpenAI로 요약한 내용을 Slack으로 전송하는 역할을 합니다. 위의 첫 번째 이미지에 나오는 ‘슬랙 전송’ 창의 주요 설정 칸과 입력 칸 내용은 다음과 같습니다.
- Method: ‘POST’로 설정합니다.
- URL: Slack 웹훅 URL을 입력합니다.
- Body: Body Content Type을 ‘JSON’으로 지정합니다. 아래 JSON 칸에
{ "text": "{{ $json.message.content }}" }
를 입력합니다.
이 노드로 요약된 Notion 페이지 내용은 Slack 채널로 전송돼 팀원들이 쉽게 확인할 수 있습니다. 이렇게 각 노드가 연결돼 하나의 워크플로를 형성하는데요. Notion에서 특정 태그가 있는 페이지를 주기적으로 검색하고요. 그 내용을 요약해 Slack으로 전송하는 자동화된 프로세스가 구현됩니다. 이러한 워크플로는 팀원들이 AI로 리뷰를 자동화해 업무 효율성을 높이는 데 도움이 됩니다.
맺음말
우리 주변에는 자동화할 수 있는 수많은 반복 작업이 있습니다. 아이디어와 약간의 기술만 있다면 다양한 업무 프로세스를 효율적으로 자동화할 수 있습니다.
워크플로를 자동화하기 위해 꼭 n8n을 사용할 필요는 없습니다. 여러분 상황과 필요에 맞는 다양한 워크플로 자동화 도구가 있으니, 이를 활용해 반복적인 작업에서 벗어나세요. 나아가 최근 급속도로 발전하고 있는 AI 기술을 워크플로 자동화에 접목하는 걸 권장합니다. AI를 활용한 워크플로 자동화는 업무 효율을 획기적으로 향상할 뿐만 아니라, 직원들이 더 가치 있고 창의적인 업무에 집중하는 환경을 조성합니다.
자동화와 AI 도입은 단순히 시간과 비용 절감을 넘어 기업의 혁신과 경쟁력 강화로 이어집니다. 끊임없이 변화하는 비즈니스 환경에서 이러한 기술을 사용하는 건 선택이 아닌 필수가 되고 있습니다. 지금 여러분의 업무 환경을 돌아보고, 자동화할 수 있는 영역을 찾아 개선하길 권장해 드립니다.
참고 자료
지금 이 기술이 더 궁금하세요? DevOps 액셀러레이터 인포그랩에 문의하세요.