대부분의 소규모 비즈니스는 스프레드시트와 죄책감으로 파이프라인을 굴린다. 그걸 고치는 데 Salesforce는 필요 없다 — 필요한 건 빈틈으로 새어 나가지 않는 연락처, 거래, 후속 작업이다. 우리는 바로 그것을 실제 도메인 위에서 오후 한나절 만에 만들었고, 그 과정은 지루할 만큼 반복 가능하다.
단 하나의 규칙: 무자비한 범위 설정
CRM은 “딱 한 필드만 더” 추가하는 순간 썩기 시작한다. 모든 비결은 이것이 하지 않을 일을 정하는 데 있다. 우리 것은 세 가지 명사만 다루고 그 외에는 아무것도 하지 않는다:
- 연락처(Contacts) — 이름, 회사, 이메일, 전화번호, 담당자.
- 거래(Deals) — 제목, 금액, 단계, 연결된 연락처.
- 활동(Activities) — 마감일이 있는 메모 또는 후속 작업.
커스텀 필드도, 자동화도, 리포트도 없다. 나중에 그것들이 필요해지면 자연히 알게 된다.
스택
Lab의 모든 빌드와 동일한 뼈대다: 데이터베이스, 인증, 행 수준 보안을 위한 Supabase;
그 위에 AI 빌더가 UI를 스캐폴딩한다. 테이블 세 개, deals → contacts와 activities → deals로
이어지는 외래 키, 그리고 행 수준 보안이 모든 쿼리를 로그인한 사용자(또는 그 팀)에게 한정할
수 있도록 하는 owner 컬럼.
프롬프트별로 살펴보는 빌드
- 스캐폴드 — “CRM. 이메일 로그인. 연락처, 거래, 활동.” 몇 분 만에 인증이 포함된 동작하는 앱을 얻는다.
- 파이프라인 — “거래에는 단계가 있다: Lead → Contacted → Proposal → Won/Lost. 이를 kanban 보드로 보여주고, 드래그로 단계를 바꾼다.”
- 후속 작업 — “활동에는 마감일이 있다; 오늘 마감인 모든 것을 홈 화면에 보여줘.” 이것이 실제로 제 몫을 해내는 기능이다.
- 권한 — “사용자가 자신의 연락처, 거래, 활동만 볼 수 있도록 행 수준 보안을 추가해줘.”
- 가져오기 — “연락처 CSV를 붙여넣을 수 있게 해줘.”
AI가 틀리는 부분
매번 두 가지다. 첫째, AI는 UI는 갱신하지만 단계 변경을 **저장(persist)**하는 것은 잊은 채 kanban을 기꺼이 생성한다 — 카드를 드래그하고 새로고침하면 원래대로 돌아간다. 쓰기(write)를 명시적으로 요청하라. 둘째, 요구하지 않는 한 AI는 거의 절대 행 수준 보안을 추가하지 않으므로, 기본적으로는 모든 사용자가 모두의 데이터를 보게 된다. 고객 연락처를 담는 CRM에서 그건 게임 전체가 걸린 문제다 — RLS를 나중에 생각할 일이 아니라 하나의 프롬프트로 만들어라.
출시하기
미리보기 URL에 있는 CRM은 팀이 실제로 쓸 CRM이 아니다. 도메인에 연결하고 — 10분짜리 작업 — “오늘 마감” 화면을 모두의 홈 화면에 띄워라.
결론
승부는 소프트웨어가 아니라 범위에 있다. 세 가지 명사, 진짜 권한, 오늘-마감 화면, 그것도 당신 소유의 도메인 위에서. 오늘 오후에 이걸 만들면 당신은 이미 스프레드시트를 이긴 것이다 — 1년 동안 기능을 끄느라 시간을 보낼 플랫폼에 가입하지 않고도.