- Bridge server with LLM agent tool-use (search_kb, search_products, search_orders, search_inventory, escalate_human) - pgvector RAG knowledge base (95 FAQ chunks) - Auto opportunity creation in Twenty CRM - Auto follow-up task workflow - Chatwoot AgentBot integration (HMAC, webhook) - Docker compose infrastructure (PG18, Redis 8.8, node24-alpine) - Configuration templates (example files) - real secrets excluded via .gitignore
9.1 KiB
Twenty CRM 功能指南
本文档说明 Twenty CRM 在本系统中的集成方式、当前已用功能,以及 Twenty 本身的完整能力。 适用于:系统运维、功能扩展、二次开发参考。
一、当前系统的集成现状
Bridge 实际用到的 Twenty 功能(5 个 GraphQL 操作)
| 功能 | GraphQL 调用 | 代码位置 (bridge/server.js) |
作用 |
|---|---|---|---|
| 创建公司 | createCompany |
:221 | 从对话提取公司名,自动建公司记录 |
| 查公司(去重) | companies(filter:{name}) |
:227 | 避免重复创建同名公司 |
| 创建联系人 | createPerson |
:254 | 建联系人(姓名/邮箱/电话),关联到公司 |
| 查联系人(去重) | people(filter:{emails}) |
:234 | 按邮箱去重 |
| 创建商机 | createOpportunity |
:276 | 建商机(名称/金额/阶段/公司/联系人) |
| 创建笔记 | createNote + createNoteTarget |
:333 | 把聊天记录挂到商机上 |
| 创建跟进任务 | createTask + createTaskTarget |
:329 | 自动化:商机创建后自动生成 3 天到期的跟进任务 |
Bridge 把 Twenty 当成「线索落地库 + 自动化起点」——不仅结构化存储销售线索,还自动触发跟进流程。
商机创建的触发条件
Bridge 用 EXTRACT_SYSTEM(server.js:516)对每轮对话做信息提取,判断 ready=true 需要三要素齐全:
- 公司名 — Company name(任意语言)
- 联系方式 — Email 或 Phone,或联系人姓名
- 产品/需求 — 客户感兴趣的产品或采购意向
三者缺任何一个,ready=false,继续对话收集,不创建商机。
二、Twenty CRM 完整数据对象
当前 workspace(workspace_6o1rsmnm23f20gpxxzby7wab2)包含 28 个数据表:
当前已用(Bridge 自动写入) 未使用(可手动操作或扩展自动化)
┌──────────────────────────┐ ┌────────────────────────────────────┐
│ ✅ company 公司 │ │ 📅 calendarEvent 日历/会议 │
│ ✅ person 联系人 │ │ 📧 message 邮件消息 │
│ ✅ opportunity 商机 │ │ 📞 callRecording 通话录音 │
│ ✅ note 笔记 │ │ 🔄 workflow 自动化工作流 │
│ ✅ noteTarget 笔记关联 │ │ 📊 dashboard 仪表盘/报表 │
│ ✅ task 跟进任务 │ │ 👥 workspaceMember 团队成员 │
│ ✅ taskTarget 任务关联 │ │ 🚫 blocklist 屏蔽名单 │
└──────────────────────────┘ │ 📎 attachment 附件 │
│ 📝 messageCampaign 邮件营销 │
│ 🕐 timelineActivity 活动时间线 │
└────────────────────────────────────┘
三、未使用功能详解
1. 任务管理(Task)— 跟进客户
给商机/联系人创建跟进任务,是商机转化为真实订单的关键环节。
典型用法:
- "明天回电 Sophie 确认戒指款式"
- "本周五前寄出报价单"
- 设置截止日期、负责人、优先级
位置:Twenty 网页 → 左侧导航 Tasks
2. 日历(Calendar)— 安排会议
- 关联到联系人/商机
- 记录客户会议、产品演示时间
- 支持 Google/Microsoft 日历集成(需额外配置 OAuth)
位置:Twenty 网页 → 左侧导航 Calendar
3. 消息/邮件(Message)— 统一收件箱
- 集成 Gmail/Outlook,直接在 CRM 里收发邮件
- 所有客户沟通集中管理,不再散落各处
- 邮件营销(MessageCampaign)支持群发
位置:Twenty 网页 → 左侧导航 Messages
4. 自动化工作流(Workflow)— 最强大的未用功能
自动触发规则,目前完全没用上,潜力巨大。
典型场景:
- "新商机创建 → 自动通知负责人 + 创建 3 天后跟进任务"
- "商机阶段变为 PROPOSAL → 自动发邮件给客户"
- "商机金额 > €5000 → 自动提升优先级 + 通知销售经理"
位置:Twenty 网页 → Settings → Workflows
5. 仪表盘(Dashboard)— 数据可视化
- 销售漏斗(各阶段商机数量/金额)
- 自定义视图、过滤器、图表
- 月度/季度业绩统计
位置:Twenty 网页 → 左侧导航 Dashboards
6. 自定义字段 — Twenty 的杀手锏
可以给任何对象(Company/Person/Opportunity)添加自定义字段:
- 客户行业、Jewelry 偏好材质、年采购量、首次接触渠道
- 当前 Bridge 提取的字段是固定的,可通过扩展
EXTRACT_SYSTEM来填充自定义字段
位置:Twenty 网页 → Settings → Object 某个对象 → Fields
四、网页界面导航
http://localhost:3000 → 登录后左侧导航栏:
📊 Dashboards 仪表盘
🏢 Companies 公司列表
👤 People 联系人
💼 Opportunities 商机 ← Bridge 自动创建的数据在这里
✅ Tasks 任务
📅 Calendar 日历
📧 Messages 消息
⚙️ Settings 设置 ← 工作流 / 自定义字段 / 团队成员
点开任意商机(如 Nordic Retail AB),可见多个标签页:
- Notes — 笔记(Bridge 自动写入的聊天记录)
- Tasks — 关联任务
- Timeline — 活动时间线
- People — 关联联系人
五、API Key 与认证配置
Bridge 通过 GraphQL API 访问 Twenty,认证链路:
twenty.config.json
├── baseURL: http://localhost:3000
├── graphqlPath: /graphql
├── workspaceId: 70a1901c-45ab-4b95-a7f0-de74be819b2e
└── apiKey: <ES256 JWT,kid=2b878cf8...>
JWT 结构(bridge/twenty.config.json 里的 apiKey):
{
"alg": "ES256", "typ": "JWT", "kid": "2b878cf8-7d35-4906-899f-a0439b1c2116"
}
// payload:
{
"sub": "70a1901c-45ab-4b95-a7f0-de74be819b2e", // = workspaceId
"type": "API_KEY",
"workspaceId": "70a1901c-45ab-4b95-a7f0-de74be819b2e",
"iat": 1784878461,
"exp": 4922899200,
"jti": "556d9fc0-7f32-4a5b-b041-78b30242cefb" // = apiKey 表的 id
}
API Key 的两个必要绑定(缺一不可):
core."apiKey"表:记录 apiKey id → workspaceIdcore."roleTarget"表:记录 apiKeyId → roleId(绑定权限角色,否则报INVALID_AUTH_CONTEXT)
如需重新生成 API Key,参考项目根目录的
gen_apikey.js脚本(用 HKDF 解密签名密钥后签发 JWT)。
六、扩展建议
已实现(✅)
| 扩展 | 做法 | 代码位置 | 价值 |
|---|---|---|---|
| 商机自动创建跟进任务 | Bridge 在 createLeadInCRM 里商机创建后自动建 Task |
server.js:329 |
商机不遗漏跟进 |
自动跟进任务的工作方式
商机创建成功后,Bridge 自动执行(server.js createLeadInCRM 函数内):
- 创建一条 Task,标题
跟进商机: <商机名> - 任务内容包含:客户公司、联系人、需求摘要、行动指引(3 个工作日内联系)
- 设置到期日为 3 天后
- 通过
createTaskTarget把 Task 关联到刚创建的 Opportunity
触发日志示例(bridge 日志中可见):
[workflow] conv=3 opp=b3ab3af2... -> 自动创建跟进任务 fcd6f300... (3天后到期)
[CRM✓] conv=3 建线索: {新公司 + 新联系人 + 新商机} (新公司) (新联系人)
注意:本自动化在 Bridge 层实现,而非 Twenty 内置 Workflow 引擎。原因是 Twenty 的 API key 权限不支持通过 GraphQL 创建
workflowVersion(报FORBIDDEN)。Bridge 层实现更可控、日志透明。如需更复杂的可视化编排,可在 Twenty 网页 Settings → Workflows 通过 UI 创建。
短期(低成本,高收益)
| 扩展 | 做法 | 价值 |
|---|---|---|
| 商机金额自动填充 | 扩展 EXTRACT_SYSTEM,让 LLM 估算 unit price × quantity |
漏斗金额更准确 |
| 自定义字段:客户行业 | Twenty 加字段 + Bridge EXTRACT_SYSTEM 提取 |
销售分群分析 |
| 商机阶段自动推进 | Bridge 根据"是否提供报价/是否确认订单"调用 updateOpportunity 改 stage |
漏斗自动化 |
中期(需开发)
| 扩展 | 做法 | 价值 |
|---|---|---|
| 销售漏斗仪表盘 | Twenty Dashboard 配置 | 可视化业绩 |
| 双向同步 | Bridge 读 Twenty(如查客户历史商机) | AI 回复更智能 |
| 邮件集成 | Twenty Settings 配置 Gmail/Outlook OAuth | 统一沟通 |
最后更新:2026-07-24(新增:自动化跟进任务功能)
相关文件:bridge/server.js(GraphQL 调用 + 自动化工作流)、bridge/twenty.config.json(连接配置)、gen_apikey.js(API Key 生成)、create_workflow.js(工作流创建脚本)