소개
시도하고자 했던 것과 그 이유를 알려주세요.
NOTION DB UPDATE 각 팀원 작성 시 '작성자 본인'만 인지, 팀원은 인지하기 어려움
오전 9시 30분 오늘 제안 알리기 & 오후 3시 30분 놓치지 않게 한 번 더 리마인드 기능 필요
진행 방법
🔄 노드별 상세 작동 원리
1️⃣ Schedule_Trigger1 (스케줄 트리거)
작동 원리:
실행 시간: 매일 오전 9시 30분, 오후 3시 30분 (하루 2회)
역할: 워크플로우의 시작점
다음 노드: Get_Current_Day1로 데이터 전달
2️⃣ Get_Current_Day1 (현재 요일 확인)
작동 원리:
시간대 처리: UTC를 한국 표준시(KST)로 변환
요일 판별: 현재 요일을 한국어로 변환 (일요일~토요일)
평일 체크: 월요일(1) ~ 금요일(5)만 통과
주말 차단: 토요일, 일요일이면 워크플로우 중단 (return [])
3️⃣ Notion_Combined_Events (노션 데이터 조회)
작동 원리:
데이터베이스 연결: 지정된 노션 데이터베이스에 접근
전체 데이터 조회: returnAll: true로 모든 페이지 가져오기
데이터 구조: 행사명, 종류, 담당자, 비고, 채택여부, 제안여부, 판매몰, 요일 등
4️⃣ Process_Data1 (데이터 처리 및 필터링)
작동 원리:
데이터 필터링:
오늘 요일과 일치하는 행사
요일이 undefined인 행사 (미지정 행사)
Google Sheets 형식 변환
5️⃣ Clear_Google_Sheet (시트 초기화)
작동 원리:
시트 비우기: 기존 데이터를 모두 삭제 --> 데이터 축적 불필요. 휘발성 정보임
대상 시트: "오늘_행사정보" 탭
목적: 중복 데이터 방지 및 깔끔한 업데이트
6️⃣ Update_Google_Sheet1 (시트 업데이트)
작동 원리:
데이터 추가: Process_Data1에서 가공된 데이터를 시트에 삽입
매핑 방식: values 필드의 2차원 배열을 직접 시트에 입력
헤더 포함: 첫 번째 행에 컬럼명, 이후 행에 데이터
스키마 설정: 불필요한 필드는 removed: true로 제외
7️⃣ Format_Telegram_Message1 (메시지 포맷팅)
작동 원리:
HTML 포맷: 텔레그램의 HTML 파싱 모드 사용
상태 표시:
✅ 성공, 🟡 일부 성공, ⚠️ 에러
정보 포함:
업데이트 시각 (KST)
대상 요일
처리된 데이터 개수
Google Sheets 직접 링크
에러 처리: try-catch로 메시지 생성 실패 시 기본 에러 메시지 반환
8️⃣ Send_Telegram_Notification1 (텔레그램 알림)
작동 원리:
채팅방 전송: 지정된 그룹 채팅에 메시지 전송
HTML 파싱: 볼드, 링크 등 서식 적용
알림 설정:
disable_notification: false (푸시 알림 ON)
disable_web_page_preview: false (링크 미리보기 ON)
apps script 사용 데이터 가독성 높게 변환 (cursor ai 에서 30분 이상 싸웠으나, 실패. 발상 전환!!)
변경 전 :
변경 후 :
결과와 배운 점
뭐든 결과만 나오면 된다. 계속 실패한다면, 다양한 방법으로 시도
apps script
n8n json 파일을 커서에 넣고, 하나씩 데이터 연결 시, 없는 기능 언급하면 화면을 캡쳐하여 "자세하게 하나씩 하나씩 설명해 달라" 몇 번 반복하면 제대로된 답변을 주기도.
노션의 변화 내용을 결과값은 전달 하나, 변경 내용을 저장 & 비교 하는 기능은 구현이 어렵다. (도커, postgresSQL 등을 PRD 기획시 LLM 언급 했으나, 어려워 보이고, '휘발성 데이터' 이니 간단하게 구글 시트 를 '임시 저장소' 로 선택)
제미나이, 지피티, 그록, 커서 4개 활용하여 방법을 찾아나감. 생각 보다 그록이 정확한 답변. 커서가 막히면 그록의 답변을 던져서 오류 부분을 찾아 해결하는 경우 몇 번.