报价单工作流
自动化生成报价单(Excel/Word/HTML/PDF),集成数据验证防止示例数据,支持 OKKI CRM
Install via CLI (Recommended)
clawhub install openclaw/skills/skills/cjboy007/quotation-workflow📋 报价单工作流
自动化生成专业报价单,支持 Excel/Word/PDF 三种格式。
🔴 v3.0.0 新增:数据验证系统
- ✅ 生成前强制验证客户/产品/条款数据
- ✅ 检测示例数据/占位符数据(公司名/邮箱/地址/电话)
- ✅ 验证失败立即终止,防止误发示例报价单
- ✅ Excel/Word/HTML 三格式统一验证
🔴 数据验证系统(v3.0.0 新增)
验证范围
生成前强制验证(所有格式):
- ✅ 客户信息:公司名/邮箱/地址/电话(非示例数据)
- ✅ 报价单号:格式(QT-YYYYMMDD-XXX)+ 非示例
- ✅ 产品列表:非空 + 名称/价格/数量有效
- ✅ 贸易条款:Incoterms/货币/交期
- ✅ 日期:格式 + 逻辑(有效期 > 报价日期)
示例数据检测:
- ❌ 公司名包含
example/test/sample/quadnet等关键词 - ❌ 邮箱域名
example.com/test.com/gmail.com等 - ❌ 地址占位符
123 Business St/Your City/xxx District - ❌ 电话占位符
123456789/000000000 - ❌ 报价单号
QT-TEST-001/QT-000等
验证失败处理:
🔍 验证报价单数据...
❌ 数据验证失败,报价单生成已终止:
1. 公司名称包含示例关键词:Example Corp
2. 使用测试邮箱域名:[email protected]
3. 地址包含占位符:123 Business St
请检查数据文件,确保使用真实客户信息。
绕过限制(仅限开发环境):
# HTML 脚本支持 --skip-validation(需环境变量)
export QUOTATION_DEV_ENV=true
python3 generate_quotation_html.py --data test.json --output test.html --skip-validation
# Excel/Word 脚本无跳过选项,强制验证
⚠️ 重要教训(必读!)
教训 1:邮件附件必须使用 HTML 转换的 PDF
✅ 邮件附件 = HTML 转换的 PDF(现代设计,专业美观)
⚠️ Excel PDF = 内部存档(传统风格,不发送客户)
教训 2:禁止使用示例报价单发送给客户 ⭐⭐⭐
事件: 2026-03-15 给美国客户发开发信时,直接使用了 examples/QT-TEST-001-Final.pdf 示例文件。
问题:
- ❌ 报价单上没有客户公司名称和地址
- ❌ 产品列表不是针对客户需求定制的
- ❌ 显得不专业,像群发垃圾邮件
正确流程(必须遵守):
1. 收集客户信息(公司名、地址、行业、联系人)
2. 创建报价单数据文件(JSON 格式)
位置:data/<客户简称>.json
3. 调用报价单生成 skill
bash scripts/generate-all.sh data/<客户数据>.json QT-<日期>-<客户简称>
4. 确认生成的 PDF 文件(*-Final.pdf 或 *-HTML.pdf)
5. 发送邮件时附上这份专属报价单
原则:
每次开发信必须生成新的专属报价单,禁止使用示例文件。
示例文件仅用于测试和演示,绝对不能发送给真实客户。
记忆口诀:
开发信三件套:个性化正文 + 产品目录 + 专属报价单 ⭐
示例文件 = 测试用,禁止发给客户 ❌
错误案例(不要这样做):
# ❌ 错误:发送 Excel 转换的 PDF
soffice --headless --convert-to pdf QT-001.xlsx
# 问题:设计简单,不够专业
正确流程(必须这样做):
# ✅ 正确:发送 HTML 转换的 PDF
python3 generate_quotation_html.py --data data.json -o QT-001.html
chrome --headless --no-pdf-header-footer \
--print-to-pdf=QT-001.pdf file://QT-001.html
python3 add-pagenumbers.py QT-001.pdf QT-001-Final.pdf
# 邮件附件:QT-001-Final.pdf ⭐
记忆口诀:
邮件附件 = HTML 的 PDF ⭐
Excel PDF = 内部存档
📧 邮件发送规则
重要:邮件附件使用 HTML 转换的 PDF
✅ 邮件附件 = HTML 转换的 PDF(现代设计,专业美观)
⚠️ 不是 Excel 转换的 PDF(传统风格,仅内部存档)
🚀 快速开始(标准工作流)
方式 1:一键生成(最简单 ⭐)
# 一键生成所有格式(Excel + Word + HTML + PDF)
# 🔴 v3.0: 自动生成前强制验证数据
skills/quotation-workflow/scripts/generate-all.sh \
my_quotation.json \
QT-20260314-001
# 验证失败示例:
# ❌ 数据验证失败,报价单生成已终止:
# 1. 公司名称包含示例关键词:Example Corp
# 2. 使用测试邮箱域名:[email protected]
# 邮件附件:QT-20260314-001-HTML.pdf ⭐
方式 2:标准流程(带页码)
# 1. 准备数据
cp skills/quotation-workflow/examples/farreach_sample.json \
my_quotation.json
# 2. 生成 HTML
python3 skills/quotation-workflow/scripts/generate_quotation_html.py \
--data my_quotation.json \
--output QT-20260314-001.html
Metadata
Not sure this is the right skill?
Describe what you want to build — we'll match you to the best skill from 16,000+ options.
Find the right skillPaste this into your clawhub.json to enable this plugin.
{
"plugins": {
"official-cjboy007-quotation-workflow": {
"enabled": true,
"auto_update": true
}
}
}Related Skills
logistics
物流管理技能,提供提单生成、报关单据生成、物流跟踪等功能。支持 OKKI 客户数据同步和自动化文档处理。
okki-email-sync
Synchronize email activities and quotation events with OKKI CRM as follow-up trail records. Automatically matches emails to CRM customers via domain lookup and vector search, creates trail records (email type=102, quotation type=101), and deduplicates entries. Requires OKKI CRM API access and optional vector search setup. Use when you need to automatically log email communications and quotation events in your CRM.
follow-up-engine
Automated customer follow-up scheduling and execution engine for B2B sales. Generates personalized follow-up email drafts based on customer stage, last contact date, and follow-up strategy. Integrates with CRM systems (configurable) to sync follow-up records. Use when you need to automate outbound sales follow-ups, schedule reminders, or generate follow-up email content for dormant leads.
approval-engine
审批流程引擎 + 异常处理系统 — 规则驱动的多级审批、异常检测、自动恢复策略和 Discord 通知集成
auto-evolution
Multi-agent auto-evolution system — orchestrate review-execute-audit loops with 4 roles (Coordinator, Reviewer, Executor, Auditor). A single coordinator agent drives the loop by spawning sub-agents for review, execution, and audit. Break goals into subtasks, auto-iterate with dual quality gates, and auto-package results. Use when: user wants autonomous task execution with built-in quality assurance.