Twenty:面向AI时代的开源Salesforce替代方案
速览
Twenty是一款基于TypeScript构建的开源客户关系管理(CRM)平台,专为AI集成而设计。它提供高度可定制的数据模型和现代化的用户界面,支持开发者通过API轻松扩展功能,适用于需要灵活数据管理且重视数据隐私的团队。
AI 深度解读
这是什么
Twenty 是一个开源的、以代码为中心(Code-first)的 CRM(客户关系管理)构建平台。它不仅仅是一个现成的 CRM 软件,更提供了一套完整的底层“积木”,允许技术团队像开发普通软件栈一样,自定义、构建、部署和版本控制自己的 CRM 系统。
该项目由 TypeScript 驱动,旨在弥合传统 CRM 软件灵活性不足与自研系统开发成本高昂之间的鸿沟。通过提供标准化的对象、视图、工作流和智能体(Agents)模块,Twenty 让企业能够以极低的门槛快速搭建符合复杂业务需求的定制化 CRM,并随着业务演进快速迭代。
解决的问题
传统 CRM 解决方案通常面临以下痛点,Twenty 旨在逐一攻克:
- 灵活性缺失:SaaS 类 CRM(如 Salesforce、HubSpot)虽然功能强大,但字段、流程往往固化,难以适配高度垂直或独特的业务逻辑,且二次开发受限。
- 自研成本高昂:从零开始构建 CRM 需要投入大量后端基础设施、数据库设计及前端 UI 开发资源,且后续维护负担重。
- 版本控制与协作断层:传统 CRM 的配置通常存储在数据库中,缺乏 Git 式的版本控制,导致配置变更难以追溯、回滚或进行团队协作审查。
- 基础设施负担:部署和维护一套完整的 CRM 系统需要处理数据库、缓存、消息队列等复杂的基础设施运维工作。
Twenty 通过“基础设施即代码”的理念,将 CRM 的配置(对象、字段、视图)转化为代码文件,从而实现了配置的版本化、可测试性和可复用性。
核心功能
-
代码定义对象与字段: 开发者可以使用 TypeScript SDK (
twenty-sdk) 以声明式的方式定义 CRM 的核心数据模型。例如,定义一个“交易(Deal)”对象,包含名称、金额、关闭日期等字段,并指定其数据类型(文本、货币、日期时间等)。import { defineObject, FieldType } from 'twenty-sdk/define'; export default defineObject({ nameSingular: 'deal', fields: [ { name: 'amount', label: 'Amount', type: FieldType.CURRENCY }, // ... ], }); -
CLI 快速脚手架与发布: 提供
create-twenty-app命令快速初始化项目,并通过twenty app:publish将定义好的应用模块发布到工作区,实现配置的即时生效。 -
现代技术栈架构:
- 前端:基于 React,使用 Jotai 进行状态管理,Linaria 进行样式隔离,Lingui 处理国际化。
- 后端:基于 NestJS 框架,集成 BullMQ 处理异步任务,PostgreSQL 作为主数据库,Redis 作为缓存和消息代理。
- 工程化:使用 Nx 进行 monorepo 管理,确保前后端代码的高效协同。
-
可视化与扩展能力: 除了代码定义,平台还提供可视化的界面来管理对象、视图、工作流和智能体。支持通过代码扩展逻辑函数(Logic Functions)和智能体(Agents),满足自动化业务场景的需求。
-
多环境部署支持: 支持通过 Docker Compose 在自有基础设施上私有化部署,也支持通过
twenty.com注册账号快速体验云端版本,无需管理底层基础设施。
亮点 / 与同类相比
-
“GitOps” 式的 CRM 开发体验: 这是 Twenty 最大的差异化亮点。它将 CRM 的配置视为代码,支持 Git 版本控制、Pull Request 审查和 CI/CD 流水线。这意味着 CRM 的变更可以像软件代码一样被追踪、测试和回滚,极大地提升了企业级应用的可靠性。
-
开箱即用的现代化技术栈: 相比许多老旧的 CRM 框架,Twenty 采用了当前最流行的 TypeScript + React + NestJS 技术栈,对开发者友好,招聘和维护成本相对较低。
-
平衡了灵活性与易用性: 既有 SaaS CRM 的快速上手体验(注册即用),又有自研系统的完全控制权。通过 CLI 和 SDK,开发者可以专注于业务逻辑,而非基础设施搭建。
-
开源与社区驱动: 作为开源项目,Twenty 拥有活跃的社区(Discord, GitHub),并提供 Figma 设计资源,方便设计师和开发者协作。其路线图(Roadmap)公开透明,用户可以直接参与功能建议。
适合谁用 / 上手
适合人群:
- 技术团队/CTO:需要为业务部门定制 CRM,但又不想从零开始构建底层架构的技术负责人。
- 全栈开发者:熟悉 TypeScript、React 和 NestJS 的开发者,希望快速搭建数据密集型应用。
- 中大型企业 IT 部门:对数据主权、私有化部署有严格要求,同时需要高度定制化业务流程的企业。
- SaaS 初创公司:希望将 CRM 作为核心产品的一部分,并需要深度集成到自身产品生态中的团队。
如何上手:
-
快速体验(零代码): 访问 twenty.com 注册账号,即可在 1 分钟内创建一个工作区,体验完整的 CRM 功能,无需任何基础设施配置。
-
本地开发(代码模式): 使用 CLI 快速生成项目:
npx create-twenty-app my-app然后按照本地设置指南(Local Setup Guide)配置 Docker 环境,即可在本地运行和开发。
-
深入学习:
- 用户指南:了解产品功能和使用流程。
- 开发者文档:深入理解对象、视图、智能体和逻辑函数的代码实现细节。
- Figma 资源:获取设计组件和界面规范,便于 UI/UX 定制。
