WORKS / PORTFOLIO
DATA AUTOMATION

신규 사업자 영업 리드 수집·관리 시스템 구축

공공데이터로 신규 사업자 기본 정보를 매일 수집하고, 공공데이터에 없는 연락처를 포털 검색으로 매칭한 뒤, 통화 결과까지 되돌려 받아 다음 영업 대상을 좁히는 리드 수집·활용 시스템

신규 사업자 영업 리드 수집·관리 시스템 구축

RESULT

수집, 연락처 매칭, 조회, 내보내기를 하루 1회 자동 주기의 단일 흐름으로 설계
매칭 실패를 사유 코드로 구분해 재시도 대상과 포기 대상을 나누는 규칙 정의
수집 상태와 영업 상태를 분리해 재수집이 통화 이력을 덮어쓰지 않도록 보장
통화 결과를 시스템으로 회수해 오늘 영업 대상과 매칭률을 자동 산출하는 구조 설계

TECH STACK

Node.jsExpressExcelJSJavaScript

CHALLENGE

클라이언트가 필요로 한 이유

클라이언트는 신규 사업자 기본 정보를 확보한 뒤 연락처를 다시 검색하고, 영업 가능한 목록으로 정리하는 일을 반복하고 있었습니다. 공공 정보와 포털 검색 결과의 출처가 달라 같은 사업자가 중복되거나 연락처를 찾지 못한 이유가 남지 않는 문제가 있었습니다.

필요했던 것은 단순 수집기가 아니라 수집 결과가 실제 영업 활동으로 이어지는 운영 흐름이었습니다. 기본 정보와 연락처를 안전하게 병합하고, 실패 이유와 통화 결과를 남겨 다음 접촉 대상을 좁힐 수 있어야 했습니다.

신규 개업한 소상공인을 대상으로 아웃바운드 영업을 하는 고객사는 영업 리드를 수작업으로 확보하고 있었습니다. 공개된 신규 사업자 정보에는 상호와 사업장 주소, 업종, 등록일이 담기지만 사업장 전화번호는 포함되지 않아, 목록을 확보한 뒤 연락처를 따로 찾는 작업이 이어졌습니다.

공공데이터에는 사업장 전화번호가 포함되지 않아, 목록을 확보해도 영업에 착수하려면 연락처를 별도로 찾아야 하는 구조

요건으로 제시된 핵심 문제

문제요건에 반영된 내용
연락처 공백기본 정보와 연락처의 출처가 달라, 상호와 주소 조합으로 연락처를 조회해 병합하는 단계가 요건에 포함됨
수집 주기 미보장수작업 확보는 일정한 주기로 반복하기 어려워, 하루 1회 정기 수집이 요건으로 제시됨
매칭 실패 추적 불가연락처를 찾지 못한 건을 사유별로 남기지 않으면 재시도 대상을 특정할 수 없어, 실패 사유 기록이 요건에 포함됨
활용 형태 불일치영업팀이 바로 쓰는 형태가 필요해, 조회 결과의 엑셀 내보내기가 요건에 포함됨

구축의 과제는 출처가 다른 두 데이터를 하나의 레코드로 합치는 규칙과, 매칭에 실패한 건을 어떻게 남길지를 먼저 확정하는 것이었습니다.

클라이언트 요청사항과 기획 방향

클라이언트 요청이렇게 기획한 이유해결 방식
신규 사업자와 연락처를 한 목록으로 제공출처가 다른 데이터를 담당자가 수기로 합치면 중복과 오매칭이 발생사업자 식별값을 기준으로 기본 정보와 연락처를 단계적으로 병합
연락처 미확인 건도 이유를 남겨달라는 요청실패 건을 삭제하면 재시도 가치와 수집 품질을 판단할 수 없음결과 없음·미표기·식별 불가를 별도 상태로 기록
수집 후 통화 이력까지 이어서 관리목록을 파일로 내보낸 뒤 결과가 돌아오지 않으면 다음 우선순위를 정할 수 없음수집 상태와 영업 상태를 분리하고 통화·다음 조치일을 누적

SOLUTION

시온랩은 기본 정보 수집과 연락처 매칭을 하나의 수집 작업으로 묶고, 그 결과를 영업팀이 조회하고 내보내는 화면까지 끊기지 않게 연결하는 구조로 설계했습니다. 여기에 더해, 목록이 밖으로 나간 뒤 결과가 돌아오지 않는다는 점을 확장 과제로 제안했습니다.

시스템 구조

수집은 기본 정보를 먼저 확정한 뒤 연락처를 덧붙이는 2단 구조입니다. 연락처를 찾지 못해도 사업자 레코드는 남으며, 실패 사유가 함께 기록되어 다음 수집에서 재시도 대상이 됩니다.

흐름 1: 수집과 연락처 매칭

한 번의 수집 실행은 신규 사업자를 추가하는 단계와 연락처를 채우는 단계로 나뉘고, 각 단계의 결과가 작업 단위로 집계됩니다.

흐름 2: 조회와 권한 분리

발주 요건은 관리자 대시보드 하나였으나, 데이터를 쓰는 사람과 수집을 제어하는 사람이 다르다는 점을 반영해 역할을 둘로 나누는 안을 제안했습니다. 영업 담당은 목록을 조회하고 내보내며, 수집 실행과 데이터 수정은 관리자만 수행합니다.

흐름 3: 수집 이후의 영업 활용 (확장 제안)

발주 요건이 정의한 시스템의 출력 경계는 엑셀 내보내기까지였습니다. 그러나 검수 기준이 연락처 매칭률인 이상, 목록이 밖으로 나간 뒤 무엇이 일어났는지 시스템이 알지 못하면 다음 수집의 우선순위를 정할 근거가 없습니다. 통화 결과를 시스템으로 되돌려 받는 구간을 확장 범위로 제안했습니다.

같은 사업자에 두 종류의 상태를 둡니다. 하나는 시스템이 수집으로 갱신하는 연락처 상태이고, 다른 하나는 사람이 통화로 갱신하는 영업 상태입니다. 두 상태를 분리해 두어야 연락처 재매칭이 통화 이력을 지우지 않습니다.

데이터 구조

사업자를 중심에 두고, 연락처와 매칭 상태를 사업자 레코드에 함께 둡니다. 통화 기록만 별도 테이블로 분리하고, 수집 작업은 회차별 집계를 따로 남깁니다.

  • 사업자는 사업자등록번호로 유일하게 식별: 같은 사업장이 여러 회차에서 다시 수집되어도 새 레코드를 만들지 않고 기존 레코드를 갱신합니다.
  • 연락처는 별도 이력 테이블을 두지 않는다: 최종 연락처와 매칭 상태, 실패 사유를 사업자 레코드에 함께 두어, 목록 조회 한 번으로 영업 가능 여부를 판단합니다.
  • 연락처 상태는 네 가지로 고정: 대기, 진행 중, 매칭 완료, 매칭 실패로 두어, 아직 시도하지 않은 건과 시도했으나 실패한 건을 구분합니다.
  • 실패는 사유로 나눈다: 검색 결과 없음, 연락처 미표기, 동명 사업장으로 식별 불가를 각각 다르게 기록해, 재시도로 해결되는 건과 그렇지 않은 건을 분리합니다.
  • 수집 상태와 영업 상태는 같은 레코드에 두되 서로 침범하지 않는다: 수집이 갱신하는 값과 통화가 갱신하는 값을 분리해, 재매칭이 담당자·통화 횟수·영업 단계를 덮어쓰지 않도록 규칙을 고정했습니다.
  • 통화 기록만 이력 테이블로 분리: 한 사업자에 여러 건이 쌓이고 시간 순서가 의미를 가지므로 별도 테이블로 두고, 사업자가 병합되면 기록도 함께 이관합니다.
  • 수집 작업은 집계만 남긴다: 회차마다 실행 시각과 수집, 매칭, 실패 건수를 기록해 매칭률 추이를 확인하되, 개별 사업자를 회차에 종속시키지 않습니다.
  • 활용 범위는 내부 영업으로 한정: 연락처는 내부 영업 목적으로만 조회하고 제3자에게 제공하지 않는 것을 전제로 권한과 내보내기 경로를 설계했습니다.

수집 결과를 확인하는 사람과 수집을 제어하는 사람이 다르다는 점을 전제로, 조회 계열과 변경 계열을 화면 단위가 아니라 권한 단위로 분리했습니다.


BUILD

구축 방향과 데이터 처리 로직

사업자등록번호를 중심 식별값으로 두고, 기본 정보 수집과 연락처 매칭을 별도 단계로 구성했습니다. 재수집 시에는 연락처 관련 값만 갱신하고 담당자, 통화 횟수, 영업 단계는 보존해 자동 수집이 사람의 영업 이력을 덮어쓰지 않도록 했습니다.

구간들어오는 데이터판정·처리 기준다음 상태
기본 정보 수집사업자번호, 상호, 주소, 업종, 등록일기존 식별값과 비교해 신규·갱신 판정사업자 레코드 생성 또는 보완
연락처 매칭상호, 주소, 검색 결과동일 사업장 확인과 실패 사유 분류연락 가능 또는 재검토 상태
영업 활동통화 결과, 담당자, 다음 조치일접촉 단계와 후속 일정 분리 저장오늘의 접촉 대상과 퍼널 갱신

VALIDATION

검증한 업무 범위

검증 구간확인한 상황완료 기준
중복 방지같은 사업자가 여러 수집 회차에 등장한 레코드만 유지되고 최신 기본 정보만 반영
매칭 실패결과 없음, 연락처 미표기, 동명 사업장사유별 상태가 남고 재시도 대상을 구분
이력 보존연락처 재매칭 후 기존 통화 기록 조회수집 갱신 뒤에도 담당자와 통화 이력이 유지

비슷한 업무에 적용할 수 있는 부분

신규 점포, 입점 후보, 협력사 발굴처럼 공개 정보와 연락 수단을 결합해야 하는 영업 업무에 적용할 수 있습니다. 수집량보다 식별 규칙, 실패 사유, 후속 활동의 연결 여부가 실제 활용도를 결정합니다.


RESULT

업무기존 방식설계 결과
기본 정보 확보공개 정보를 담당자가 옮겨 적음하루 1회 자동 수집, 기존 건 제외 후 신규만 등록
연락처 확보상호를 포털에서 개별 검색상호와 주소 조합으로 자동 매칭, 결과를 같은 레코드에 병합
실패 처리목록에서 누락사유 코드로 구분해 재시도 대상과 포기 대상을 분리
영업 활용형식 변환 반복조회 조건이 그대로 반영된 엑셀 내보내기
통화 결과 회수목록 반출 후 단절통화 결과와 다음 조치일을 기록해 영업 단계로 환원 (확장 제안)
대상 선정목록 전체를 순서 없이 접촉연락처가 있고 아직 접촉하지 않은 건을 오늘 영업 대상으로 자동 분리 (확장 제안)
운영 확인별도 집계 없음스케줄러 상태, 당일 수집 결과, 회차별 매칭률, 영업 퍼널

※ 본 프로젝트는 고객사 실제 업무 요건을 바탕으로 설계한 결과물이며, 보안 정책에 따라 일부 화면만 공개했습니다.

문의하기