← 목록

crowny-avl 6차 — 잔여 이슈 3건 마무리

개요

avl.crowny.org의 잔여 이슈 3건을 모두 해결하고 기능을 완성했다.

담당: 이용찬 팀장 / 010-9915-6990 / avl@crowny.org

해결한 이슈

1. PDF 직접 다운로드

Chrome Headless(--print-to-pdf)를 사용하여 서버 사이드에서 PDF를 생성하고 직접 다운로드한다.

GET /api/quotes/:id/pdf         → 견적서 PDF 다운로드
GET /api/proposals/:id/pdf      → 제안서 PDF 다운로드
GET /api/contracts/:id/pdf      → 계약서 PDF 다운로드

UI: 프로젝트 상세 + 견적생성 결과에 [PDF] 버튼 추��.

2. CRM → AVL 역방향 연동

POST /api/webhook/crm 웹훅 엔드포인트 추가. crm.crowny.org에서 리드 단계를 변경하면 AVL에 자동 반영된다.

POST /api/webhook/crm
Body: { leadId?, phone?, org?, stage?, assignee?, nextAction?, nextActionDate?, note? }
→ 매칭 리드 찾기 (leadId > phone > org 우선순위)
→ 단계 변경 + 활동 이력 자동 기록 ("CRM역방향")
→ 담당자/다음액션/메모 업데이트 가능

3. 이메일 자동 발송

순수 Node.js SMTP 클라이언트로 이메일 발송. PDF 첨부 지원.

POST /api/quotes/:id/email      { to: "수신@이메일" }  → 견적서 PDF 첨부 발송
POST /api/proposals/:id/email   { to: "수신@이메일" }  → 제안서 PDF 첨부 발송
POST /api/contracts/:id/email   { to: "수신@이메일" }  → 계약서 PDF 첨부 발송

UI: [이메일] 버튼 → prompt로 수신자 입력 → 발송.

환경변수:

테스트 결과

PDF 견적서:     OK (528KB, 5페이지)
PDF 제안서:     OK (8페이지)
PDF 계약서:     OK (3페이지)
CRM 웹훅:      OK (단계변경 + 활동이력 정상)
이메일 API:     OK (PDF 생성 + SMTP 연결 확인)
기존 기능:      OK (변경 없음)

추가된 API (6개)

MethodEndpoint설명
GET/api/quotes/:id/pdf견적서 PDF 직접 다운로드
GET/api/proposals/:id/pdf제안서 PDF 직접 다운로드
GET/api/contracts/:id/pdf계약서 PDF 직접 다운로드
POST/api/quotes/:id/email견적서 이메일 발송 (PDF 첨부)
POST/api/proposals/:id/email제안서 이메일 발송 (PDF 첨부)
POST/api/contracts/:id/email계약서 이메일 발송 (PDF 첨부)
POST/api/webhook/crmCRM → AVL 역방향 동기화 웹훅

파일

누적 탭 (22개 — 변경 없음)

대시보드, 고객관리, 프로젝트, 견적생성, 큐시트, DMX맵, 오디오매트릭스, 패키지비교, 시그널플로우, 랙다이어그램, 실시간모니터, 장소목록, 장비현황, 프리셋, 스케줄, 유지보수, 시공사례, 시공현황, 파트너십, 제품카탈로그, 도입문의, 장비등록, 장소등록, 활동로그

잔여 이슈

  • 모두 해결 완료. 추가 확장 가능 사항:
  • SMTP 인증(AUTH LOGIN/PLAIN) 필요 시 환경변수 추가
  • CRM → AVL 웹훅을 crm.crowny.org 서버에서 호출하도록 설정
  • 이메일 발송 이력 조회 API