소셜 파티 운영 자동화 시스템

업무 자동화6분 읽기

소셜 파티 운영 자동화 시스템 소개 영상

문제

이 고객사는 참가자를 모아 소셜 파티를 여는 운영사입니다. 한 회차는 짧게 끝나지만 그 뒤에 붙는 운영 업무는 짧지 않았습니다. 예약은 한곳에서 들어오지 않습니다. 외부 예약 플랫폼으로도 들어오고 제휴 플랫폼으로도 들어오고 자체 구글폼으로도 들어옵니다. 운영자는 회차마다 이 창을 번갈아 열어 누가 예약했는지 대조하고 명단을 손으로 합쳐야 했습니다.

입금 확인은 더 번거로웠습니다. 참가자가 계좌로 돈을 보내면 통장 거래내역과 예약자 명단을 한 줄씩 눈으로 맞춰야 했고 아직 안 낸 사람에게는 따로 알림 문자를 보내야 했습니다. 회차가 겹치는 주말이면 이 대조 작업만으로 저녁 시간이 통째로 사라졌습니다.

파티 당일과 다음 날도 일이 남습니다. 참가자에게 마음에 든 상대를 투표받아 집계하고 쌍방으로 맞은 커플을 골라 개인별로 결과를 통보해야 했습니다. 특별 회차에서는 참가자 신분 확인을 위해 서류를 요청하고 이메일로 하나씩 받아 검토하는 일까지 겹쳤습니다. 사람이 많아질수록 실수 한 번이 곧바로 참가자 불만으로 이어지는 구조였습니다.

정리하면 문제는 세 겹이었습니다. 예약이 여러 채널로 흩어져 있었고 입금과 명단을 사람이 대조했으며 투표 집계와 서류 심사까지 회차마다 손으로 반복됐습니다. 이 전부를 하나의 시스템으로 묶는 것이 목표였습니다.

접근

기능

세 예약 채널을 하나의 명단으로

외부 예약 플랫폼은 공식 SDK가 없어 실제 호스트 대시보드가 쓰는 GraphQL 요청을 분석해 직접 연동했습니다. 제휴 플랫폼은 예약이 생길 때마다 웹훅으로 밀어 넣는 방식이라 폴링과 분리해 받고 구글폼 예약은 시트에서 읽어 옵니다. 세 갈래로 들어온 예약은 공통 스키마로 정규화되어 어드민 대시보드의 한 명단에 모입니다.

가장 까다로운 연동은 공식 API 문서가 없는 외부 예약 플랫폼이었습니다. 로그인은 별도 인증 서버에 REST로 붙고 예약 조회와 상태 변경은 GraphQL 엔드포인트로 오갑니다. 로그인 과정에서 캡차가 뜨면 자동 로그인이 막히므로, 이 경우 브라우저 자동화로 우회해 세션을 확보하고 확보한 토큰은 만료 전에 주기적으로 다시 받아 둡니다. 예약 동기화는 30초 간격으로 돌아 새 예약이 대시보드에 거의 실시간으로 반영됩니다.

기능

은행 계좌조회로 입금 자동 대조

은행 계좌조회 API로 통장 거래내역을 10분마다 가져와 입금자명을 예약자 명단과 맞춰 자동으로 확인 처리합니다. 이름과 금액이 맞으면 입금 완료로 넘어가고 대상이 없거나 금액이 어긋나면 수동 확인 대상으로 남겨 운영자에게 알립니다. 같은 입금 건이 두 번 처리되지 않도록 거래 식별자로 멱등 처리를 걸었습니다.

미납자 관리도 여기에 붙습니다. 아직 입금하지 않은 참가자에게는 30분 간격으로 알림 문자가 자동 발송되고 성별 정원이 마감에 가까워지면 운영자에게 별도 알림이 갑니다. 다만 입금 정리 작업 직후에는 일시적으로 자동 알림을 눌러 두는 안전 구간을 둬서 정리 중에 엉뚱한 미납 문자가 나가는 사고를 막았습니다.

기능

상황별 문자와 QR 투표 매칭

환영, 미납 알림, 정원 마감 임박, 인증 결과까지 상황별 문자가 설정대로 자동 발송됩니다. 파티가 시작되기 한 시간 전에는 투표 세션이 자동으로 열리고 참가자는 QR코드로 접속해 순위 투표를 합니다. 다음 날 오전 9시에 쌍방 투표가 자동 분석되어 매칭 커플이 산출되고 참가자는 본인 인증 후 자신의 결과만 조회할 수 있습니다.

특별 회차의 본인인증 서류 심사도 시스템 안으로 들어왔습니다. 참가자는 예약 즉시 받은 전용 링크에서 신분증과 셀카를 올리고 운영자는 어드민에서 올라온 서류를 한 번에 심사합니다. 심사 결과는 문자로 자동 안내되므로 이메일로 서류를 받아 하나씩 열어 보던 흐름이 사라졌습니다. 파티 중 참가자끼리 익명 메시지를 주고받는 시그널 기능도 같은 문자 발송 경로를 재사용합니다.

전체 구조는 다음과 같습니다.

세 예약 채널이 통합 로스터로 모이고 입금 대조, 문자 발송, 투표 매칭, 서류 심사가 어드민과 참가자 웹앱으로 이어지는 구조예약 플랫폼 GraphQL제휴 플랫폼 웹훅구글폼 예약 시트통합 로스터정규화 · 멱등무인 스케줄러동기화 30초 · 입금 대조 10분미납 알림 30분 · 토큰 갱신 6시간입금 자동 대조상황별 SMS 발송QR 투표 · 매칭서류 심사어드민 대시보드참가자 웹앱

글로 요약하면 이렇습니다. 서로 다른 세 예약 채널에서 들어온 예약이 하나의 로스터로 정규화되어 모이고 그 위에서 입금 대조와 상황별 문자 발송, 투표 매칭, 서류 심사가 각각 자동으로 돕니다. 반복 작업은 무인 스케줄러가 정해진 간격으로 실행하고 운영자는 어드민 대시보드에서 현황만 확인합니다. 참가자는 투표와 서류 제출, 결과 조회를 자신의 웹 화면에서 처리합니다.

결과

회차마다 예약 창을 번갈아 열고 통장을 손으로 대조하던 일이 사라졌습니다. 세 채널의 예약이 한 명단으로 모이고 입금은 계좌조회로 자동 확인되며 미납 알림도 스케줄러가 알아서 보냅니다. 운영자는 대조 자체를 하는 대신 자동 처리가 남긴 수동 확인 대상만 들여다보면 됩니다.

파티 이후의 일도 흐름이 정리됐습니다. 투표는 QR로 받아 다음 날 아침 자동 공개되고 서류 심사는 어드민에서 한 번에 끝나며 결과는 문자로 나갑니다. 사람이 개입하던 지점이 예외 처리와 최종 확인으로 좁혀지면서 회차가 늘어도 운영자의 시간이 같이 늘어나지 않는 구조가 됐습니다.

이 프로젝트에서 다룬 기술적 결정들은 아래 글에서 더 자세히 풀었습니다.

자주 묻는 질문

예약 플랫폼에 공식 API가 없어도 연동할 수 있나요?

가능합니다. 이 프로젝트의 외부 예약 플랫폼은 공식 SDK를 제공하지 않아 실제 호스트 대시보드가 사용하는 GraphQL 요청을 분석해 같은 방식으로 붙였습니다. 로그인 인증과 토큰 갱신, 캡차가 뜰 때의 우회까지 처리해 두면 문서화된 API가 없어도 예약 조회와 상태 변경을 자동화할 수 있습니다.

입금 확인은 어떻게 자동으로 맞추나요?

은행 계좌조회 API로 통장 거래내역을 주기적으로 가져와 입금자명을 예약자 명단과 대조합니다. 이름과 금액이 맞으면 자동으로 입금 완료 처리하고 대상이 없거나 금액이 어긋나면 수동 확인 대상으로 남깁니다. 같은 거래가 중복 처리되지 않도록 거래 식별자로 멱등성을 보장합니다.

참가자 개인 정보는 어떻게 보호되나요?

참가자는 본인 인증을 거친 뒤 자신의 정보와 매칭 결과만 조회할 수 있고 다른 사람의 결과는 볼 수 없습니다. 서류 업로드는 참가자별 전용 링크로만 이뤄지며 심사와 결과 통보는 어드민 안에서 처리됩니다. 이 사례에 나오는 예시 명단과 화면은 실제 참가자 정보가 아니라 설명을 위해 재구성한 것입니다.

도입 결과

회차마다 예약 창을 여러 개 열고 통장을 대조하고 투표지를 손으로 집계하던 흐름이 사라지고, 예약 접수부터 매칭 결과 발표까지 어드민 대시보드 하나에서 무인으로 도는 구조가 갖춰졌습니다.
#예약자동화#입금대조#SMS자동화#매칭투표

비슷한 업무 자동화가 필요하신가요?

무료 상담 신청