업무 자동화 · 외부 연동
손으로 돌리던 마케팅 발송을 시트 설정 + 자동 발송 서버로
구글 시트에 적어 둔 발송 일정과 대상을 서버가 매일 만들어 카카오채널로 보냅니다. 발송 1회 손익이 적자에서 흑자로 바뀌었습니다.
루코 웍스 설립 전에 수행한 프로젝트입니다.
- 대상
- 항공·호텔 예약 플랫폼(OTA)
- 기간
- 2023.08 ~ 2024.03
- 역할
- 설계, 배치 서버, 외부 API 연동 (마케팅팀 협업)
- 기술
- Python · Airflow · Athena · Debezium · Braze · 카카오채널
적자 → 흑자발송 1회 손익
수작업 → 일배치 자동발송 일정
배치 지연 → 실시간구매 데이터 반영
문제
- 01
대상 구분 없이 전체 발송을 해서 호텔 프로모션 1회마다 적자가 났습니다.
- 02
발송 일정을 담당자가 매번 손으로 정해 꾸준히 이어지지 않았습니다.
- 03
경쟁력 있는 호텔이 있어도 누가 관심을 가질지 알 수 없었습니다.
결정
- 01
주기, 호텔, 추적 링크(UTM)는 구글 시트에 적고, 서버가 매일 읽어 발송 일정을 만듭니다.
- 02
대상 고객을 뽑아 템플릿에 넣고 Braze 웹훅을 거쳐 카카오채널로 자동 발송합니다.
- 03
구매 데이터는 변경 즉시 따라가도록(CDC) 받고, 빠진 건은 API로 채웁니다.
- 04
웹훅이 실패하면 다시 보내고, 중복 요청은 무시하고, 수신 거부한 고객은 대상에서 뺍니다.
- 구글 시트 (주기·호텔·UTM)
- DB
- 매일 배치
- 대상 추출 · 템플릿
- Braze 웹훅
- 카카오채널 발송

결과
발송 1회 손익이 적자에서 흑자로 바뀌었습니다.
마케팅팀은 시트에서 템플릿과 주기만 바꾸고, 개발자에게 요청하지 않습니다.
실패, 재시도, 보정 내역이 로그로 남고, 이미 산 고객은 구매 즉시 대상에서 빠집니다.
TIP설정은 담당자가 익숙한 시트에 두고, 반복은 서버가 맡는 구조입니다. 루코 웍스가 쇼핑몰·도매 회사에 만드는 자동화도 같은 원칙을 따릅니다.
출처: 개발 포트폴리오, 공개 사례 문서