자동화 : 노션 업데이트 텔레그램 챗방 알림 2

소개

시도하고자 했던 것과 그 이유를 알려주세요.

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)

한국 문자 메시지와 함께 WhatsApp의 스크린 샷

많은 숫자를 보여주는 Google 스프레드 시트의 스크린 샷

apps script 사용 데이터 가독성 높게 변환 (cursor ai 에서 30분 이상 싸웠으나, 실패. 발상 전환!!)

변경 전 :

한국 텍스트가있는 Google 스프레드 시트의 스크린 샷

변경 후 :

그것에 한자가있는 테이블

결과와 배운 점

  1. 뭐든 결과만 나오면 된다. 계속 실패한다면, 다양한 방법으로 시도

    1. apps script

    2. n8n json 파일을 커서에 넣고, 하나씩 데이터 연결 시, 없는 기능 언급하면 화면을 캡쳐하여 "자세하게 하나씩 하나씩 설명해 달라" 몇 번 반복하면 제대로된 답변을 주기도.

  2. 노션의 변화 내용을 결과값은 전달 하나, 변경 내용을 저장 & 비교 하는 기능은 구현이 어렵다. (도커, postgresSQL 등을 PRD 기획시 LLM 언급 했으나, 어려워 보이고, '휘발성 데이터' 이니 간단하게 구글 시트 를 '임시 저장소' 로 선택)

  3. 제미나이, 지피티, 그록, 커서 4개 활용하여 방법을 찾아나감. 생각 보다 그록이 정확한 답변. 커서가 막히면 그록의 답변을 던져서 오류 부분을 찾아 해결하는 경우 몇 번.

2
2개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요