앱 개발회사와 재방문 고객 알림 기능 만들기
회원제 운동시설의 마지막 방문일·잔여 횟수·수신 설정을 연결해 재방문 알림을 만드는 방법을 설명합니다. FCM의 전달 역할과 CRM 개발로 구현할 대상 선정, 중복 차단, 직원 권한, 검수 기준을 구분합니다.
핵심 요약
1. 마지막 방문일·잔여 횟수·수신 설정을 함께 확인해 재방문 안내 대상을 고릅니다. 2. FCM은 회원 앱에 메시지를 전달하고, 대상 선정과 발송 이력은 자체 개발합니다. 3. 중복 요청 차단과 직원별 권한 검사를 넣고, 실제 방문 기록으로 재방문 여부를 확인합니다.
운동시설의 재방문 안내는 오래 방문하지 않은 회원을 찾는 일에서 시작합니다. 이용권이 남아 있는지, 해당 안내를 받도록 설정했는지도 함께 살펴야 합니다. 앱 개발회사에 CRM 개발을 의뢰할 때 정할 범위를 기준으로, 회원 앱과 직원 관리 화면을 연결하는 구현 방법을 설명합니다.
마지막 방문일과 잔여 횟수로 대상 고르기
입력 자료는 회원번호, 마지막 방문일, 남은 이용 횟수입니다. CRM은 고객 정보를 모아 관리하는 시스템이며, 이 자료를 회원번호로 연결하는 기능을 직접 개발합니다. 예를 들어 ‘최근 14일간 방문이 없고 이용 횟수가 남은 회원’을 찾되, 기간은 운영자가 화면에서 바꾸게 합니다.
직원이 ‘대상 미리보기’를 누르면 회원별 마지막 방문일과 잔여 횟수, 선정 이유를 표시합니다. 방문일이 비어 있는 회원을 장기 미방문자로 간주하지 않도록 별도 확인 대상으로 분리합니다. 검수할 때는 실제 출입 내역과 화면을 대조하고, 횟수를 모두 사용한 회원이 제외되는지 확인합니다.

수신 설정을 확인한 뒤 FCM으로 전달하기
Firebase Cloud Messaging(FCM)은 여러 플랫폼의 앱에 알림이나 데이터 메시지를 보내는 기능입니다. 어떤 회원에게 어떤 안내를 보낼지 판단하는 기능은 자체 개발 범위입니다. 회원 앱에는 안내 종류별 수신 설정을 두고, 직원 화면에는 이번 안내를 받을 수 있는 대상만 표시합니다.
직원은 ‘문구 미리보기’에서 안내 내용과 앱에서 연결될 화면을 확인합니다. ‘발송’을 누른 시점에는 수신 설정과 방문·이용권 정보를 다시 조회해 대상에서 빠져야 할 회원을 제외합니다. 미리보기를 만든 뒤 수신 설정을 끈 회원에게 요청이 나가지 않는지 확인하고, 제외 이유를 직원 화면에 보여줍니다.
PostgreSQL 트랜잭션으로 중복 요청 막기
PostgreSQL 트랜잭션은 여러 데이터 변경을 함께 반영하거나 취소하지만, 외부 API 호출까지 함께 취소하지는 않습니다. 이를 활용해 안내 대상과 발송 요청 기록을 함께 저장하는 기능을 만듭니다. 같은 회원에게 같은 종류의 안내를 정해진 기간 안에 반복 요청하지 못하도록 데이터베이스에 중복 저장을 막는 규칙도 둡니다.

검수할 실패 사례는 직원 두 명이 같은 대상 목록에서 동시에 ‘발송’을 누르는 상황입니다. 화면의 버튼을 잠그는 것에 더해, 서버에서 같은 안내 요청이 한 건만 생성되는지 확인합니다. FCM 호출 후 응답을 받지 못했다면 곧바로 다시 보내지 않고 확인할 항목으로 표시하며, 데이터 저장을 취소해도 이미 보낸 알림을 회수한 것으로 처리하지 않습니다.
Django 인증으로 직원별 조회와 발송 나누기
Django 인증 체계는 사용자·그룹·권한을 다루며, 실제 업무 권한은 서버에서 검사합니다. 시설의 직원 명단과 담당 업무를 받아 조회 담당자와 발송 담당자의 권한을 정합니다. 여러 지점을 운영한다면 어느 지점의 회원 정보를 볼 수 있는지도 자체 업무 규칙으로 연결합니다.
조회 담당자는 안내 대상과 이력을 확인하고, 발송 담당자는 문구를 검토한 뒤 발송을 실행하도록 만듭니다. 버튼 표시뿐 아니라 실제 요청을 받는 서버에서도 직원 권한과 담당 지점을 검사합니다. 조회 담당자가 발송을 요청하거나 다른 지점 회원을 조회했을 때 차단되는지 검수하고, 발송한 직원과 시간을 이력에 남깁니다.

발송 이력과 실제 재방문을 구분해 보여주기
결과 화면에는 안내 대상 수, 수신 설정 등으로 제외된 수, 발송 요청 이력을 나누어 표시합니다. FCM 호출 결과만으로 회원이 알림을 읽었거나 운동시설에 방문했다고 표시하지 않습니다. 재방문 여부는 이후 들어온 출입 기록을 회원번호로 연결해 별도로 확인하는 로직으로 만듭니다.
직원이 ‘안내 후 방문 확인’을 누르면 정해진 확인 기간 안에 방문한 회원과 아직 방문 기록이 없는 회원을 볼 수 있게 합니다. 이 화면은 안내 이후의 방문을 보여주는 용도이며, 알림 때문에 방문했다고 단정하는 성과 지표로 사용하지 않습니다. 같은 회원의 하루 출입 기록이 여러 건이어도 방문 회원 수는 중복 집계되지 않는지 확인합니다.
앱 개발회사와 CRM 개발 범위를 상담하려면 회원번호·방문일·잔여 횟수가 담긴 익명화된 출입·이용권 내역과, 안내 종류별 수신 설정·변경 시각의 예시를 준비해 주세요. 연결할 출입 시스템과 직원별 발송 권한을 함께 정리해 트램스 AI 제작 문의 (https://trams.co.kr/ai-si/contact/#inquiry)로 요청해 주세요.
참고 자료
비슷한 AI 서비스를
사업에 적용하고 싶으신가요?
아이디어와 필요한 기능을 알려주시면 제작 범위와 방법을 검토합니다.