bullet.so+ make.com + Notion
你提到已经在使用 Make.com,这太好了!因为 Make 对 Bullet.so 和 Notion 都有原生支持,而且 Bullet.so 的 API 非常清晰。更重要的是,Bullet.so 官方文档明确提供了通过自动化工具(Zapier,原理与 Make 相同)实现这一流程的指南。
下面我把流程改成 Make.com 版本,方便你直接照着搭建。
一、准备工作
在开始搭建 Make 场景之前,你需要先准备好以下几样东西:
准备项 | 说明 | 获取方式 |
Bullet.so 站点 | 已启用 Membership 功能的 Bullet 网站 | 在 Bullet 后台 → Settings → Membership 中开启 |
Bullet API Key | 用于 Make 调用 Bullet API 管理用户 | Bullet 后台 → Dashboard → My Profile → 复制 API Key |
Bullet Site ID | 你的站点唯一标识 | Bullet 后台 URL 中可以找到,或通过 API 获取 |
Notion 数据库 | 用于存储客户专属页面 | 在 Notion 中创建 "客户项目" 数据库,并获取 Database ID |
Notion 集成密钥 | 让 Make 能读写 Notion | Notion 开发者后台创建 Integration,复制密钥 |
Make 账号 | 你已经有了 | 直接使用 |
二、核心流程设计
整个自动化流程分为 三个阶段,对应三个独立的 Make 场景:
场景 1:新用户注册 → 自动添加到 Bullet 并创建专属页面 场景 2:用户登录/访问 → 验证权限并展示专属内容(由 Bullet 原生处理,无需 Make) 场景 3:(可选)支付订阅 → 自动分配付费用户到对应 Segments
三、场景 1:新用户注册 → 自动创建客户专属页面
触发条件:Bullet 有新用户注册
Bullet.so 在 Make 中有官方集成。搜索并选择 Bullet 模块:
- Trigger:
Watch Members或New Member
- Connection: 连接你的 Bullet 账号(需要 API Key 和 Site ID)
配置示例:
- Site ID:你的 Bullet 站点 ID
- 触发条件:当有新成员加入时执行
如果你在 Make 的 Bullet 模块中没有找到Watch Members这个触发器,可以使用 Webhook 模块作为替代方案。Bullet 支持通过 API 接收用户注册事件,你可以设置一个 Webhook URL,在 Bullet 后台配置当新用户注册时向该 URL 发送请求。
动作 1:在 Notion 中创建客户专属页面
添加 Notion 模块 → 选择
Create a Database Item配置映射:
Notion 字段 | 值来源 |
页面标题 | 客户名称(来自 Bullet 的 member.name 或 member.email) |
客户邮箱 | member.email |
项目状态 | "进行中" |
专属页面 URL | 可以留空,或使用公式生成 |
动作 2:获取新创建的 Notion 页面 URL
Notion 页面创建成功后,API 会返回该页面的 URL。你需要将这个 URL 保存下来,用于后续关联。
动作 3:将用户添加到 Bullet 的特定 Segment
添加 Bullet 模块 → 选择
Add Member to Segment 或 Update Member注意:Bullet 的 API 要求
allowedSegments 中的 Segment 必须已经在后台手动创建。所以你需要先在 Bullet 后台创建好一个基础 Segment(例如 customer)。配置:
- Email:
member.email(来自触发器)
- Allowed Segments:
["customer"]
如果需要为每个客户创建专属 Segment,Bullet 的 API 不支持动态创建 Segment,你需要:
- 方案 A:在 Bullet 后台手动创建一批 Segment(如
client_001,client_002...),然后在 Make 中通过条件判断分配
- 方案 B:统一使用一个
customerSegment,通过页面内容本身来区分客户(推荐,更简单)
动作 4:(可选)将 Notion 页面 URL 更新到用户记录
某些场景下,你可能希望将客户的专属页面 URL 保存在 Bullet 的用户信息中。可以使用 Bullet 模块的
Update Member 功能:- 选择
Update Member
- 通过
member.email定位用户
- 在
metadata或自定义字段中写入 Notion 页面 URL
四、场景 2:用户登录后访问专属页面
这部分不需要 Make 自动化,由 Bullet 原生功能处理。
4.1 保护页面
在 Bullet 后台:
- 进入 Protected Pages
- 点击 Lock a Page or Folder
- 选择你的客户专属页面(或整个文件夹)
- 选择 "Segments-specific Restrictions"
- 勾选
customerSegment
4.2 设置登录后重定向
Bullet 的会员功能原生支持:
- 用户访问受保护页面 → 输入邮箱 → 收到 Magic Link → 点击登录
- 登录成功后,自动跳转到之前访问的页面
这样用户注册后,直接访问专属页面链接,就会自动触发注册流程,登录后直接看到自己的页面。
五、场景 3:付费订阅自动分配(可选)
如果客户需要付费才能访问,可以增加 Stripe 支付流程。
在 Bullet 后台创建付费 Segments
premium
vip
- 等
在 Make 中创建新场景
Trigger: Stripe →
Checkout Session CompletedAction 1: Bullet →
Add Member to Segment- 根据 Stripe 返回的 Price ID 或 Plan Name,映射到对应的 Bullet Segment
- 例如:
price_xxx→premium
Action 2: Notion →
Create Database Item- 为付费客户创建专属页面(内容更丰富)
处理订阅变更和取消
建议创建三个独立的 Make 场景:
场景 | 触发器 | 动作 |
新订阅 | Stripe - Checkout Session Completed | Bullet - 添加到对应 Segment |
订阅升级/降级 | Stripe - Customer Subscription Updated | Bullet - 移除旧 Segment,添加新 Segment |
订阅取消 | Stripe - Customer Subscription Deleted | Bullet - 从所有付费 Segment 中移除 |
六、完整工作流示意图
flowchart TB subgraph User["👤 用户流程"] A[客户访问网站] --> B[点击注册/访问专属页面] B --> C[输入邮箱] C --> D[收到 Magic Link] D --> E[点击登录] end subgraph Auto["⚙️ 自动化流程 (Make场景)"] F[Bullet触发器<br/>检测到新用户注册] F --> G[Notion动作<br/>创建专属页面] G --> H[Bullet动作<br/>将用户添加到Segment] end subgraph Access["🔐 权限控制 (Bullet原生)"] I[专属页面受Segment保护] E --> I I --> J{用户是否在<br/>customer Segment?} J -->|是| K[展示专属页面内容] J -->|否| L[显示登录/注册界面] end H -.-> J
七、Make 场景配置要点
配置项 | 说明 |
Bullet 连接 | 需要 API Key 和 Site ID。API Key 在 Bullet 后台 → My Profile 中获取 |
Notion 连接 | 需要 Integration Token 和 Database ID。Database ID 从 Notion 数据库 URL 中获取 |
错误处理 | 建议在 Make 中配置错误处理机制,例如当 API 调用失败时重试或发送通知 |
调度频率 | 如果是 Webhook 触发(推荐),设置为 Instant;如果是轮询,建议 5-15 分钟 |
八、Bullet API 关键限制
根据 Bullet 官方 API 文档,有两点需要注意:
- Segments 必须预先创建:API 不能动态创建新的 Segment。你需要在 Bullet 后台手动创建好所有可能用到的 Segments(如
customer,premium,vip等)
- 用户通过邮箱识别:所有用户管理操作都通过
email字段进行,确保 Stripe 和 Bullet 都收集了用户的邮箱
九、测试验证
在正式启用前,建议按以下步骤测试:
- 手动测试:在 Make 中点击 "Run once" 手动触发一次,验证流程
- 端到端测试:用一个测试邮箱在网站上完成完整注册流程,检查 Notion 是否自动创建页面,Bullet 是否正确分配 Segment
- 付费测试:如有 Stripe 集成,用测试卡完成一次购买,验证权限分配