twenty 开源 CRM 实战:从 5 分钟部署到自定义字段与视图的完整指南
【免费下载链接】twentyThe open alternative to Salesforce, designed for AI.项目地址: https://gitcode.com/GitHub_Trending/tw/twenty
你负责的销售团队,是不是也卡在这样的 CRM 里:想加一个"续约日期"字段,销售运营说这属于定制需求,报价按人天算;数据导出时却发现字段命名是三年前的旧标准,谁也说不清含义。twenty 是一个开源的 CRM,你完全可以把它部署到自己的服务器或者笔记本上,像开发一个普通应用那样去定义数据对象、写自动化逻辑、改页面布局——代码进版本库,改坏了可以回滚。本文带你看清楚它怎么跑起来、日常怎么用、怎么改造成团队自己的工具,以及出问题去哪儿查。
1. 快速部署 twenty:三种方式按需选择
你能做什么:在一台有 Docker 的机器上,用一条命令或一套手工步骤,把完整的 CRM 实例跑起来,浏览器打开http://localhost:3000就能用。
方式一:一键脚本(推荐)
curl -fsSL https://gitcode.com/GitHub_Trending/tw/twenty/raw/branch/main/packages/twenty-docker/scripts/1-click.sh | bash这个脚本会自动拉取最新版本的安装程序并完成环境初始化;想锁定版本,可以在前面加VERSION=v0.32.4。
方式二:Docker Compose 手工部署
适合你想看清每一步在做什么的场景。先拿到环境模板:
curl -o .env https://raw.githubusercontent.com/twentyhq/twenty/refs/heads/main/packages/twenty-docker/.env.example然后重点改两处:用openssl rand -base64 32生成一个随机串填入ENCRYPTION_KEY(丢了它就解不出库里存的任何密钥,务必保管好),再设置PG_DATABASE_PASSWORD。接着下载编排文件并启动:
curl -o docker-compose.yml https://raw.githubusercontent.com/twentyhq/twenty/refs/heads/main/packages/twenty-docker/docker-compose.yml docker compose up -d三条命令分别完成:拉取环境模板、生成并填入密钥、启动容器组。机器内存至少留 2GB,不然进程会被挤崩。部署细节(比如给外网暴露服务时SERVER_URL怎么填、HTTPS 怎么配)可以看仓库里的 Docker Compose 自托管文档。
方式三:源码本地开发
如果你要贡献代码或者研究内部实现,走这条:
git clone https://gitcode.com/GitHub_Trending/tw/twenty cd twenty yarn install ./nx serve twenty-front最后一条命令启动前端开发服务器,整个仓库由 Nx 管理多包构建,前端在 packages/twenty-front/,后端服务在 packages/twenty-server/,共享类型在 packages/twenty-shared/。
2. 打开就能用的日常操作
部署完成、注册第一个账号(默认单工作区模式下第一个用户自动成为管理员),你面前已经是一套能用的 CRM:联系人、公司、交易等标准对象预置好了,每条记录有时间线,可以记笔记、挂任务。
视图是日常主战场。同一份数据可以切成表格、看板、日历三种形态——交易按阶段拖卡片走流程,日程按周看安排,列表里加过滤器和分组。配置存在你的工作区里,换台电脑登录还是你的样子。
仪表盘解决"这周怎么样"的问题:把对象上的数据聚合成图表,不用自己导出表格再透视。
AI 对话内置在工作区里,你直接用自然语言问"上个月金额最高的 5 笔交易是什么",它替你查数据:
工作流是自动化的入口:设置触发条件(比如新建一条记录、字段变更)加上一串动作(发通知、改字段、调外部接口),保存后后台自动执行。想给团队配自动提醒,从这里入手比写脚本省事得多。
命令菜单(按Cmd/Ctrl + K)是提效细节:跨对象搜索、快速跳转、执行常用动作,都在一个弹窗里完成。
3. 用代码改造数据模型:创建对象、字段与视图
能做什么:不再受限于"后台点出来的字段",把数据模型、逻辑、界面当代码来写,改一次同步到 CRM,还能进 Git 做版本管理。
流程分三步,每步一条命令:
npx create-twenty-app my-twenty-app生成一个 TypeScript 应用项目,目录里已经带好了示例配置和默认角色。
yarn twenty dev进入开发循环:它会起一个本地 Twenty 服务(Docker 容器,端口 2020),然后持续监听src/目录——你保存一个文件,几秒后改动就出现在 CRM 界面里。
写东西的粒度也很清楚,一个.ts文件对应一类"实体":
| 你想加的东西 | 对应实体 |
|---|---|
| 新业务对象和字段(如"发票") | Objects & Fields |
| 定时任务、响应数据库事件的逻辑 | Logic Functions |
| 嵌进侧边栏、命令菜单的界面块 | Front Components |
| 预配置好的列表视图和侧边导航 | Views & Navigation |
| 自定义记录详情页 | Page Layouts |
举个具体的:你不想每次手工抄会议纪要,就给"交易"对象加一个"纪要"文本字段,再配一个定时触发的 logic function 从外部源拉数据填进去——全程在my-twenty-app/src/里改文件,yarn twenty dev会自动同步。
想深入这块的实现,官方教程在 应用开发入门,数据模型部分参考 扩展对象文档。
4. 配置团队权限:角色、对象级与字段级控制
能做什么:不同岗位看到不同的数据——销售看不到毛利字段,客服只能读不能改,管理员管全局。
twenty 用基于角色的访问控制(RBAC):先建角色,再给角色分配权限,最后把成员挂到角色上。权限能细到两个层面:
- 对象级:这个角色能不能看/建/改/删"交易"这个对象;
- 字段级:某个字段对某角色只读、甚至隐藏。
配完之后,邀请成员进工作区时直接选角色即可。相关的文档在 权限与访问控制。
一个实用的分工思路:给"销售"角色放开联系人与交易的全部读写,把"公司"对象设为只读;给"市场"角色只留联系人读权限和邮件营销字段。这样新人入职当天领账号,权限边界就已经画好了。
5. 遇到问题怎么办:日志、文档与升级路径
按出问题的环节对号入座:
- 页面打不开 / 容器反复重启:先看 Docker 容器日志,八成是内存不足(再次提醒 2GB 是底线)或者
.env里密码特殊字符没处理;核对方法见 自托管故障排查文档。 - 应用开发时同步不上:确认
yarn twenty dev终端里的状态面板是不是绿的;认证问题重新走一次 OAuth 授权,具体情形参考 应用开发排错。 - 升级版本:自托管场景下官方给了专门的升级指南,说明哪些版本之间有配置迁移,在 升级指南 里按版本对查。
- 配置改错了:大部分配置(邮件、存储、集成)都可以直接在工作区的管理面板里改,改动十几秒内生效;只有数据库连接、
ENCRYPTION_KEY这类基础设施项才需要动.env并重启容器。
顺带一提,工作流"配了但没触发"这类问题,90% 是触发条件写得比实际数据粒度粗,先拿一条已知数据去验证条件是否命中,再谈其他。
6. 下一步:从试用到深度参与
- 今天就部署一个:按第 1 节方式一跑起来,用 30 分钟把团队现有的联系人数据导进去,感受一遍视图、工作流和 AI 对话。
- 把需求变成代码:挑一个"现在要提定制"的字段,照第 3 节的流程做成第一个 twenty 应用,体验"自己改自己的 CRM"。
- 参与社区:想贡献代码,先走 本地开发环境文档 把贡献环境搭起来;有想法或 bug,直接在仓库的 issue 区提交。官方文档入口在 packages/twenty-docs/,用户手册从 用户指南 开始读。
【免费下载链接】twentyThe open alternative to Salesforce, designed for AI.项目地址: https://gitcode.com/GitHub_Trending/tw/twenty
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考