System Design · Live CRM

세그먼트별 CRM 시스템 설계

결제 목적이 다른 유저 세그먼트에 맞춰 최초구매형 · 단계형 · 참여형 3종 CRM을 목적별 CRM Type으로 설계

작성 한승호 프로젝트 복싱스타 : 매치 3 (라이브 서비스) 역할 CRM 3종 신규 설계 — 기획 · 데이터 구조 · 화면 정의 성과 세그먼트별 상품 3종 신규 도입

결제를 안 한 유저, 결제는 했지만 다음 단계로 안 넘어가는 유저, 플레이는 열심히 하지만 결제로 이어지지 않는 유저는 필요한 제안이 서로 다릅니다. 이 문서는 세 세그먼트에 맞춘 CRM 3종(최초구매형 · 단계형 · 참여형)을 각각의 목적과 의도에 맞는 CRM Type으로 설계하고, 한 테이블에서 관리하되 Type마다 필요한 컬럼을 더해 운영한 과정을 담았습니다.

본 문서는 재직 중 직접 작성한 사내 기획서 3종(최초구매형 · 단계형 · 참여형 CRM)을 포트폴리오용으로 재구성한 것입니다. 회사 로고 · 대외비 표기 · 편집자 메모는 제거했고, 테이블 · 컬럼명은 실제 스키마와 다르게 표기했습니다(구조 · 의미는 동일). 화면 이미지는 실제 기획 검토용 목업입니다.

1. 배경과 목표

유저마다 결제로 이어지지 않는 이유가 다른데, 상품 하나로는 세 이유 모두에 대응할 수 없었습니다.

기존 CRM은 상품을 늘리는 방식으로 대응해왔지만, 늘어나는 상품마다 데이터 구조를 새로 짜면 운영 비용이 계속 쌓입니다. 유저를 세 그룹으로 나눠 각 그룹의 목적과 의도에 맞는 CRM Type을 설계하고, 공용 테이블에서 함께 관리하는 것을 목표로 삼았습니다.

① 아직 결제를 한 번도 안 한 유저 — 첫 결제 장벽을 낮추는 것이 목표. ② 결제 경험은 있지만 다음 상품으로 안 넘어가는 유저 — 단계적으로 상향 구매를 유도하는 것이 목표. ③ 플레이는 활발하지만 결제 이력이 없는 유저 — 플레이 행위 자체를 상품 가치와 연결하는 것이 목표입니다.

설계 의도

세 CRM은 지급 방식도, 해금 조건도, 타깃도 전부 다릅니다. 그래서 각각의 목적과 의도에 맞는 CRM Type으로 나눠 설계했고, 한 테이블에서 관리하되 Type마다 필요한 컬럼을 추가했습니다.

2. CRM 3종 정의

세그먼트별 CRM 3종

최초구매형
  • 타깃: 결제 경험이 없는 신규 유저
  • 1계정당 1회만 구매 가능한 고효율 상품
  • 구매 즉시가 아니라 3일에 걸쳐 나눠서 보상 지급
단계형
  • 타깃: 결제 경험은 있지만 상향 구매가 안 되는 유저
  • 여러 단계의 상품을 순서대로만 구매 가능(하위 단계 완료 후 상위 단계 해금)
  • 각 단계는 무료 또는 유료 + 광고 시청형 혼합 구성
참여형
  • 타깃: 플레이는 활발하지만 결제로 안 이어지는 유저
  • 실제 플레이(메가 펀치 사용 횟수 등)로 재화를 얻고, 그 재화로 레벨을 올리는 방식
  • 레벨업마다 무료/유료 상품이 열리고, 레벨이 오를수록 무료 보상 비중이 줄어듦

Design Note — 왜 셋 다 "보상을 미리 보여주고 조건으로 해금"하는 구조인가

세 CRM 모두 상품 전체 구성을 유저에게 먼저 보여주고, 이후 시간 · 순서 · 재화 같은 조건으로 하나씩 해금되는 형태를 공유합니다. 유저가 "앞으로 뭘 더 얻을 수 있는지"를 미리 알아야 그 목표를 향해 계속 접속 · 플레이 · 결제할 동기가 생긴다고 판단했습니다.

3. 공통 데이터 구조

세 CRM은 CrmEntryData 한 테이블 위에서 Type으로 구분하고, Type마다 필요한 컬럼을 더했습니다. 상품 자체의 정의(가격 · 보상)는 상점 공용 테이블인 OfferData를 참조합니다.

CrmEntryData

CRM 진입점을 정의하는 공용 시트 — Type으로 3종을 구분

컬럼자료형설명
groupIdInteger같은 CRM을 구성하는 행들을 묶는 값
productRefInteger
  • 이 CRM에 속한 상품 → OfferData 참조
  • 같은 groupId를 가진 행이 여러 개면, 그 상품들이 이 CRM의 구성 요소
stepIndexInteger단계형 CRM에서 이 상품이 몇 번째 단계인지 나타내는 값 (단계형 전용, 다른 타입은 미사용)
crmTypeString
  • CRM 동작 방식을 구분하는 값
  • welcomeOffer(최초구매형) / tierOffer(단계형) / grindOffer(참여형)
styleTypeString팝업 UI 스타일 참조 값
badgeIconString로비 알림 아이콘 리소스 참조 값
purchaseCapInteger계정당 구매 가능 횟수 (최초구매형은 1로 고정)
unlockRefInteger이 CRM이 노출되기 위해 먼저 구매돼 있어야 하는 상품(있을 때만 사용)

같은 groupId를 가진 행 중 가장 앞선 행의 styleType · badgeIcon 값을 그 CRM 전체의 대표값으로 사용합니다 — 행마다 반복 입력하지 않도록 하기 위함.

테이블 관계

CrmEntryData

CRM 진입점 정의 (타입 · 노출 규칙)

→

OfferData

상점 공용 상품 정의 (가격 · 보상) — CRM 상품이 참조

→

ProgressData

참여형 전용 — 재화 · 레벨업 조건 (4장에서 상술)

4. 최초구매형 — 신규 유저 온보딩

로비 화면 — 신규 유저에게 상시 노출되는 최초구매형 CRM 아이콘.
로비 화면 — 신규 유저에게 상시 노출되는 최초구매형 CRM 아이콘.
최초구매형 CRM 팝업 — 구매 즉시 1일차 보상, 이후 2 · 3일차는 접속 시 순차 지급.
최초구매형 CRM 팝업 — 구매 즉시 1일차 보상, 이후 2 · 3일차는 접속 시 순차 지급.

신규 유저가 갖고 싶어할 만한 코스튬 위주로 보상을 구성했습니다. 구매 시 모든 보상을 한 번에 주지 않고 3일에 걸쳐 나눠 지급합니다.

Design Note — 왜 3일에 나눠 지급하나

즉시 전부 지급하면 다음날 다시 접속할 이유가 하나 줄어듭니다. 구매 이후 3일 동안 순차 지급되도록 설계해, 첫 결제가 곧바로 단기 재접속으로 이어지게 했습니다.

Design Note — 왜 계정당 1회만 구매 가능한가

이 CRM의 목적은 "결제 경험 자체"를 만드는 것이지 매출 극대화가 아닙니다. 반복 구매를 열어두면 상품 구성의 "희소함"이 옅어져 신규 유저 대상 특별 제안이라는 정체성이 흐려진다고 판단해, 1회 구매로 제한했습니다.

5. 단계형 — 상향 구매 유도

여러 단계의 상품을 순서대로 배치하고, 이전 단계를 완료해야 다음 단계가 열리도록 했습니다. 각 단계는 무료 · 유료 · 광고 시청형을 섞어 구성해, 결제 없이도 진행할 수 있는 경로를 남겨뒀습니다.

단계형 CRM 팝업 — 레벨 1~3 순서대로 배치, 이전 레벨을 완료해야 다음 레벨 잠금 해제.
단계형 CRM 팝업 — 레벨 1~3 순서대로 배치, 이전 레벨을 완료해야 다음 레벨 잠금 해제.

팝업 화면 구성

레벨(단계) 영역
  • stepIndex 순서대로 위에서 아래로 나열
  • 해금 상태(활성화) / 미해금 상태(비활성화) 두 상태를 색상으로 구분
보상 아이콘
단계별 보상을 최대 5개까지 나열, OfferData의 보상 정보를 참조해 아이콘으로 출력
해금 열쇠 아이콘
다음 단계로 넘어가는 연출 전용 리소스 — 데이터로 저장하지 않고 보상 획득 연출에서만 사용 후 삭제
구매 버튼
  • 가격이 무료면 "FREE", 유료면 가격 텍스트, 광고 시청형이면 광고 아이콘 + 안내 문구로 분기
  • 터치 시 해당 단계 상품 구매 진행

Design Note — 왜 순서를 강제하나

단계를 자유롭게 선택할 수 있게 하면 유저는 가장 저렴한 단계만 반복 구매하고 상위 단계로는 넘어가지 않습니다. 순서를 강제해 "이미 여기까지 왔으니 다음 단계도"라는 진행 관성을 만들고, 무료 단계를 앞쪽에 배치해 결제 장벽 없이도 CRM에 먼저 발을 들이게 했습니다.

Design Note — 잠긴 단계를 터치했을 때

아직 해금되지 않은 단계를 유저가 터치하면 "아직 획득할 수 없습니다" 안내를 띄웁니다. 잠긴 상태를 숨기지 않고 미리 보여주는 이유는 2번(CRM 3종 정의)의 설계 의도와 같습니다 — 앞으로 얻을 수 있는 보상을 미리 알아야 그 목표를 향해 진행할 동기가 생깁니다.

구매 → 해금 → 클리어 흐름

① 구매

무료 단계는 터치 즉시 보상 획득, 유료 · 광고 단계는 결제/시청 완료 후 획득

→

② 완료 처리

구매 버튼이 사라지고 완료 표시로 전환, 보상 획득 연출 재생

→

③ 다음 단계 해금

모든 보상 획득이 끝나면 잠금 해제 연출과 함께 다음 단계 버튼 활성화

→

④ 클리어

마지막 단계까지 완료하면 클리어 연출(배너 · 축하 문구) 후 팝업 자동 종료

Design Note — 클리어 연출을 따로 넣은 이유

마지막 단계 구매로 끝나면 "결제가 끝났다"는 인상만 남습니다. 전용 클리어 연출을 넣어 이 CRM을 완주했다는 성취감을 주고, 다음 시즌 단계형 CRM이 다시 열렸을 때도 "저번에 끝까지 갔었다"는 기억이 재구매 동기로 남게 하려는 의도입니다.

6. 참여형 — 플레이와 결제를 잇는 CRM

참여형 CRM 팝업 — 실제 플레이로 얻은 재화(프로틴 셰이크)를 소모해 레벨업, 레벨마다 보상 해금.
참여형 CRM 팝업 — 실제 플레이로 얻은 재화(프로틴 셰이크)를 소모해 레벨업, 레벨마다 보상 해금.

유저가 인게임 플레이(메가 펀치 사용 등)를 할 때마다 CRM 전용 재화를 지급합니다. 유저는 이 재화를 소모해 CRM 레벨을 올리고, 레벨이 오를 때마다 그 레벨에 걸린 보상이 해금됩니다.

설계 의도

결제를 안 하는 유저도 "플레이하는 것 자체"로 CRM에 계속 관여하게 만드는 것이 목적이었습니다. 재화를 플레이로만 얻게 해서 결제 없이도 레벨이 오르는 걸 체감시키고, 그 체감이 "돈을 더 쓰면 더 빨리 갈 수 있겠다"는 결제 동기로 이어지길 기대했습니다.

ProgressData

참여형 CRM 전용 — 레벨(단계)별 재화 요구량과 보상을 정의하는 시트

컬럼자료형설명
groupIdIntegerCrmEntryData와 동일한 값으로 묶어 같은 CRM임을 연결
productRefInteger레벨별 상품 → OfferData 참조
resourceTypeString레벨업에 쓰이는 재화 종류 (최초 버전은 1종만 사용)
tierInteger레벨(단계)을 구분하는 값
tierThresholdInteger다음 레벨로 올라가기 위해 필요한 누적 재화량
tierRewardRefInteger해당 레벨 도달 시 자동 지급되는 별도 보상(메인 상품과 별개, 없으면 -1)

레벨업 즉시 지급되는 tierRewardRef 보상과, 유저가 직접 터치해 수령하는 메인 상품(OfferData 경유)을 분리해 — 자동 지급과 수동 수령을 한 화면에서 함께 보여줄 수 있게 했습니다.

7. 공통 메커니즘

알림 아이콘 노출 우선순위

우선순위
  • 최초구매형이 가장 높음 — 신규 유저 전환이 최우선 과제이므로
  • 다음 단계형·참여형은 서로 우선순위 협의로 결정
  • 여러 CRM이 동시에 노출 대상이어도 아이콘은 최우선 CRM 하나만 표시
노출 조건
운영 웹에 정의된 CRM 활성화 조건을 만족하고, 해당 CRM 내 미수령 보상이 남아있을 때만 아이콘 노출

Design Note — 왜 우선순위를 CRM 타입에 둘 것인가

한 유저에게 여러 CRM이 동시에 열려 있을 수 있습니다. 전부 아이콘으로 띄우면 로비가 어수선해지고 정작 중요한 CRM이 묻힙니다. "지금 이 유저에게 가장 중요한 전환은 무엇인가"를 타입 우선순위로 못박아, 알림이 겹쳐도 화면은 하나만 보여주도록 했습니다.

8. 도입 결과

회고

세 CRM은 지급 방식도 해금 조건도 서로 다릅니다. 하나의 틀에 억지로 맞추기보다, 각각의 목적과 의도에 맞는 CRM Type으로 나눠 설계하는 것이 유저 세그먼트마다 다른 결제 동기를 살리는 방법이라고 판단했습니다.