Skip to content
··阅读时间5分钟

营销团队本来就协作。现在 STRATUM 也做到了。

我在 alpha 阶段、用户不到 50 人时就上线了团队协作功能,因为我的客户早就在团队里协作了——只是用截图和复制粘贴这些低效替代方案,每年要多花 80+ 小时。

“你还在 alpha 阶段,为什么就开始做团队功能?”

这是个很合理的问题。我的用户还不到 50。大多数 SaaS 创始人会先把重心放在冲到 100 用户,再去考虑团队协作。

但我观察 alpha 用户时发现:他们根本不是单兵作战。营销总监会把截图发给 CEO。代理公司老板会把 AI 输出复制到 WhatsApp 发给朋友。创始人会把邮件转发给妻子。

我在广告行业干了 18 年,这本不该让我意外。营销工作从来不是一个人完成的。我亲眼见过整个代理公司楼层靠 Slack 线程、邮件转发和“你能帮我截个图吗?”这种请求来推进协作。团队现实就是这样运作的,而且非常痛苦。所以当我在 alpha 里看到同样模式时,我知道我不能忽视它。

于是我在 alpha 阶段就做了团队协作功能。那些“更聪明”的创始人可能会等,但我没有。 :P

下面是我上线了什么、为什么这样做,以及一路上的经验:

1. 让每个人拿到正确权限15 个角色,按 SME 和代理公司团队真实工作方式设计,并为代理公司提供客户级隔离

2. 少来回,直接协作 — 审批、评论、任务、通知,替代“你看到我消息了吗?”这类 Slack 拉扯

3. 新人 30 秒进入工作状态 — 邀请 → 分配角色 → 开始工作。30 秒,不是 3 天。

以下是这次交付的内容、它对团队为何重要,以及让它真正可用的关键决策。

---

“直接共享登录” 的真实成本

在这些功能上线前,团队是这样使用 STRATUM 的:

方案 A:共享账号密码(安全灾难)

- 所有人用同一个登录

- 完全不知道谁做了什么

- 一个人改密码,所有人都被锁在外面

方案 B:各自独立账号(昂贵且割裂)

- 每个人单独付费

- AI 输出分散在不同账号

- “你能把那份策略导出发我吗?”

方案 C:截图和粘贴(现实情况)

- 一个人运行 AI agents

- 再截图或复制粘贴给队友

- 上下文丢失、格式损坏、没人能在原有结果上继续推进

这些都不是真正的协作,只是权宜之计。

业务成本呢? 我看到一位代理公司老板每天要花 20 分钟,只为了在不同工具之间搬运 AI 输出——转发邮件、在 Google Docs 里重新排版、给看不到原始对话的队友重新解释上下文。

一年就是 80+ 小时。一个人。一个团队。

---

功能 1:让每个人拿到正确权限,而不是把 IT 复杂度丢给你

在代理公司做了 18 年后,我非常清楚营销团队如何运作:不同的人,对不同内容,需要不同权限。

高级策略师负责 Client A 和 Client B。初级分析师在小账户上练手。自由职业创意只接触被分配的客户。最重要的是,任何人都不该看到不属于自己的客户数据。

这不只是成本控制问题(虽然也重要),而是团队真实工作的方式。

两套权限模型:SME vs Agency

我很早就意识到,3 人创业团队和 15 人代理公司的工作流完全不同。硬塞进一个权限模型会非常糟糕——我见过很多企业工具这么做,结果总是小团队被复杂度淹没,大团队又拿不到足够控制权。所以我做了两套独立模型。

SME team management: 5 roles designed for small marketing teams

SME 角色(5 个)

面向层级更简单的中小企业营销团队:

| 角色 | Agent 访问 | Campaign 访问 | 团队管理 |

|------|-------------|-----------------|-----------------|

| Owner | 全部 8 个 agents | 完整权限(创建、编辑、运行、归档) | 邀请、管理、移除 |

| Marketing Director | Strategy、Persona、Content、Quick Wins(4) | 创建、编辑、运行 campaign | 仅查看团队 |

| Marketing Manager | Execution、Content、Quick Wins(3) | 创建、编辑、运行 campaign | 无 |

| Analyst | Performance Intelligence(1) | 仅查看 | 无 |

| Viewer | 无(只读) | 仅查看 | 无 |

为什么是这 5 个? 因为这就是我在 SME 营销团队里看到的真实分工:什么都要管的 Owner;制定策略的 Director;负责执行的 Manager;负责衡量的 Analyst;以及只需要查看进展的 VA 或财务人员。

Agency 角色(10 个)

Agency team management: 10 roles with client-scoped permissions

面向管理多个客户、团队结构更复杂的代理公司:

| 角色 | Agent 访问 | 客户范围 | 关键权限 |

|------|-------------|--------------|-----------------|

| Owner | 全部 9 个 agents | 全部客户 | 全控制,含计费 |

| Admin | 全部 9 个 agents | 全部客户 | 团队管理,不含计费 |

| Strategist | 8 个 agents(不含 Client Success) | 全部客户 | 策略与 campaign |

| Account Manager | 全部 9 个 agents | 仅已分配客户* | 负责客户的完整权限 |

| Campaign Manager | Quick Start、Content、Campaign(3) | 全部客户 | 专注执行 |

| Analyst | Performance Intelligence(1) | 全部客户 | 分析与导出 |

| Creative | Content(1) | 全部客户 | 仅内容创作 |

| Client Viewer | 无 | 仅已分配客户* | 客户只读 |

| Freelancer | Content(1) | 仅已分配客户* | 限定范围、临时权限 |

| Viewer | 无 | 全部客户 | 全局只读 |

客户范围角色(Client-scoped roles)

这是代理公司的关键能力。当你把 Account Manager 分配到 Client A 时,他从系统层面就看不到 Client B 的数据。不是“UI 隐藏一下”,而是数据库级别强制执行。

客户分配管理

Granular client assignment: choose "All Clients" or select specific clients for each team member

对于代理公司团队,Team Management 页面现在有 Client Access 列,你可以一眼看到每个成员可访问哪些客户。点击任意成员的操作菜单即可:

- 授予 “All Clients” 访问权: 新客户会自动对其可见

- 分配特定客户: 精确选择他该看到哪些客户

- 随时更新分配: 客户名单变化时即时调整

这意味着你负责 Client A 的 Account Manager,真的看不到 Client B 的看板、campaign 或 AI 输出——即便他尝试访问。过滤在数据库层完成,而不是只在 UI 做样子。

新人入职时: 邀请流程里可以一次性设置角色和客户范围。没有额外步骤,也不会忘记做访问限制。

权限感知 UI(Permission-Aware UI)

这件事能真正落地的原因是:界面会根据你的角色自动调整

Agency Owner sees all 9 agents as clickable links

Agency Creative sees only Content agent enabled—others are visible but locked

如果你没有邀请成员权限,就看不到 Team 设置。没有客户权限,客户不会出现在你的看板里。不能运行某个 agent,就会显示锁定和明确提示。

不会再出现“先点了才报错”。也不会再困惑“我看得见这个,为什么什么都做不了?”

给 Agency Directors: 创意团队看到的是干净、聚焦的界面,只保留他们需要的工具。培训更少,失误更少。

给 Founders: 你给 VA 的 viewer 角色会看到简化看板。他们能快速找到并复制需要的信息,不会被复杂界面淹没。

37 个细粒度权限(你不用手动配置)

这些角色背后有 37 个独立权限,但你不需要手动逐项设置。每个角色都已按营销团队的真实工作模式预配置:

| 类别 | 为什么重要 |

|----------|----------------|

| AI Agents(9) | 你的 Creative 不会误跑 Strategy agent 到错误客户上 |

| Campaigns(6) | Analyst 可以查看 campaign 做分析,但不会误归档 |

| Clients(5) | 只有 Owner 和 Admin 可以新增客户,防止数据无序扩散 |

| Analytics(3) | 每个人都能看基础数据;只有分析角色可导出原始数据 |

| Documents(3) | 保护敏感上传内容,VA 可看但不能删 |

| Organization(4) | 计费权限只给 Owner,避免“谁改了套餐?” |

| Team(3) | 管理者不能绕过 Owner 随便拉人进来 |

| Workspace(2) | 保持工作区有序,避免人人随意新建 |

| Admin(2) | 系统级操作只留给真正懂的人 |

每个角色只拿完成工作所需的权限,不多不少。你只需选一次角色,权限会自动跟随。

---

功能 2:别再追截图和 Slack 线程

这是我个人投入最深的一块。权限解决的是谁能做什么,协作解决的是如何一起做事。按我的经验,真正吞噬你一天的,是来回沟通成本。我在代理公司这边活过这个问题二十年了。 :D

共享 Campaign 与 AI 输出

旧模式: 你的 campaign、你的 AI 输出、你的信息孤岛。

新模式: 组织级协作。

当策略师运行 Persona Agent 后,这个 persona 归组织所有,不归个人账号。现在你的文案人员可以:

- 无需截图,直接查看 persona

- 运行 Content Agent 时直接引用

- 在已有成果上继续推进,而不是从零开始

当分析师生成竞品分析时,Marketing Director 可以直接在原上下文里评审,而不是看一份被转发出来的 PDF。

审批工作流

内容不是“生成完就结束”,而是上线前要经过评审和审批。

| 工作流 | 发起人 | 审批人 | 适用场景 |

|----------|-----------|-------------|----------|

| SME Campaign Launch | Manager | Director → Owner | campaign 双层审批 |

| SME Content Publish | Manager | Director | 内容单层审批 |

| Agency Campaign Launch | Campaign Manager | Strategist → Owner | 客户项目双层审批 |

| Agency Content (Client) | Creative | Account Manager | 客户范围内内容审批 |

| Freelancer Work | Freelancer | Account Manager | 外部协作者成果审核 |

流程是这样的:

1. 创意完成内容后点击 “Request Approval”

2. Account Manager 收到通知并在上下文中查看

3. 选择批准、驳回或要求修改,并附上说明

4. 创意收到处理结果通知

5. 若要求修改 → 改完再次提交(支持轮次追踪)

Request approval directly from any output—assign to teammates, set priority and due dates

Requesters see status updates—"Awaiting Approval" with assigned reviewer

Pending approvals appear on your dashboard with priority indicators and context

Real-time notifications alert reviewers when their input is needed

Review content in context with Approve, Request Changes, or Reject options

Approved content shows reviewer notes and resolution timestamp

不再需要在 Slack 里追问:“你看到我发的 Client A 文案邮件了吗?”

评论与 @提及

把讨论放在 AI 产出本身,而不是散落在会丢失的 Slack 线程里。

Built-in comments with @mentions—discuss work in context, not scattered across Slack

- 线程化评论:可挂在任意 campaign、output 或 persona 上

- @提及:精准通知相关成员

- 已解决追踪:知道哪些问题已处理

- 客户范围限制:对代理公司而言,自由职业者只看得到其被分配客户下的评论

任务分配

对 SME 营销总监: 别再用表格追踪谁在做什么。可直接从输出页面分配内容创作、评审和 campaign 任务;团队看到自己的待办,你看到整体状态。

对代理公司 Account Manager: 让客户交付持续可控。可在自己负责的客户范围内分配任务、设置优先级与截止日期,并第一时间知道哪里被卡住。

工作方式:

- 任务类型: 内容创作、评审、分析、campaign 设置

- 优先级: 低、普通、高、紧急

- 截止日期: 临近超期前自动提醒

- 关联资源: 任务直连具体 campaign 或 output,不再“我们到底在说哪份文档?”

- 状态追踪: 待办 → 进行中 → 待审核 → 已完成

角色层级确保边界清晰:Account Manager 只在自己客户范围内分配,Director 给自己的团队分配,Owner 可给所有人分配。

实时通知:不会错过任何需要你处理的事

给忙碌的 Marketing Director 和 Agency Owner: 不必每 5 分钟刷一次 Slack 猜有没有人找你。STRATUM 会在你该介入时直接告诉你:

- 有人请求你的审批 → 立即可见

- 你的审批请求已处理 → 不用再猜“对方看到了吗?”

- 评论里 @你了 → 相关讨论直接触达

- 有任务分配给你 → 自动进入你的工作队列

- 截止时间将近 → 延误前收到提醒

通知会在应用内实时出现;如果你错过了,也会汇总进邮件摘要。

---

功能 3:新人 30 秒上手,不是 3 天

Select role when inviting—they get the right permissions immediately

之前: 新成员加入流程是这样的:

1. 他们先自己注册

2. 你发邮件给我,让我手动把他们加进组织

3. 我在数据库里分配角色

4. 他们登录,然后……也许能用?

现在:

1. Settings → Team → Invite

2. 输入邮箱,选择角色

3. 对方点击链接,设置密码

4. 立即加入,且权限正确

为什么 30 秒很重要

对要给新分析师做入职的营销总监来说:他们可以 Day 1 就开始产出,不是 Day 3。

对临时加创意自由职业者的代理公司老板来说:不需要 IT 工单,不需要等待,不需要“我明天再处理”。

对要拉 VA 进来的创始人来说:你发一条 Slack 的时间,就能给出只读权限。

支撑这一点的技术选择

很多平台会走邮箱确认链路:邀请 → 确认邮件 → 点链接 → 设置密码 → 再确认 → 最后登录。

我去掉了这一步里冗余的二次确认。你能收到邀请邮件,已经证明你拥有这个邮箱。没必要让你验证两次。

邀请链接是安全的,详情保存在服务器端(不是放在 URL 参数里让人可篡改),并且 7 天过期。你接受邀请时,系统一步完成:

1. 创建账号

2. 加入正确组织

3. 分配角色权限

任何一步失败,全部回滚。不会留下半成品账号,不会出现权限缺失,也不会再有“我邀请了他但他什么都看不到”的支持工单。

---

分层防御:我如何做数据隔离

我知道这部分可能比大多数读者需要的更技术一些,但我认为有必要公开透明地讲清楚我对安全的思路——尤其是代理公司用户把客户数据交给我时。STRATUM 仍在 private alpha,但这不代表我会在架构上走捷径。数据隔离从 Day 1 就是核心设计,而不是后补。下面是分层方案:

第 1 层:数据库级强制(Row Level Security)

权限不是只在应用代码里判断,而是由数据库本身通过 Postgres Row Level Security (RLS) 强制执行。每个查询都会自动按 organization 过滤。你的分析师看不到其他组织数据,因为数据库根本不会返回,即使应用层发出了请求。

针对 client-scoped 角色,还会有第二层 RLS 按已分配客户过滤。负责 Client A 的 Account Manager,就算自己构造 API 请求,也拿不到 Client B 的数据。

第 2 层:应用层权限检查

UI 也遵循同一套权限规则。不能访问的客户不会出现在看板;不能运行的 agent 按钮会禁用。导航、按钮、页面都查同一个权限源,不会出现“UI 显示可用,API 却拒绝”的不一致。

第 3 层:原子事务

像“接受邀请”这样的关键操作,会作为单个数据库事务执行。创建账号、加入组织、分配角色、设置客户访问范围,要么全部成功,要么全部失败。没有半成品状态,也没有孤儿记录。

第 4 层:服务端密钥信息

邀请详情(组织、角色、客户分配)存放在服务器端,通过安全 token 引用。邀请 URL 只包含 token。篡改 URL 不会得到不同权限,因为真实权限在数据库里。

---

Alpha 透明说明: 我们有意识地构建了这些层,但我们仍是小团队,STRAŦUM 也在持续演进。完整说明请查看 Privacy PolicyTerms,了解 alpha 期间我们能保证和不能保证的边界。

---

为什么在 Alpha 阶段就做这些?

坦白讲:因为后补团队能力会非常痛苦。

我见过公司上线后再补 multi-tenancy。那是灾难。每张表都要加新字段。每条查询都要加新过滤。每个权限点都要重写。数据迁移过程极其惊险。

我在 Day 2 就把 STRATUM 做成 organization-scoped 数据架构(这会是另一篇文章)。底层已为团队准备好,剩下的是把功能真正做出来。

在 50 用户阶段做团队功能,意味着:

- 迭代快: 我能上线、拿反馈、几天内修复,而不是几个月

- 用法真实: 我看到的是团队真实协作方式,不是我想象出来的方式

- 无迁移风险: 没有既有团队流程会被突然打断

反过来,等到 1,000 用户再说“现在开始请把你们整个流程改成团队模式”,我觉得更糟。

现在就能试

团队功能已对所有 STRATUM 用户开放。

如果你是现有用户:

1. 打开 Settings → Team

2. 点击 “Invite Team Member”

3. 让他们 30 秒完成入组

如果你是新用户:

stratum.chandlernguyen.com 申请 alpha。申请时提到 “team collaboration”——我现在仍处在“和每位用户沟通”的阶段,很乐意带你走一遍这些功能如何适配你的团队。

---

这个不按常规出牌的下注

在 alpha 阶段做团队功能并不“主流”。大多数建议都说:先拿用户,再做协作。

但营销工作的现实就是团队协作。Marketing Director 不是独自做完策略。Agency Owner 也不是一个人跑完客户业务。协作不是“锦上添花”,而是工作本身。

从一开始就为团队构建,意味着 STRATUM 会和你一起成长。你可以先单人使用,准备好时邀请第一位同事,再扩展到完整代理公司团队,而无需换平台。

这个下注也许会错。但看着我的 alpha 用户因为无法共享而不断截图、复制粘贴来绕路……我并不这么认为。

归根结底,做产品是在为真实的人解决真实问题,而不是机械遵循“等到 1,000 用户再说”的增长剧本。相比追增长图表上的一个数字,我更愿意先把现在这 50 位用户真正需要的东西做好。

如果你正在带营销团队(或经营代理公司),我真的很想知道你今天是怎么协作的。你属于“截图+粘贴”派?“共享一个登录”派?还是有更好的方案?欢迎告诉我——我还在持续学习,每一次对话都在帮我把这个产品做得更好。

致敬,

Chandler

我也在做 DIALØGUE——如果你想看看我把同样“尽早为团队构建”的思路放到 AI 播客生成会发生什么,欢迎试试。

继续阅读

我的旅程
联系
语言
偏好设置