Loops 产品调研:SaaS 团队如何使用 Dashboard 与 API
AI 参与说明(Agent:Grok):本文初稿根据 Loops 官网首页、定价页和官方文档(
loops.so/docs,包括 llms.txt 文档索引)整理,属于 AI 辅助生成内容。初稿资料核验日期为 2026-09-28。定价、限额和功能都可能变化,请以官方一手资料为准。完整模型标识与 reasoning effort 未取得可核验的运行记录。
修订说明(Agent:Codex):2026-09-28 根据 Loops 官方 Quickstart、产品指南和 API Reference,补充客户使用场景、Dashboard 操作路径、API 示例与验收方式,并修正免费档联系人范围等表述。本次在 Codex Desktop 执行;完整模型标识、reasoning effort 与运行时版本未取得运行记录。示例使用占位数据,未接入真实 Loops 账户发送邮件。
归档修订(2026-10-15,Agent:Codex):本文从 Posts 归入 App 栏目,保留原有正文、日期与标签;原有公开 URL 保持不变。运行记录:模型
gpt-6.1-sol,reasoning effortultra,执行入口 Codex Desktop,提供方openai;CLI 版本0.162.0-alpha.17.2(不代表桌面 App 版本)。
结论:Loops 面向需要同时运营产品邮件和发送交易邮件的 SaaS 团队。客户在 Dashboard 管理 Audience、设计 Campaign 和 Workflow、发布 Transactional 模板;应用服务端通过 API 同步联系人、发送业务 Event,或按模板发送 Transactional 邮件。产品经理与增长团队可以调整内容和受众,开发者负责把真实用户行为接进来。Loops 官网将其定位为营销、产品和交易邮件共用的平台。
本文按 2026-09-28 的官方 Quickstart和 API Reference整理。以下 Dashboard 路径来自官方说明;具体账户界面和投递结果仍须在自己的账户中核验。
先认识产品里的对象
| 英文术语 | 中文参考名称 | 在 Loops 中的作用 |
|---|---|---|
| Audience | 联系人受众 | 保存联系人、订阅状态和属性,供营销邮件选择收件人。 |
| Segment | 受众分群 | 保存筛选条件,联系人属性变化后自动更新匹配结果。 |
| Campaign | 单次群发 | 把一封邮件立即或定时发送给 Audience 或 Segment。 |
| Workflow | 自动邮件流程 | 由联系人变化或 Event 触发,按节点发送邮件、等待或分支。 |
| Event | 业务事件 | 应用或集成送给 Loops 的一次行为数据,可触发 Workflow。 |
| Transactional | 交易邮件 | 针对单个用户操作,由服务端 API 或集成发送的非推广邮件。 |
Campaigns send one email to an Audience or Segment. Workflows respond to contact changes or Events. Transactional emails serve individual actions and do not add new recipients to the Audience by default. Types of emails
这意味着 Campaign 适合产品更新,Workflow 适合欢迎与引导序列,Transactional 适合密码重置和收据。Transactional 不附营销退订链接,不记录打开和链接点击;新收件人默认不会触发 Contact added Workflow。已退订联系人仍能收到真正的 Transactional 邮件,因此不能把促销内容包装成 Transactional 发送。
一个客户会怎样使用 Loops
设想一家提供项目协作软件的 SaaS 公司。客户注册后需要欢迎引导,首次建项目后需要功能提示,申请重置密码时需要立即收到链接,产品升级后还要给当前活跃客户发一次更新。四件事可以落在同一个 Loops 账户里:
- 注册:应用通过 Form、API 或集成创建联系人;
Contact added触发欢迎 Workflow。 - 首次创建项目:应用向 Events API 发送
projectCreated;Event received触发功能引导 Workflow。 - 申请重置密码:服务端调用 Transactional API,传入已发布模板的 ID 和当次重置链接。
- 发布新功能:运营人员选择 Segment,写 Campaign,并在 Dashboard 排期发送。
Segment 是动态条件,不是导出后固定不变的名单;Workflow 依赖准确的联系人状态和 Event;Transactional 可以直接给不在 Audience 中的地址发送。Filters and Segments、Events和 Transactional分别说明了这些边界。
Dashboard 里由谁完成什么
- 运营或增长人员在 Audience 建 Segment,在 Campaigns 写群发内容并排期,在 Workflows 配置引导序列和查看指标。
- 开发者从
Settings → API获取密钥,在 Events 检查业务行为,在 Transactional 的API Details核对模板 ID 和变量,再完成服务端接入。 - 管理员验证发信域名、管理 Billing 与团队设置,确认账户的可发送范围。
Dashboard 是协作界面,API 负责把应用中的真实用户与业务动作接入。Loops 也提供 Stripe、Clerk、Supabase 等集成,可以在合适的场景减少自写同步代码;具体集成可提供哪些事件,仍应逐项核对。
按 Dashboard 流程完成第一次接入
1. 验证发信域名,准备 Audience
先在 Loops 的发信域名设置中取得账户生成的 DNS 记录,按指引添加 MX、TXT、CNAME,并等候验证通过。官方要求先完成域名设置才能发送邮件;不要把示例记录照抄到自己的 DNS。域名设置
若要发 Campaign 或 Workflow,进入 Audience,用 CSV 导入已有且具备发送依据的联系人,或通过 API、Form、集成持续同步。只发 Transactional 时,可以直接由 API 指定单个收件人,不必先导入 Audience。Form 页面可生成 HTML 或 JSX;需要确认订阅的表单可结合 Double opt-in。Double opt-in 只应用于 Form endpoints,不能假定直接调用 Contacts API 也会自动要求确认。官方 Quickstart
在 Audience 用联系人属性或 Campaign / Workflow 活动记录设置 Filter,点击 Save segment 保存 Segment。例如 plan = Pro 且 projects > 0 的“活跃付费客户”。发送时,Loops 会依据当时的联系人数据重新匹配条件;因此发送前应查看预计受众,而不是依赖几天前看到的人数。Filters and Segments
2. 做一封 Campaign:产品更新
按官方 Quickstart 的当前界面路径:
- 在 Home 点击
Create → Campaign,填写 Subject、Preview text 和正文;用编辑器预览邮件。 - 点击
Next,选择整个 Audience、已有 Segment,或添加 Audience filter。 - 再点击
Next,选择立即发送或定时发送。 - 若要衡量升级之类的业务结果,先到
Settings → Goals定义转化条件,再在仍处于 Draft 的 Campaign 的 Send 页面关联 Goal;发送或排期后不能补挂。Building your first goal - 在最终 Review 页核对发件人、正文、受众和时间;确认后点击
Schedule send。发送后查看发送、打开、点击与已关联 Goal 的转化指标。
真实 Campaign 会向所选受众发送。第一次操作时,先用预览与小范围测试 Segment 检查变量兜底、退订入口、链接和移动端排版,再扩大受众。
3. 做一个 Workflow:注册后的欢迎序列
在 Workflows → New 选择 Introduce yourself 模板,官方示例会建立 Contact added Trigger 和一封引导邮件;编辑内容后,右侧 Inspector 的校验通过,再点击 Start。需要多步引导时,可从画布连线上添加 Email、Timer、Audience filter、Branch 或 Experiment 节点。左侧 Build / Metrics 用于切换配置和查看结果;右侧 Inspector 显示所选节点的设置、状态和 Start / Pause。Workflows
如果要在“首次创建项目”后发邮件,把 Trigger 改为 Event received,选择应用发送的 projectCreated;当业务动作发生时调用 Events API。Contact added 对来源有边界:通过 API、Form 或集成加入的联系人可以触发,手工逐条加入 Audience 的联系人不会触发;CSV 导入还要选择 Trigger workflows。这决定了测试时应使用与生产一致的导入方式。Workflow triggers
测试 Workflow 可以使用 @example.com 或 @test.com 的测试联系人,修改属性或发送 Event,观察它们在流程中的移动;Loops 不会真正向这些域名投递邮件。需要检查邮件样式时,另用 Email 节点的预览发送功能。Testing workflows
4. 发布 Transactional:密码重置
在 Home → Create → Transactional 建立模板,插入名为 passwordResetLink 的 data variable;点击 Next,查看 API Details 中的请求示例与 transactionalId,然后 Publish。服务端在用户请求重置密码时调用 POST /v1/transactional,为这个变量提供当次生成的链接。Quickstart
Transactional 模板由 Dashboard 管理,发送动作由应用服务端决定。它不受收件人 subscribed 状态影响,也默认不把新地址加入 Audience。模板变量名称区分大小写,必需变量缺失会返回错误。已发布模板的后续编辑需要重新发布才会替换正在发送的版本。Transactional、Send a transactional email
5. 日常运营:Lists、Guardian 与 Metrics
当客户需要分别订阅“产品更新”和“活动通知”时,可在 Settings → Lists 建立 Mailing list,并决定 Public 或 Private。Loops 会在营销邮件中提供 Preference Center,让联系人自行管理可见列表的订阅。Segment 则适合团队内部按属性或活动记录筛选;两者解决的问题不同。List management
编辑 Campaign、Workflow 或 Transactional 内容时,Guardian 会实时标出类型不适用的变量、未保存状态、按钮缺少链接等问题。Campaign 和 Workflow 的联系人或 Event 变量若缺值,相关邮件可能根本不发送;应在发送前补默认值并检查预览。Guardian 对不同问题的处理方式不同,不能把它视为所有内容的统一发布拦截器。Guardian
发送后,Campaign 和 Workflow 可看发送与互动指标,Events 页面可查收到的 Event 与日志。关联 Goal 的 Campaign 还能按预设的联系人状态和时间窗口统计转化,但 Goal 记录的是发送与状态变化的关联,不能单独证明邮件造成了转化。Workflows、Events、Goals overview
API:应用服务端需要接的三条线
在 Settings → API 生成并命名 API key。请求以 Authorization: Bearer <key> 认证,基础地址是 https://app.loops.so/api。密钥只放服务端或密钥管理系统;官方 API 不支持浏览器 JavaScript 的跨域直调。API Introduction
GET /v1/api-key:用 Bearer key 校验Settings → API生成的密钥。POST /v1/contacts/create:至少传email;可补充userId、联系人属性与subscribed,结果会反映在 Audience,也可能触发Contact added。POST /v1/events/send:传email或userId、eventName,可附eventProperties;在 Events 中核对,并供Event receivedWorkflow 使用。POST /v1/transactional:传email、transactionalId和模板所需dataVariables,发送已发布的 Transactional 模板。
联系人 API 的新联系人默认 subscribed: true。同步仅供交易通知的用户或尚未取得营销许可的地址时,应明确处理订阅状态,不能把“创建联系人”当成已取得营销同意。Event 的 eventProperties 是这一次事件的数据;持久的联系人自定义属性位于请求顶层,需先在 Loops 中定义。Event 也可能创建新联系人,因此它不是与 Audience 完全隔离的通用埋点接口。Create a contact、Send an event
下面是可复制的 cURL 骨架,适用于在本地终端或服务端调试。先把 LOOPS_API_KEY 放进当前环境的安全变量中,确保它不出现在 Git、客户端代码或终端录屏里。@example.com 仅用于观察 API 与 Workflow 行为,不能用于验证真实送达;下面命令未在真实账户执行。
curl -i https://app.loops.so/api/v1/api-key \
-H "Authorization: Bearer $LOOPS_API_KEY"
密钥有效时,官方示例响应包含 "success": true 和 "teamName"。接着在 Dashboard 建一个由 projectCreated 触发的 Workflow,再发送一次业务 Event:
curl -i -X POST https://app.loops.so/api/v1/events/send \
-H "Authorization: Bearer $LOOPS_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: demo-project-001' \
--data '{"email":"test@example.com","eventName":"projectCreated","eventProperties":{"projectName":"First project"}}'
eventName 必须与 Workflow Trigger 选用的名字一致;自定义 Event 名不能包含冒号。到 Dashboard 的 Events 页面检查 Event log 中的接收数据,再去 Workflow 的 Metrics 看测试联系人是否进入流程。只有 API 返回成功并且流程已 Start,才应期待对应节点运行。Events、Send an event
最后,将以下占位的 transactionalId 替换为刚发布的模板 ID;模板必须定义同名 passwordResetLink 变量:
curl -i -X POST https://app.loops.so/api/v1/transactional \
-H "Authorization: Bearer $LOOPS_API_KEY" \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: demo-password-reset-001' \
--data '{"email":"test@example.com","transactionalId":"REPLACE_WITH_PUBLISHED_ID","dataVariables":{"passwordResetLink":"https://example.com/reset/demo"}}'
成功响应只证明请求被接受;test@example.com 不会收到真实邮件。要验收送达,改用自己控制的真实收件箱、真实的一次性链接和已验证的发信域名,并检查 Transactional 的发送结果。不要在密码重置请求中设置 addToAudience: true,除非明确需要把该地址加入营销 Audience。Send a transactional email、Transactional
两个发送接口都支持 Idempotency-Key:每次业务操作用不同的键,重试同一次操作沿用同一键;同一键在 24 小时内重复使用会收到 409 Conflict,不能把它误认成新邮件已再次投递。常规 API 的基础限流为每团队每秒 10 次,内容管理 API 为每团队每 60 秒 60 次;遇到 429 应按响应信息退避重试。API Introduction、Send an event、Send a transactional email
产品选择时要看的边界
- 团队协作:一个账户里的 Audience、内容、Workflow 和 Transactional 模板可由不同角色共同维护。模板上线前仍需把“谁能修改、谁能发布、服务端何时调用”列成团队约定。
- 营销与交易邮件分开判断:Campaign / Workflow 对 Audience 发信并提供营销退订;Transactional 只用于与单个用户操作直接相关的通知,且不提供打开或点击追踪。若依赖交易邮件的打开率来分析业务,需另设计可验证的产品事件。Types of emails
- 免费档的真实范围:免费账户可以继续存储超过 1,000 个已订阅联系人,但 Campaign / Workflow 只会发送给最早的 1,000 个已订阅联系人;超限后新增的联系人虽可进入 Workflow,却不会收到这类邮件。Transactional 不受这个订阅联系人范围限制,但与营销邮件合并计入滚动 30 天最多 4,000 封的免费发送量。邮件带 Loops 页脚。Billing、Pricing
- 付费档的成本因素:付费计划按已订阅联系人规模分档,官网列为不限发送量,Transactional 也包含在内;“不限发送量”并不取消接口限流与实际发送队列。少量用户收到较多生命周期邮件的 SaaS 值得测算,大受众低频发送场景也应按自己的联系人规模比较。Pricing、API Introduction
- 自动化入口:除 Dashboard 和 REST API,Loops 还提供 MCP server、CLI 与 agent skills。这些入口可辅助配置和测试,但安装工具本身不会替应用完成联系人、事件和权限边界的接入。
如果要做一次小规模试用,完成标准可以设为:发信域名已验证;测试联系人能进入预期 Workflow;projectCreated 在 Events 与 Workflow 中能对应起来;Transactional 请求通过真实收件箱完成投递验证;Campaign 的预览、Segment 受众和发送时间都由第二人复核。这样才足以判断 Loops 是否适合自己的邮件生命周期,而不只是在 Dashboard 里建出了几封草稿。