ONE STEP AWAY

근태관리 자동화(2.3. n8n 워크플로우) 본문

n8n 자동화 워크플로우/근태관리

근태관리 자동화(2.3. n8n 워크플로우)

jeong0722 2025. 11. 20. 17:44

필요한 슬랙 api와 구글시트 api를 n8n에서 크리덴셜 통해 연동했다면 이제 워크플로우를 구축할 차례입니다 ! 

 

manual 노드를 사용했어요. 클릭했을때 워크플로우가 실행되는 트리거 노드입니다. 

단점은 타임스탬프에 해당하는 일련번호를 직접 입력해야한다는 것이지만

장점은 완전 자동화 플로우보다 재현성이 높고 유지보수가 용이하다는 것입니다.

 

schedule 트리거로 변경하면 클릭하지 않아도 지정해둔 시간(예: 오전8:00, 오후11:59)에 자동으로 워크플로우가 실행됩니다. 

slack 트리거는 active 상태로 활성화해두면 클릭하지 않아도 슬랙 해당 채널에 event가 발생했을때 워크플로우가 실행되도록 하는 노드에요. 

 

 

각각의 노드 상단에 크리덴셜을 선택하고 파라미터 값을 입력해 줍니다. 

 

 

Get a message permalink: 댓글 정보 가져오기

 

매뉴얼 트리거일때 : 5._출퇴근기록 채널에서 해당 메시지 링크 뒤에 숫자 10자리.6자리 타임스탬프 값을 입력합니다.

슬랙 트리거일때: 타임스탬프 필드에 고정값(하드코딩)이 아닌 {{ $json.ts }} 라는 표현식으로 입력합니다.

Get a thread: 스레드 정보 가져오기

Operatio에 Replies 선택 

Code in JavaScrip: 자바스크립트를 통해 필터링 조건을 부여합니다. 

슬랙봇이 작성이 댓글은 제외,

직원 출퇴근 내역만 확인할 것이기 때문에 관리자 댓글 제외,

댓글 내용에 '출근' 또는 '퇴근' 포함,

세조건이 모두 참일 경우 출력.

Get information about a user: 사용자 정보 가져오기 

댓글에는 슬랙 표시 이름으로 스레드 작성되있는데 api를 통해 user의 real_name으로 변환합니다.

자바 스크립트로 필터링한 정보와 사용자 이름을 real_name으로 변환한 정보를 merge 병합합니다.

 

 

엑셀에 추가될 컬럼명에 해당하는 값을 각각 매핑합니다. 

마지막으로 구글시트 Append or update row in sheet

사전에 생성해둔 구글 api를 크리덴셜로 연결하고 Document 문서명, Sheet 시트명,

 

Mapping은 저는 슬랙 트리거 테스트용으로 each column 으로 선택했는데 Automation으로 선택해도 잘 실행됩니다. 

 

 

그러면 아래와 같이 데이터가 쌓이고 우측 이미지와 같이 정돈해서 근태관리 사용이 가능합니다. 

 

 

 

기존 슬랙 스레드 방식

 

자동화를 통한 구글 시트 방식

 

n8n에는 연동 가능한 다양한 크리덴셜과 노드가 있습니다. 

그리고 노드 자체를 드래그해서 복사 붙여넣기하면 누구라도 나의 템플릿으로 가져가서 사용할 수 있습니다. 

 

 

 

다양한 템플릿이 있으니 반복 업무는 자동화하여 시간이 좀더 가치있게 쓰인다면 좋겠습니다.