블로그
BLOG — 케이스

쇼핑몰 정산 3.5시간을 15분으로, 새벽 야근을 없앤 이야기

새벽 2시, 대표는 여전히 사무실이었습니다. 스마트스토어, 쿠팡, 11번가, 자사몰, 카페24 마켓플러스. 다섯 개 채널의 정산 데이터를 엑셀에 나란히 놓고 수수료가 맞는지 대조하고 있었죠. 매달 마감 이틀은 그렇게 사라졌습니다.

무엇이 문제였나

이 쇼핑몰(월 매출 4.2억, 주력 카테고리 리빙)의 정산 프로세스는 겉보기엔 단순했습니다. 채널별로 정산 내역서를 받아 자사 ERP 매출 기록과 대조하고, 차이가 나는 항목을 찾아내는 일. 문제는 다섯 채널이 모두 다른 방식으로 데이터를 준다는 점이었습니다.

  • 스마트스토어 — 판매자 센터에서 엑셀 다운로드, 주문번호 형식 'N202607…'
  • 쿠팡 — 정산 API 제공, 하지만 배송비/쿠폰이 별도 필드로 분리
  • 11번가 — CSV 이메일 첨부, 수수료가 상품 카테고리별로 다르게 계산
  • 자사몰 — 카페24 어드민 SQL 리포트, VAT 포함/불포함 혼재
  • 마켓플러스 — PDF 정산서만 제공, 표 구조가 매달 조금씩 바뀜

담당자(경리팀장 겸 대표)는 이 다섯 소스를 하나의 대조표로 만들어야 했습니다. 채널별 수수료율은 상품 카테고리마다 다르고, 프로모션 참여 여부에 따라 또 달라집니다. 한 줄만 잘못 매핑해도 전체 검산이 어긋났습니다.

월 정산 대상 주문
약 8,400건
일 평균 정산 대조 시간
3.5시간
마감일 야근 시간
월 14시간
발견된 오차 (월평균)
220만 원

저 220만 원이 결정적이었습니다. 채널이 잘못 계산해서 덜 준 금액, 자사 ERP에 잘못 기록된 금액, 환불이 두 번 처리된 건. 이 오차를 잡아내지 못하면 그대로 손실이었고, 잡아내려면 사람이 매일 밤을 새워야 했습니다.

핵심 발상: '전부 검사'에서 '예외만 검사'로

n8n으로 워크플로우를 짤 때 가장 먼저 정한 원칙은 이거였습니다. 정상 건은 사람이 볼 필요가 없다. 사람은 오직 '규칙에서 벗어난 건'만 본다.

쇼핑몰 정산 자동 대조 파이프라인LIVE
IN5개 채널 수집TX정규화 + 매칭IF예외 플래그OUT슬랙 요약 보고

어떻게 만들었나

  1. 매일 새벽 3시 스케줄 트리거로 5개 채널 데이터 수집 (API 3개, 이메일 첨부 파싱 1개, PDF OCR 1개)
  2. 채널별 필드를 공통 스키마로 정규화 — 주문번호, 상품 SKU, 판매가, 수수료, 배송비, VAT
  3. 자사 ERP(Postgres)에서 같은 기간 주문 데이터를 조회, 주문번호 매칭
  4. 채널별 수수료율 규칙 테이블과 대조 — 예상 수수료 계산 후 실제 수수료와 차액 확인
  5. 차액 500원 이상이거나 매칭 실패한 건만 Google Sheet에 플래그 기록
  6. 매일 아침 8시 슬랙으로 요약 보고 — 정상 X건, 확인 필요 Y건, 총 오차 Z원

PDF 정산서를 다루는 법

가장 골치 아팠던 건 마켓플러스의 PDF 정산서였습니다. 매달 표 구조가 조금씩 바뀌어서 정규식으로 파싱할 수가 없었습니다. AI Agent 노드에 PDF 텍스트를 넣고 Structured Output으로 뽑도록 했습니다.

// AI Agent 노드 · PDF 정산서 파싱
const schema = z.object({
  settlement_period: z.string(),
  items: z.array(z.object({
    order_id: z.string(),
    sku: z.string(),
    gross_amount: z.number(),
    commission: z.number(),
    shipping_fee: z.number(),
    net_settlement: z.number(),
  })),
  total_net: z.number(),
});

// 후속 검증 노드
const sum = $json.items.reduce((s, i) => s + i.net_settlement, 0);
if (Math.abs(sum - $json.total_net) > 10) {
  throw new Error(`합계 불일치: 항목합 ${sum} vs 명시 ${$json.total_net}`);
}
AI로 PDF를 파싱할 때는 반드시 '합계 재계산' 같은 결정론적 검증을 붙이세요. LLM이 숫자 한 자리를 틀리는 건 드물어도 있는 일입니다. 검증에서 걸리면 사람에게 넘겨야지, 그대로 통과시키면 자동화가 오차의 원인이 됩니다.

결과

일 정산 대조 시간
3.5시간 → 15분
마감일 야근
월 14시간 → 0시간
오차 발견율
68% → 99.2%
회수한 미수금 (첫 3개월)
1,180만 원

숫자 중에 특히 눈여겨봐야 할 건 오차 발견율입니다. 사람이 다 볼 때는 오히려 놓치는 게 많았습니다. 새벽 2시에 눈이 침침한 상태에서 500원 차이를 잡아내기는 어려운 거죠. 워크플로우는 그런 걸 지치지 않고 봅니다.

3개월 회수액 1,180만 원은 월 평균 오차 220만 원(× 3개월 = 660만 원)보다 큽니다. 나머지 520만 원은 자동화 도입 전 6개월치 정산 데이터를 소급 대조해 발굴한 과거분 미수금(채널 수수료 오계산·환불 이중처리 누락)이었습니다. 첫 달에 스케줄 트리거로 과거 정산서를 순차 재검산하도록 붙여둔 결과입니다.
이제 새벽에 정산 안 합니다. 워크플로우가 합니다. 아침에 슬랙 보고서 하나 확인하고, 플래그된 건 서너 개만 사람이 봐요. 예전엔 몰랐던 미수금까지 잡아내니 오히려 매출이 늘었습니다.이재현 · 쇼핑몰 대표

구축에 들인 시간과 비용

  • 요구사항 정리 및 채널별 수수료 규칙 문서화 — 3일
  • n8n 워크플로우 개발 및 채널별 파서 구현 — 5일
  • AI 파싱 노드 프롬프트 튜닝 및 검증 룰 추가 — 2일
  • 3개월간 병행 운영(사람 대조 + 자동 대조) — 오차 케이스 학습
  • 총 구축 기간 10영업일, 병행 검증 3개월

병행 운영 기간을 강조하고 싶습니다. 자동화 워크플로우는 만들자마자 신뢰하면 안 됩니다. 최소 한두 달은 사람이 하던 방식과 나란히 돌리면서, 두 결과가 다를 때마다 원인을 찾아야 합니다. 이 기간이 자동화의 실제 정확도를 결정합니다.

정리

이 사례의 핵심은 도구가 아니라 관점입니다. '전부 확인'에서 '예외만 확인'으로 옮기고, 예외의 정의를 명확한 규칙과 검증으로 코드화하는 것. 그러면 사람은 판단이 필요한 일에만 집중하고, 반복은 워크플로우가 지치지 않고 처리합니다.

정산, 재고 대사, 세금계산서 검증처럼 매일 반복되는 대조 업무가 있다면 무료 상담을 신청하세요. 3.5시간짜리 업무를 15분으로 접는 최단 경로를 함께 그립니다.
관련 케이스 →쇼핑몰 정산 자동화

글로만 보긴
아쉽지 않나요?

읽은 걸 당신의 업무에 바로 적용해 드립니다. 무료 진단으로 시작하세요.

월 1회, 실전 자동화 한 편

n8n · AI 에이전트 · 워크플로우 케이스를 한 편씩 정리해 이메일로 보내드립니다. 홍보 메일은 없습니다.

언제든 해지 가능 · 스팸 없음