RECIPE 028
견적 요청 폼 → PDF 견적서 자동 생성 발송
- ▸Google Docs 또는 HTML 템플릿에 데이터를 자동으로 채워 넣을 수 있다
- ▸Sheets의 고객 정보를 읽어 개인화된 계약서/견적서를 자동 생성할 수 있다
- ▸생성된 문서를 PDF로 변환해 이메일로 자동 발송할 수 있다
✅사전 준비
- □Google Docs 템플릿 작성 (치환할 변수는 {{변수명}} 형식으로 표기)
- □Google Drive 자격증명 연결 완료
- □Google Sheets에 고객 데이터 준비 (이름/회사/금액/날짜 등)
- □Gmail 자격증명 연결 완료
Google Docs 템플릿 변수 치환 — HTTP Request
{
"requests": [
{
"replaceAllText": {
"containsText": { "text": "{{고객명}}", "matchCase": true },
"replaceText": "{{ $json.고객명 }}"
}
},
{
"replaceAllText": {
"containsText": { "text": "{{계약금액}}", "matchCase": true },
"replaceText": "{{ $json.계약금액 }}"
}
},
{
"replaceAllText": {
"containsText": { "text": "{{계약일}}", "matchCase": true },
"replaceText": "{{ $now.toFormat('yyyy년 MM월 dd일') }}"
}
}
]
}Docs → PDF 변환 — HTTP Request
URL: https://docs.google.com/document/d/{{ $json.documentId }}/export?format=pdf
Method: GET
Authentication: Google OAuth2
→ 응답 바이너리를 Gmail 첨부파일로 바로 연결💡 TIP템플릿 문서는 원본을 보존하기 위해 Drive 노드의 'Copy File' 기능으로 먼저 복사본을 만든 뒤 치환 작업을 진행하세요. 원본이 덮어씌워지는 실수를 방지할 수 있습니다.
⚡
워크플로우 JSON
아래 JSON을 복사해 n8n에 바로 임포트하세요
📥 n8n 임포트 방법
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
n8n 화면 우측 상단 메뉴 (⋮) → Import from JSON → 아래 JSON 전체 복사 후 붙여넣기 → Import 클릭
{
"recipeId": "recipe028",
"title": "견적 요청 폼 → PDF 견적서 자동 생성 발송",
"chapter": 3,
"category": "영업 & 리드 관리 자동화",
"difficulty": "⭐⭐⭐",
"estimatedTime": "60분",
"description": "구글 폼으로 견적 요청이 들어오면 Google Docs 템플릿에 데이터를 자동으로 채워 PDF로 변환 후 고객 이메일로 발송합니다. 내부 영업팀 Slack에도 발송 완료 알림을 보냅니다.",
"apps": [
"Google Forms",
"Google Docs",
"Gmail",
"Slack"
],
"nodes": [
{
"id": "trigger_sheets",
"type": "trigger",
"name": "Google Sheets Trigger - 폼 제출 감지",
"service": "googleSheets",
"config": {
"event": "rowAdded",
"documentId": "{{ $env.QUOTE_REQUEST_SHEET_ID }}",
"sheetName": "Form Responses 1"
}
},
{
"id": "gdocs_fill",
"type": "action",
"name": "Google Docs - 견적서 템플릿 채우기",
"service": "googleDocs",
"config": {
"operation": "createFromTemplate",
"templateId": "{{ $env.QUOTE_TEMPLATE_DOC_ID }}",
"title": "견적서_{{ $json[\"고객명\"] }}_{{ $now.format(\"YYYYMMDD\") }}",
"variables": {
"{{고객명}}": "={{ $json[\"고객명\"] }}",
"{{서비스종류}}": "={{ $json[\"서비스_종류\"] }}",
"{{수량}}": "={{ $json[\"수량\"] }}",
"{{납기일}}": "={{ $json[\"납기일\"] }}",
"{{발행일}}": "={{ $now.format(\"YYYY년 MM월 DD일\") }}"
}
}
},
{
"id": "gdocs_export_pdf",
"type": "action",
"name": "Google Docs - PDF 변환",
"service": "googleDocs",
"config": {
"operation": "exportAsPdf",
"documentId": "={{ $json[\"documentId\"] }}"
}
},
{
"id": "gmail_send",
"type": "action",
"name": "Gmail - 견적서 발송",
"service": "gmail",
"config": {
"to": "={{ $json[\"고객_이메일\"] }}",
"subject": "견적서 발송 안내 - {{ $json[\"고객명\"] }}님",
"body": "안녕하세요, {{ $json[\"고객명\"] }}님.\n\n요청하신 견적서를 첨부해 드립니다.\n추가 문의사항이 있으시면 언제든지 연락 주세요.\n\n감사합니다.",
"attachments": "={{ $json[\"pdfBinary\"] }}"
}
},
{
"id": "slack_notify",
"type": "action",
"name": "Slack - 견적서 발송 완료 알림",
"service": "slack",
"config": {
"channel": "={{ $env.SLACK_SALES_CHANNEL }}",
"message": "📄 견적서 발송 완료!\n고객: {{ $json[\"고객명\"] }}\n서비스: {{ $json[\"서비스_종류\"] }}\n→ 팔로업 타이밍을 놓치지 마세요!"
}
}
],
"connections": [
{
"from": "trigger_sheets",
"to": "gdocs_fill"
},
{
"from": "gdocs_fill",
"to": "gdocs_export_pdf"
},
{
"from": "gdocs_export_pdf",
"to": "gmail_send"
},
{
"from": "gmail_send",
"to": "slack_notify"
}
],
"envVars": [
{
"key": "QUOTE_REQUEST_SHEET_ID",
"description": "견적 요청 구글 폼 연결 시트 ID"
},
{
"key": "QUOTE_TEMPLATE_DOC_ID",
"description": "Google Docs 견적서 템플릿 문서 ID"
},
{
"key": "SLACK_SALES_CHANNEL",
"description": "영업팀 Slack 채널 ID"
}
],
"qrCodeUrl": "https://www.koreaaitimes.com/books/n8n-vol2/recipe028"
}