
过去,做一个 CRM 系统需要:
现在,有了 AI,你需要的是:
✅ 业务逻辑梳理能力 - 清楚你的业务流程是什么✅ 工作流设计能力 - 把业务流程拆解成可执行的步骤✅ 提示词思维能力 - 能够用清晰的语言把需求告诉 AI✅ 沟通澄清能力 - 不断优化表达,让 AI 理解你的真实需求
我不是在教你写代码,而是在教你:
传统编程思维:
我需要写一个函数,接收参数 x,返回 yfunction(x) { return y; }提示词思维:
我需要管理客户信息,包括:- 客户基本信息(姓名、电话、邮箱)- 客户来源(线上、线下、转介绍)- 客户状态(潜在、跟进中、成交、流失)- 客户跟进记录(时间、内容、结果)请帮我设计一个数据结构来存储这些信息关键区别:
这篇文章里,我用到了:
但你可以替换成任何工具!
只要你掌握了:
换成 GPT + 其他框架,照样能做出来!
因为核心不是工具,而是思维!
这个项目我全程使用扣子空间来完成!扣子是字节跳动推出的 AI 智能体开发平台,可以快速创建 AI 助手,无需编程基础。
为什么要用扣子?
工具网址点击:
https://www.coze.cn/studio?invite_code=a544f79972774b1a9957a5341d0de215
痛点一:中小企业想上 CRM 系统,动不动几万甚至几十万,用不起!痛点二:开源的太复杂,配置一个环境就要搞半天痛点三:找外包开发,预算10万起步,周期至少3个月
我想:能不能用 AI 自己做一个?
答案是:可以!而且只要3天!
很多人问我:你 0 编程基础,3 天怎么做到的?
我的回答是:因为我花了很多时间在想,而不是在做!
这 3 天的时间分配:
| 总计:3 天 |
关键区别:
不是让 AI 替代你思考,而是用 AI 帮你实现你想清楚的
正确的流程:
1. 我思考清楚业务逻辑(思考)2. 我把逻辑表达给 AI(表达)3. AI 帮我生成代码(实现)4. 我验证是否符合预期(验证)5. 不断优化表达(迭代)错误的流程:
1. 我不知道要什么(迷茫)2. 我问 AI:帮我做一个 CRM(模糊)3. AI 给出一堆代码(混乱)4. 我看不懂,不知道怎么改(挫败)5. 放弃(失败)1. 学习数据库设计(1周) - 什么是主键、外键、索引 - 如何设计 ER 图 - 如何优化查询性能2. 学习后端开发(2周) - RESTful API 设计规范 - 如何写 CRUD 接口 - 如何处理异常3. 学习前端框架(2周) - React 组件化开发 - 状态管理 - 路由设计4. 写代码调试(2周) - 查阅文档 - 修复 bug - 优化代码总计:7周(35个工作日)1. 思考:客户管理需要什么?(30分钟) - 客户基本信息:姓名、电话、邮箱、公司 - 客户状态:潜在、跟进中、成交、流失 - 客户来源:线上、线下、转介绍 - 客户跟进记录:时间、内容、结果2. 表达:用提示词描述需求(10分钟)我需要做一个客户管理功能,包括:
请帮我设计数据库表结构和 API 接口
3. 验证:检查 AI 的输出是否符合预期(30分钟)- 查看数据库表是否包含所有字段- 查看接口设计是否合理- 如有问题,继续用提示词优化4. 迭代:让 AI 生成前端页面(30分钟)请帮我创建一个客户管理页面,包括:
总计:2小时| 时间 | ||
| 核心工作 | ||
| 关键能力 | ||
| 可复用性 | ||
| 学习成本 |
传统程序员在解决"怎么做"的问题
提示词思维在解决"要什么"的问题
AI 帮你解决了"怎么做"的问题!
模糊表达(❌):
帮我做一个订单管理功能清晰表达(✅):
我需要做一个订单管理功能,要求:1. 订单基本信息:订单号、客户、金额、状态2. 订单状态:待支付、已支付、已发货、已完成、已退款3. 支付方式:微信、支付宝、银行转账4. 发货信息:快递单号、物流状态请帮我设计数据库表和基本 API 接口混乱表达(❌):
我想要用户管理,还有角色,还有权限,用户可以有很多角色,每个角色有很多权限,还要能新增删除编辑...结构化表达(✅):
我需要实现权限管理,包括:1. 用户管理 - 用户基本信息:姓名、邮箱、手机 - 用户状态:启用、禁用2. 角色管理 - 角色名称、描述 - 角色状态3. 权限管理 - 权限名称、描述 - 权限分类4. 关系设计 - 一个用户可以有多个角色 - 一个角色可以有多个权限请给出:- 3个表的结构设计- 表之间的关联关系单一表达(❌):
帮我写一个登录接口全面表达(✅):
我需要实现登录功能,要求:1. 登录方式 - 邮箱 + 密码 - 手机号 + 验证码2. 登录成功后返回 - 用户基本信息 - 登录令牌(token) - 用户角色列表3. 安全要求 - 密码加密存储 - 登录失败次数限制 - Token 过期时间 24 小时4. 异常处理 - 账号不存在 - 密码错误 - 账号被禁用请给出完整的接口设计你现在就可以试试!打开 AI 工具,用上面的提示词练习一下!
https://www.coze.cn/studio?invite_code=a544f79972774b1a9957a5341d0de215
先看看我做出了什么:
✅ 多租户架构 - 一个系统支持多个公司独立使用✅ 客户管理 - 完整的客户生命周期管理✅ 销售漏斗 - 可视化商机跟踪,预测成交金额✅ 合同管理 - 合同签订、到期提醒✅ 支付管理 - 支付记录、逾期提醒✅ 权限系统 - 5种角色,精细化权限控制✅ 交互记录 - 完整的客户沟通历史✅ 工作流 - 自动化业务流程
15 个核心数据表,完整的业务闭环:
租户 → 用户 → 线索 → 客户 → 商机 → 合同 → 支付 ↓ 权限系统(角色 + 权限) ↓ 交互记录 + 工作流







每个步骤的核心都是:思考 → 表达 → 验证 → 迭代不是教你用工具,而是教你如何思考!
这一步的核心不是"学工具",而是:
提示词思维的关键:把模糊的想法变成清晰的问题
我想要做一个SaaS CRM系统,目标用户是中小型企业。请帮我梳理:1. 核心功能模块有哪些?(至少6个)2. 每个模块需要哪些功能点?3. 用户角色有哪些?每个角色的权限是什么?4. 数据表应该如何设计?5. 技术栈应该如何选择?要求:- 功能要实用,不追求大而全- 要支持多租户(一个系统多个公司用)- 要考虑后续扩展性- 输出思维导图结构这个提示词的设计逻辑:
关键:问题越具体,AI 的回答越准确!
核心模块:1. 租户管理(多租户基础)2. 用户管理 + 权限系统3. 客户管理(线索 + 客户)4. 销售流程(商机 + 合同 + 支付)5. 交互记录(客户沟通历史)6. 工作流(自动化流程)技术栈推荐:- 前端:Next.js 16 + React 19 + shadcn/ui- 数据库:PostgreSQL- ORM:Drizzle- UI:Tailwind CSS这一步的核心不是"学框架",而是:
提示词思维的关键:把技术需求翻译成 AI 能理解的语言
帮我初始化一个 Next.js 16 项目,要求:1. 使用 TypeScript2. 启用 src 目录3. 使用 Tailwind CSS4. 预装 shadcn/ui 组件库5. 配置好开发环境请给出完整的初始化命令和项目结构。这个提示词的设计逻辑:
关键:你不需要懂这些技术是做什么的,只需要知道"我需要这些配置"
就像你不需要懂汽车引擎原理,只需要知道:
技术细节让 AI 处理,你只需要提出需求!
coze init ${COZE_WORKSPACE_PATH} --template nextjs项目结构:src/├── app/ # 页面和路由├── components/ # 可复用组件│ └── ui/ # shadcn/ui 组件├── lib/ # 工具函数├── storage/ # 数据存储层└── styles/ # 样式文件这一步是整个项目的核心,花的时间最长:
提示词思维的关键:把业务逻辑翻译成数据结构
传统开发者:先写代码,再改数据库,反复修改AI 时代的我:先设计好数据库,后面的代码自动生成
原因:
我要为SaaS CRM系统设计数据库表,需要满足:1. 支持多租户(共享数据库、共享Schema)2. 包含租户、用户、角色、权限等基础表3. 包含线索、客户、商机、合同、支付等业务表4. 包含交互记录、工作流等辅助表请用 PostgreSQL 语法给出完整的建表 SQL,要求:1. 使用 UUID 作为主键2. 包含 created_at 和 updated_at 时间戳3. 为常用字段添加索引4. 添加外键约束5. 为每个字段添加注释输出格式:-- 表名:中文说明CREATE TABLE ...这个提示词的设计逻辑:
关键:
问题1:为什么需要多租户?
tenants 表问题2:用户和租户是什么关系?
users 表要有 tenant_id 外键问题3:销售流程是怎样的?
问题4:权限怎么控制?
roles、permissions、role_permissions 3个表这就是思考!不是写代码!
-- 租户表:存储租户信息CREATE TABLE tenants ( id VARCHAR(36) PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(255) NOT NULL, code VARCHAR(50) NOT NULL UNIQUE, status VARCHAR(20) DEFAULT 'active', subscription_plan VARCHAR(50) DEFAULT 'free', created_at TIMESTAMP DEFAULT NOW(), updated_at TIMESTAMP);-- 用户表:存储用户信息CREATE TABLE users ( id VARCHAR(36) PRIMARY KEY DEFAULT gen_random_uuid(), tenant_id VARCHAR(36), name VARCHAR(128) NOT NULL, email VARCHAR(255), status VARCHAR(20) DEFAULT 'active', created_at TIMESTAMP DEFAULT NOW());# 创建数据库连接# 执行建表 SQL使用 Drizzle ORM 定义 Schema,方便类型安全操作
我要用 Drizzle ORM 定义数据库 Schema,请帮我:1. 导入必要的类型和函数2. 定义 tenants 表3. 定义 users 表4. 定义 roles 表5. 定义 permissions 表6. 定义 leads 表7. 定义 customers 表8. 定义 opportunities 表9. 定义 contracts 表10. 定义 payments 表要求:- 使用 createInsertSchema 生成验证 Schema- 导出类型定义($inferSelect)- 为索引字段添加注释import { pgTable, varchar, integer, timestamp, index } from 'drizzle-orm/pg-core';export const tenants = pgTable( "tenants", { id: varchar("id", { length: 36 }).primaryKey(), name: varchar("name", { length: 255 }).notNull(), code: varchar("code", { length: 50 }).notNull().unique(), // ... 其他字段 }, (table) => ({ codeIdx: index("tenants_code_idx").on(table.code), }));export type Tenant = typeof tenants.$inferSelect;为每个表创建 Manager 类,封装 CRUD 操作
请帮我创建一个 Manager 类模板,要求:1. 包含 create、getById、getAll、update、delete 基础方法2. 支持条件查询(filters)3. 支持分页(limit, offset)4. 使用 TypeScript 类型5. 包含错误处理模板示例:class TenantManager { async createTenant(data: InsertTenant): Promise<Tenant> { // TODO: 实现 } async getTenantById(id: string): Promise<Tenant | null> { // TODO: 实现 }}export class TenantManager { async createTenant(data: InsertTenant): Promise<Tenant> { const [tenant] = await db.insert(tenants).values(data).returning(); return tenant; } async getTenants(filters?: { status?: string }): Promise<Tenant[]> { const query = db.select().from(tenants); if (filters?.status) { query.where(eq(tenants.status, filters.status)); } return await query; }}实现了 15 个 Manager 类:
使用 Next.js API Routes 提供后端接口
请帮我创建一个 Next.js API Route,实现租户的 CRUD 接口:1. GET /api/tenants - 获取租户列表2. POST /api/tenants - 创建租户3. GET /api/tenants/[id] - 获取单个租户4. PATCH /api/tenants/[id] - 更新租户5. DELETE /api/tenants/[id] - 删除租户要求:- 使用 TypeScript- 包含错误处理- 返回 JSON 格式- 添加请求验证// src/app/api/tenants/route.tsimport { NextRequest, NextResponse } from 'next/server';import { tenantManager } from '@/storage/database';export async function GET(request: NextRequest) { try { const tenants = await tenantManager.getTenants(); return NextResponse.json({ success: true, data: tenants }); } catch (error) { return NextResponse.json({ success: false, error: 'Internal server error' }, { status: 500 }); }}export async function POST(request: NextRequest) { try { const body = await request.json(); const tenant = await tenantManager.createTenant(body); return NextResponse.json({ success: true, data: tenant }); } catch (error) { return NextResponse.json({ success: false, error: 'Failed to create tenant' }, { status: 500 }); }}使用 shadcn/ui 组件快速构建页面
使用 shadcn/ui 组件,快速构建精美页面
请帮我创建一个登录页面,要求:1. 使用 shadcn/ui 组件(Card、Input、Button)2. 包含邮箱输入框3. 包含登录按钮4. 添加加载状态5. 添加错误提示6. 使用 Tailwind CSS 样式7. 响应式设计页面结构:- Logo 和标题- 登录表单- 提示信息请帮我创建一个 Dashboard 页面,要求:1. 使用 shadcn/ui 组件(Card、Tabs、Table)2. 展示关键指标(租户数、用户数、商机数)3. 包含侧边栏导航4. 包含数据表格5. 添加筛选和搜索功能6. 使用 React 状态管理// 登录页面export default function LoginPage() { const [email, setEmail] = useState(''); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(''); const handleLogin = async (e: React.FormEvent) => { e.preventDefault(); setIsLoading(true); try { const response = await fetch('/api/auth/check', { method: 'POST', body: JSON.stringify({ email }), }); const data = await response.json(); if (data.authorized) { router.push('/dashboard'); } else { setError(data.message); } } finally { setIsLoading(false); } }; return ( <Card> <CardHeader> <CardTitle>登录</CardTitle> </CardHeader> <CardContent> <Input value={email} onChange={(e) => setEmail(e.target.value)} /> <Button onClick={handleLogin}>登录</Button> </CardContent> </Card> );}实现 RBAC(基于角色的访问控制)
请帮我创建一个权限检查中间件,要求:1. 检查用户是否登录2. 检查用户是否有特定权限3. 返回 401 或 403 状态码4. 支持多个权限检查5. 使用 TypeScript 类型示例:export function requirePermission(permission: string) { return async (request: NextRequest) => { // TODO: 实现权限检查 };}使用 Recharts 图表库展示数据
请帮我创建一个销售漏斗图表,要求:1. 使用 Recharts 库2. 展示不同阶段的商机数量3. 使用漏斗样式4. 添加数据标签5. 支持点击事件阶段包括:qualification、proposal、negotiation、closed_won、closed_lost使用 Coze CLI 一键部署
一键部署,自动上线,无需手动配置服务器
请帮我创建部署配置文件,要求:1. 定义环境变量2. 配置数据库连接3. 配置构建命令4. 配置启动命令5. 添加健康检查请给出完整的 .coze 文件内容。[project]requires = ["nodejs-24"][dev]build = ["pnpm", "install"]run = ["pnpm", "run", "dev"][deploy]build = ["pnpm", "run", "build"]run = ["pnpm", "run", "start"]coze buildcoze start问题:一开始想用飞书多维表存储数据,结果 API 配置了三天,各种权限错误!
飞书 API 各种权限错误,配置了三天都搞不定
错误代码:
错误码 91403:无权限访问应用错误码 1254001:租户未授权错误码 1254302:表 ID 错误教训:
解决方案:❌ 放弃飞书 API✅ 改用 PostgreSQL 数据库(简单、快速、稳定)
AI 提示词(救命稻草):
飞书 API 一直报错 91403、1254001,我该如何排查?1. 检查应用权限配置2. 检查租户授权状态3. 检查表 ID 是否正确4. 给出完整的排查步骤问题:Schema 定义完成后,TypeScript 一直报类型错误!
TypeScript 报错,类型不匹配
错误信息:
Type 'number' is not assignable to type 'string | SQLWrapper'Property 'module' does not exist on type 'PgTableWithColumns'教训:
string 类型,不是 numbereq() 函数时,左右类型要一致解决方案:
// ❌ 错误async getTenantById(id: number) { ... }// ✅ 正确async getTenantById(id: string) { ... }问题:用户登录时显示"系统配置错误,请联系管理员"!
登录 API 报"系统配置错误",用户无法登录
根本原因:登录 API 依赖飞书环境变量,但项目已改用数据库方案
教训:
解决方案:重写登录 API,移除飞书依赖,直接查询数据库验证用户
问题:一开始设计时忘记给业务表添加 tenant_id 字段,导致数据混乱!
教训:
tenant_idtenant_id 过滤条件tenant_id 隔离解决方案:
-- 所有业务表都要添加 tenant_id 字段CREATE TABLE leads ( id VARCHAR(36) PRIMARY KEY, tenant_id VARCHAR(36) NOT NULL, -- 多租户隔离 customer_id VARCHAR(36), -- ...);问题:使用 shadcn/ui 组件时,样式不生效,页面很丑!
教训:
globals.css 中导入组件样式解决方案:
@tailwind base;@tailwind components;@tailwind utilities;┌─────────────────────────────────────┐│ 前端层 ││ Next.js 16 + React 19 + shadcn/ui │└─────────────────────────────────────┘ ↓┌─────────────────────────────────────┐│ API 层 ││ Next.js API Routes │└─────────────────────────────────────┘ ↓┌─────────────────────────────────────┐│ 业务逻辑层 ││ 15个 Manager 类 │└─────────────────────────────────────┘ ↓┌─────────────────────────────────────┐│ 数据访问层 ││ Drizzle ORM │└─────────────────────────────────────┘ ↓┌─────────────────────────────────────┐│ 数据库层 ││ PostgreSQL (15张表) │└─────────────────────────────────────┘3天时间,从0到1,完整企业级SaaS CRM系统基础搭建
编程语言(Java/Python)→ 框架(Spring/Django)→ 数据库 → 前端 → 运维学习曲线:1-2年适用场景:职业开发业务梳理 → 工作流设计 → 提示词表达 → 沟通澄清 → 迭代优化学习曲线:3天适用场景:所有需要解决问题的场景AI 时代,工具会过时,思维永不过时!
这 4 种能力,才是 AI 时代的核心竞争力!
这篇文章看起来是在教你做一个 CRM 系统,但实际上我想告诉你:
AI 时代,核心能力变了!
过去:
现在:
不是因为我学会了编程,而是因为:
这套流程,可以用在任何地方!
最后一句:
"在 AI 时代,不是技术取代了你,而是会用 AI 的人取代了不会用 AI 的人。"
但更重要的是:会用 AI,本质上是会思考和会表达!
你的思维,决定了你的未来!

