참고

변경 이력

매뉴얼과 제품 결정이 언제 어떻게 바뀌었는지 누적 기록입니다. PMF 전엔 결정이 자주 정정되니, 최근 변경을 한 곳에서 확인하세요.

2026-06-19

관련 페이지: 가격

기본 가격 ₩39,000 → ₩49,000/월 인상. 직원 1명당 +₩10,000은 그대로. 모든 모듈 포함 정책 그대로 (Flow·Knit·Books·인사·영업·경영). 인상 사유: 출시 후 빌드된 자동화 기능(네이버 스마트스토어 import, AI 상세 설명, 사업자등록증 OCR, 거래명세서 PDF, FEFO 로트·소비기한, B2B 셀프 주문 포털)이 초기 단언 가치보다 큼. 한 자릿수 만 원의 차이로 SaaS 표준 수준에 맞춤.

2026-06-11

관련 페이지: Books (재무)

재무 모듈을 Books로 리네임 — finance.oprai.co.kr → books.oprai.co.kr (옛 주소는 영구 redirect). Knit처럼 모듈 고유 이름 패턴. 기존 견적·청구·입금 확인 기능은 그대로, 방향은 확장: 은행·카드·홈택스 증빙 자동 수집 → AI 자동 분개 → 월 결산 자동화 → 부가세 신고 자료 생성 → 법인세 세무사 핸드오프 패키지. 목표는 "경리 없이 장부가 굴러가고, 세무사에게 줄 일은 1/10로". 신고 대행이 아니라 본인 직접 신고(self-filing) 지원 도구 (세무사법 경계 준수).

2026-05-27

관련 페이지: B2B 포털

거래처 일괄 등록 라이브 — 옛 거래처 30곳을 엑셀 1번으로. shop.oprai.co.kr/admin/customers/import에서 .xlsx/.csv 업로드 → 미리보기(오류 행 표시) → 일괄 생성. 한국 사장님 친화 헤더 alias (회사명·이메일·담당자·분류·할인율). 각 거래처에 12자 임시 비밀번호 + welcome 메일 자동 발송. 가입 OTP·승인 절차 우회 (admin이 옮기는 거니까 신뢰). 같은 이메일 이미 존재하면 skip. 한 번에 최대 500곳. lib/shop-bulk-import.ts + xlsx (SheetJS) 라이브러리.

2026-05-27

관련 페이지: B2B 포털

거래명세서 PDF 자동 발행 라이브. 주문 접수 시 거래명세서(공급자·공급받는자·아이템·소계·VAT·합계·한글 금액·입금 계좌) PDF가 자동 생성되어 거래처·담당자 메일에 첨부 발송. 거래처 주문 상세·admin 주문 상세에 "PDF 보기" 다운로드 버튼. shop.oprai.co.kr/admin/settings에 회사 정보(상호·사업자번호·대표·주소·업태·종목·연락처·은행 계좌) 입력 폼 신설. 정보 미입력 시 PDF 비활성 + 안내 배너. lib/shop-statement-pdf.tsx (@react-pdf/renderer + Pretendard CDN). migration 035.

2026-05-27

관련 페이지: B2B 포털

B2B 포털에 자주 주문 학습 wedge 라이브. 거래처 home에 "자주 주문하시는 제품" top 5 자동 표시 (지난 90일 빈도). 옛 주문 상세에 "이 주문 다시 담기" 1-click 버튼. 매주 같은 발주 패턴인 B2B 거래처가 클릭 한 번이면 마지막 수량 그대로 카트 추가. lib/shop-reorder.ts (frequent products SQL agg + cloneOrderItems).

2026-05-27

관련 페이지: B2B 포털

제품 등록에 사진·브랜드·AI 설명 생성기 추가. 사진: Vercel Blob 저장, 권장 1000×1000. 브랜드: nullable 필드, 카탈로그 브랜드별 정렬. AI 설명: ✨ 버튼 → URL 스크래핑 (제조사 페이지 fetch + 텍스트 추출) + 파일 업로드 (PDF·이미지 Claude Vision) → 2~4문장 B2B 톤 설명 자동 생성. 직접 편집 가능. migration 033·034.

2026-05-27

관련 페이지: B2B 포털

A컴파니 onboarding 흐름. app.oprai.co.kr/modules 카드 그리드에 "B2B 포털 · 셀프 주문" Live 카드 (모든 모듈 포함하는 플랫폼 플랜). 클릭 → shop.oprai.co.kr/admin 자동 진입 (knit_session SSO). admin 대시보드 첫 진입 시 거래처 URL 1-click 복사 + 제품·주문·가입 0건일 때 4 step 셋업 가이드 자동 노출. Phase A 결제 manual 안내 banner.

2026-05-27

관련 페이지: B2B 포털

B2B 포털 (셀프 주문) 모듈 라이브. 거래처가 shop.oprai.co.kr/{워크스페이스}/signup으로 셀프 가입(이메일 OTP), 워크스페이스 담당자가 거래처 분류·할인율 설정하고 승인, 승인된 거래처가 카탈로그 보고 박스/EA 주문, 주문 즉시 재고 차감 + 거래명세서 자동 발송, 담당자가 입금·출고·송장 처리. shop.oprai.co.kr/admin에서 카탈로그·승인·주문·제품을 한 곳에서 관리. 기본 39,000원/월 + 직원 1명당 10,000원(모든 모듈 포함) + 거래처 무제한. 사업자등록증 OCR + 국세청 진위확인 거래처 측에서 셀프 가능.

2026-05-27

관련 페이지: 가격·운영

한국 정기 결제 인프라 결정 — Stripe 대신 포트원(PG = 토스페이먼츠) + 팝빌 전자세금계산서. Stripe Korea는 한국 SMB B2B SaaS에 부적합 (한국 법인 미보유 시 정산 부담 + 세금계산서 자동 발행 미지원). Phase A는 수동 invoicing, Phase B(라이브 5명+)에서 자동 wire-up.

2026-05-26

관련 페이지: 영업 · 경영

AI 고객 헬스 매주 자동 평가 (Vercel cron) 라이브. 매주 월요일 03 KST(=일요일 18 UTC)에 모든 won 고객 헬스 자동 재평가. 헬스 변화 시 customer_health 자동 update + activity 로그 기록 (prev → next + reasoning + 신호). 이후 risk-alerts cron(매일 10 KST)에서 변화된 risk 고객에 즉시 알림. 사용자 안 봐도 헬스 추적·변화 감지·알림이 완전 자동 사이클. cron 인프라 4번째 활용 (weekly-digest·invoice-followup·risk-alerts·customer-health-weekly).

2026-05-26

관련 페이지: 영업

AI 고객 헬스 자동 분석 라이브. /customers/[id] 상세에서 "AI로 분석" 클릭 → Claude가 영업 활동(30건)·청구 결제(20건)·프로젝트 진행 종합해 권장 헬스(good/watch/risk) + 근거 + 긍정/우려 신호 + 권장 액션 반환. "이 헬스로 설정" 한 클릭으로 customer_health 반영. lib/customer-health-analyzer.ts, /api/sales/customers/[id]/{analyze-health,set-health}, components/sales/customer-health-analyzer.tsx. 다음 chunk: 매주 cron으로 모든 고객 자동 평가.

2026-05-26

관련 페이지: 영업 · 경영

고객 라이프사이클 (헬스·갱신·계약가) 라이브. oprai_leads에 customer_health(good/watch/risk), customer_renewal_at, customer_contract_value, customer_csm_owner, customer_health_at 컬럼 추가. won 처리 시 health=good, 갱신=오늘+12개월, CSM=처리자 자동 set. /customers 목록에 헬스 배지·계약가·갱신 D-day 표시. /customers/[id] 상세 페이지 신설 — 라이프사이클 편집 + 연결된 청구/프로젝트 cross-module 자동 표시 + 이번 달 수금/미수금 요약. 위험 신호 2개 추가: 갱신 임박(30일 이내, 7일+ critical) · 고객 헬스 위험(=risk 자동 critical). db/020_customer_lifecycle.

2026-05-26

관련 페이지: 경영

새 critical 위험 즉시 알림 (Vercel cron 매일 10 KST) 라이브. /api/cron/risk-alerts가 매일 01 UTC 트리거 → 모든 워크스페이스에서 critical 위험 신호 감지 → 24h 내 미알림만 추출 → admin work_email로 SMTP 묶음 메일 발송 (from mgmt@oprai.co.kr). 워크스페이스 단위 한 메일에 모든 critical 모음 (inbox 폭발 방지). oprai_risk_alerts 테이블로 dedup (24h 내 같은 entity 재발송 X). cron 인프라 세 번째 활용. 위험 감지 → AI 분석 → 한 클릭 액션 흐름의 진짜 마지막 piece — dashboard 안 봐도 critical 발견 즉시 알림.

2026-05-26

관련 페이지: 경영 · 재무 · 인사

위험 분석 한 클릭 트리거 Phase B — 재무·인사 패턴 복제 완료. InvoiceDunningPanel이 ?auto=dunning에서 mount 시 1차 독촉 메일 자동 생성. CandidateMailPanel이 ?auto=mail에서 현재 단계에 맞는 채용 메일(인터뷰 초대/오퍼/거절) 자동 생성. 영업+재무+인사 3 entity 모두 한 클릭 액션 라이브 (프로젝트는 manual). dashboard에서 위험 발견 → 분석 → 액션이 마우스 한 번에 끝.

2026-05-26

관련 페이지: 경영 · 영업

위험 분석 한 클릭 트리거 (Phase A 영업). AI 분석 결과에 suggested_action_type(draft_email/draft_dunning/draft_candidate_mail/manual) + label 추가. 영업 stale 리드의 AI 분석 결과 옆에 "이대로 실행 →" 버튼 → /leads/[id]?auto=draft 새 탭으로 LeadDraftPanel이 자동으로 콜드 메일 초안 생성 시작. 위험 발견 → 분석 → 액션이 한 클릭 흐름. 재무 청구/인사 후보자 후속 chunk에서 패턴 복제.

2026-05-26

관련 페이지: 경영

위험 신호 AI 분석 라이브. Dashboard 위험 카드의 "AI 분석" 버튼 클릭 시 Claude가 entity(영업 리드·재무 청구·프로젝트·인사 후보자) 메모·활동 로그·맥락 읽고 (1) 추정 원인 1줄 (2) 권장 액션 1~3개 (3) 긴급도 (low/medium/high) 반환. on-demand 호출(비용 절약). 한 화면(dashboard)에서 위험 발견 → AI 분석 → 액션 한 흐름. lib/risk-ai-analyzer.ts (4 entity context builder), /api/mgmt/risk-analyze, components/mgmt/risk-row.tsx.

2026-05-26

관련 페이지: 경영

위험 신호 자동 감지 라이브. mgmt.oprai.co.kr/dashboard 최상단에 5가지 위험 신호 자동 표시: 영업 stale 리드(14일+ 비활성), 재무 연체 청구(만기 초과), 프로젝트 마감 임박+낮은 진행률(14일/<50%), 프로젝트 stale(in_progress 14일+ 정체), 인사 stale 후보자(10일+ 단계 변화 없음). critical(30일+/3일+) 우선 정렬 + 각 항목 클릭 drill-down. 매뉴얼 § "⚠ 주목할 위험" 신설. 다음 chunk: AI 위험 분석·대응 제안.

2026-05-26

관련 페이지: 프로젝트 · 재무

프로젝트 마일스톤(Milestone) 라이브 + 마일스톤 완료 시 청구 자동 생성. 프로젝트 상세에서 마일스톤 추가(제목·마감·완료 시 청구 금액·설명) → "완료 처리" 한 클릭. billing_amount > 0이면 재무 모듈에 청구 draft 자동 생성 — 받는 회사·담당자·이메일은 프로젝트의 영업 리드에서 자동 prefill. 진행률은 완료 마일스톤 비율로 자동 계산. db/018_project_milestones (project_id FK, billing_invoice_id 양방향 cross-link). 한국 SMB B2B 단계별 부분 청구 흐름 자동화. lib/project-milestones.ts. 다음 chunk: 할 일 entity, AI 위험·지연 감지.

2026-05-26

관련 페이지: 프로젝트 · 영업 · 경영

프로젝트 모듈 첫 entity = 프로젝트(Project) 라이브. project.oprai.co.kr/projects에서 진행 중·완료된 프로젝트 한 화면. 영업 won 시 자동 프로젝트 draft 생성 (lead_id로 cross-link, 같은 lead 중복 방지). 단계 5개: 계획·진행·중단·완료·취소 + 진행률 0-100%. 직접 등록도 가능. 경영 대시보드에 프로젝트 KPI 4종 추가 (진행 중·활성 합계·14일 내 마감·이번 달 완료). 매뉴얼 /docs/modules/project 신설. db/017_projects.sql, lib/project-projects.ts, markLeadWon에 autoCreateProjectFromLead 통합. 다음 chunk: 마일스톤·할 일·AI 위험 감지.

2026-05-26

관련 페이지: 재무

청구 만기 자동 추적 + 1차 AI 독촉 자동 발송 (매일 cron) 라이브. /api/cron/invoice-followup이 매일 09 KST에 모든 워크스페이스의 sent 상태 + 만기 7일 초과 + 1차 dunning 미발송 청구 자동 감지. 청구 작성자의 본인 Gmail OAuth 토큰으로 AI 1차 정중한 안내 메일 자동 발송 (from = 작성자 직장 이메일). activity에 type=dunning, stage=1, automated=true 기록 → 중복 방지. 사용자가 안 봐도 만기 추적 끊기지 않음. cron 인프라 두 번째 활용.

2026-05-26

관련 페이지: 경영

AI 주간보고 자동 발송 (Phase B · Vercel cron) 라이브. vercel.json cron schedule "0 0 * * 1" (매주 월요일 00 UTC = 09 KST). /api/cron/weekly-digest GET — CRON_SECRET 헤더 검증 후 모든 워크스페이스 순회 → AI 생성 + SMTP relay로 발송. From=mgmt@oprai.co.kr, To=admin 멤버의 work_email(없으면 Knit 계정 이메일). 한 워크스페이스 실패해도 나머지 처리. Vercel 환경변수 CRON_SECRET 필요.

2026-05-26

관련 페이지: 경영

AI 주간보고 라이브 (수동 트리거 Phase A). mgmt.oprai.co.kr/weekly에서 "지난 주 보고서 생성" 클릭 시 Claude가 지난 일~토 영업·재무·인사 데이터 수집·요약. 한 줄 headline + 모듈별 카운트·highlights + ⚠ 주목 + → 다음 주 우선순위. 본인 Gmail로 이메일 발송 + 다른 이메일 입력 가능. db/016_weekly_digests (workspace_id + period unique). 다음 chunk: Vercel cron 매주 월요일 자동.

2026-05-26

관련 페이지: 경영

경영 모듈 첫 entity = 통합 KPI 대시보드 라이브. mgmt.oprai.co.kr/dashboard에서 영업·재무·인사 세 모듈 KPI 한 화면. 영업(활성 리드·이번 달 수주/실패·5단계 분포) · 재무(미수금·연체·견적/수금) · 인사(활성 후보자·합류·5단계 분포). 숫자 클릭 시 해당 모듈로 drill-down. cross-module 가치의 정수 — 사장님 dogfood 시작점 + 사업계획서 §10 ROI 케이스 측정 도구. lib/mgmt-stats.ts (Promise.all 병렬 집계 쿼리). 다음 chunk: AI 주간보고 자동 생성·메일 배포.

2026-05-25

관련 페이지: 인사

이력서 + AI 스크리닝 라이브. 후보자 상세에서 PDF·이미지 업로드 → Vercel Blob 저장 → Claude vision이 즉시 분석 → 매칭 점수(0-100) · 강점 · 우려 · 추천 액션(interview/screen_more/reject) + 추출 정보(이름·이메일·전화·경력·기술) 자동 표시. 비어 있던 후보자 필드도 자동 채움. 활동 로그에 스크리닝 결과 자동 기록. db/015_candidate_resume.sql, lib/candidate-screening.ts, /api/hr/candidates/[id]/resume.

2026-05-25

관련 페이지: 인사

인사 모듈 첫 entity = 채용(Candidate) 라이브. hr.oprai.co.kr/candidates에서 후보자 등록·관리. 단계 5개(지원·서류검토·인터뷰·오퍼·합류) + 탈락. 이름 입력 시 Knit 인맥 자동 검색. AI 채용 메일 3종(인터뷰 초대·오퍼 안내·정중한 거절) — 한 번에 본인 Gmail에서 발송 + activity 자동 기록 + 단계 자동 이동(invite→인터뷰·offer→오퍼·reject→탈락). 영업 lead 패턴 인사 도메인으로 복제. db/014_candidates.sql, lib/hr-candidates.ts.

2026-05-25

관련 페이지: 재무

미수금 자동 독촉 메일 (AI 초안) 라이브. 만기 초과 + 미입금 청구 상세 페이지에 독촉 패널 자동 노출. 단계 1차(정중한 확인) · 2차(단호한 안내) · 3차(최종 통보) 토글. AI(Claude)가 청구번호·발행일·만기일·총액·미입금 일수를 인용해 한국어 비즈니스 톤으로 작성. 한 번에 발송 + lead.activity에 자동 기록(meta에 type:dunning · stage · gmail_id). lib/finance-dunning.ts·components/finance/invoice-dunning-panel.tsx·/api/finance/invoices/[id]/dunning/{draft,send}.

2026-05-25

관련 페이지: 재무

청구(Invoice) entity 라이브 + 견적 수락 시 자동 생성. AI가 견적 답장을 'accepted'로 분류하면 청구 draft 자동 생성(번호 INV-YYYY-NNN, 발행일 오늘, 만기 +30일). 청구 상세에서 본인 Gmail로 청구서 발송 + "수금됨 표시" 버튼. 청구 목록에서 미수금·연체 자동 표시. lead.activity에 청구·수금 자동 기록. 세금계산서(홈택스) V2 예정. db/013_invoices.sql, lib/finance-invoices.ts, /api/finance/invoices/[id]/{send,mark-paid}.

2026-05-25

관련 페이지: 재무 · 영업

견적 답장 자동 분류 + 영업 won 자동 처리 라이브. 견적 상세 페이지 진입 시 background로 Gmail thread 폴링 → 받은 답장을 LLM(Claude)이 6가지 의도로 분류(수락·거절·협상·질문·검토중·기타). 수락(conf≥70%) 자동 감지 시 quote.status='accepted' + 연결된 영업 리드 markLeadWon(Knit 자동 promote 포함). 거절도 자동 'rejected'. 분류 결과·근거 배너로 표시. lib/quote-reply-classifier.ts·components/finance/quote-reply-poller.tsx 신규.

2026-05-25

관련 페이지: 재무 · 영업

재무 모듈 첫 entity = 견적(Quote) 라이브. finance.oprai.co.kr/quotes에서 새 견적 작성 → 본인 Gmail로 발송. 영업 리드 상세에서 "견적 만들기 →" 버튼 클릭 시 회사·담당자·이메일 자동 prefill. 발송 시 lead.activity에 proposal_sent 자동 기록 + stage contact/meeting → proposal 자동 이동. 견적번호 Q-YYYY-NNN 자동, VAT 자동 계산, 인쇄·PDF 저장, 영업↔재무 첫 cross-module 자동화. db/012_quotes.sql, lib/finance-quotes.ts, /api/finance/quotes/[id]/send.

2026-05-25

관련 페이지: 영업

답장 자동 thread 추적 라이브. 리드 상세 페이지 진입 시 background로 Gmail thread 폴링 → 발송 후 들어온 답장 자동으로 활동 로그(email_replied)에 기록. Pub/Sub 인프라 없이도 "페이지 열면 곧 최신" UX. gmail_message_id 기준 dedup. 활동 로그 섹션 신설(email_sent · email_replied · stage_change 색상 분기). lib/gmail-thread.ts·components/sales/reply-poller.tsx 신규.

2026-05-25

관련 페이지: 영업

AI 콜드 메일 "이대로 발송" 라이브. 사용자 본인 Gmail 계정에서 직접 발송(OAuth gmail.send 스코프) — deliverability·정통성 OK. 발송 완료 시 activity 로그(meta에 gmail_message_id·thread_id) + stage 'lead' → 'contact' 자동 이동. Knit 로그인 시 자동 부여, 기존 사용자는 1회 재로그인. lib/gmail-send.ts·lib/google-tokens.ts 신규.

2026-05-25

관련 페이지: 영업

Knit cross-layer 4기능 라이브. (1) AI 콜드 메일이 Knit 매칭 시 자동 warm 톤("오랜만에 인사드립니다"). (2) 리드 won 처리 시 본인 Knit에 자동 추가 — 회사 떠나도 관계는 본인에게 남음 (portability moat). (3) /customers 직접 등록 폼도 회사명 입력으로 Knit auto-suggest. (4) 리드 상세에 "Knit 인맥 매칭 — 마지막 연락 N개월 전" 카드 + Knit 메모 표시. lib/knit-cross.ts 신규.

2026-05-25

관련 페이지: 영업

리드 추가 시 Knit auto-suggest 라이브. 이름 칸에 타이핑하면 본인 Knit 인맥에서 자동 매칭 → 이메일·회사·직책 한 번에 채움. cross-layer 첫 단계 — 윤자동·Salesforce·HubSpot 모두 못 가진 구조 (회사 데이터 + 개인 평생 인맥). /api/knit/people/search 신규.

2026-05-25

관련 페이지: 정체성과 로그인 · 워크스페이스

정체성 두 층 인프라 라이브 — 계정(Knit, 로그인용 개인 이메일·평생) vs 워크스페이스 프로필(직장 이메일·회사별 attribute). /app/settings에 "워크스페이스 프로필" 섹션 신설 + 직장 이메일 매직 링크 인증 흐름(/api/workspace/work-email/request). 회사가 Office 365·Google Workspace 어떤 걸 써도 무관. Microsoft OAuth는 회사 IT 강제 요구 시에만 추가. 회사 떠나면 직장 이메일 끊기고 Knit 계정·인맥은 그대로 = portability moat.

2026-05-25

관련 페이지: 영업

고객 entity 활성화 (단일 leads 테이블의 won 필터 view). 별도 customers 테이블 신설 안 함. 모든 진입은 lead로 시작, stage='close' AND outcome='won' = 고객. /customers 페이지 신규, /leads는 won 자동 제외. 리드 추가 폼에 "이미 거래 중인 고객" 체크박스 — 체크 시 won으로 즉시 등록. history·activity 로그 한 곳에 누적.

2026-05-25

관련 페이지: Oprai 비서

Oprai 비서 라이브 (떠 있는 AI 도움 비서). 매뉴얼 100% 인지 + 화면 컨텍스트 인지 + 막히기 전 사전 귀띔. 모든 페이지 우하단에서 호출. /docs/assistant 매뉴얼 신설, 메인 페이지에 feature 섹션 추가, 사업계획서 §5에 진짜 wedge 2로 박음.

2026-05-25

관련 페이지: 모듈

모듈명 단순화 — "X관리" 어법은 옛 ERP 톤이라 정리. 영업관리→영업, 인사관리→인사, 회계관리→재무, 물류관리→물류, 경영관리→경영, 고객관리→고객, 프로젝트관리→프로젝트, 지식·자료→지식. 영문도 "X Operations" 제거(Sales · People · Finance · Logistics · Decisions). AI-native 시대엔 비서가 일을 처리, 사람이 "관리"하지 않음.

2026-05-25

관련 페이지: 모듈

물류 모듈을 'Live · 식품 유통 (Flow)'로 표기. Sweetly가 운영 중인 Flow(flow.sweetly.co.kr)를 카드 클릭 시 새 탭으로 연결. Oprai 내부 통합(Next.js 재작성, Phase A→D)은 진행 중. 택배사 직접 API 통합은 안 하고, 다중 통합 수요 시 Goodsflow 같은 aggregator로 가는 정책 확정.

2026-05-25

관련 페이지: 정체성과 로그인 · 워크스페이스

공간 모델로 재정리. Knit = 회사 밖 세계, 회사 워크스페이스 = 회사 안 세계. 로그인 직후 Knit에 도착, '회사 들어가기'로 명시 입장. 매직 링크는 UI에서 숨김(백엔드 보존).

2026-05-25

관련 페이지: 가격

공개 가격표 단언. 기본 39,000원/월(1인) + 직원 1명당 10,000원, 모든 모듈 포함. 협상·견적·엔터프라이즈 맞춤 tier 없음.

2026-05-25

관련 페이지: 워크스페이스 · 정체성과 로그인

Knit cross-layer 명시. Knit이 회사 일에서도 핵심(영업·채용·파트너십에서 사람·관계 조회). 회사 모듈이 Knit 위에서 작동하는 구조.


새 변경을 추가하려면 app/docs/changelog/page.tsx ENTRIES 배열 맨 위에 한 항목 추가.

변경 이력 — Oprai 매뉴얼 | Oprai