返回博客
AI AgentsStripeTelegramAutomation

用 Telegram AI 智能体自动推送 Stripe MRR 日报

每天早上 9 点收到 Telegram 推送:MRR 变化、新增订阅、取消记录,以及一句话情境总结。只需只读 Stripe 密钥,无需每月 $108 的控制台,无需手动查看任何仪表盘。

作者:Hermify Team||阅读约 3 分钟
一部深色手机放在日出时分的书桌上,屏幕显示 Telegram MRR 日报,绿色数字和小型柱状图清晰可见,旁边放着一杯咖啡

你每天早上都要打开 Stripe。是时候停下来了。

如果你在运营一个小型 SaaS,每天早上做的第一件事大概就是打开 Stripe,盯着那三四个数字看:MRR、昨晚的新增订阅、有没有取消,也许还有失败的付款。看完之后关掉标签页,开始一天的工作。

那些号称能解决这个问题的控制台,价格都不便宜。Baremetrics Metrics 单独售价 $208/月ChartMogul 在 MRR 低于 $10K 时免费,超过后 Scale 版跳至 $100/月,每多 $10K MRR 再加 $25/月。这两家都能用邮件或 Slack 给你发日报,但同时也会给你一堆留存队列矩阵、预测模型、催款工作流,以及十几个你根本用不到的功能。

如果你真正想要的只是"Stripe 昨晚有什么变化,一条消息,早上 9 点送达",那你正在为一个错误的产品付每月 $108 到 $474。你需要的是每日报告,不是数据分析套件。这是两个完全不同的问题,第二个问题只需要一个下午就能解决:一个 Telegram AI 智能体、一个只读 Stripe 密钥,加上一个定时任务。

一份真正有用的 Stripe 日报应该包含什么

在自动化之前,先写下你希望早上收到的那条消息。对于自力更生的 SaaS 来说,有用的内容其实很少:

  • 当前 MRR 及过去 24 小时的变化量。 一个带正负号的核心数字。
  • 昨晚新增的付费订阅。 套餐、客户邮箱、MRR 贡献值。
  • 昨晚的取消记录。 套餐、客户邮箱、损失的 MRR。
  • 套餐变更。 升级和降级汇总为扩张 MRR 与收缩 MRR。
  • 值得关注的付款失败。 金额超过 $50 的,或者订阅时间超过 3 个月的客户。
  • 一句情境总结。 "净增 +$47 MRR,扩张超过流失 3 比 1,最大动作是 Acme 升级至 Pro"——这和一堆数字的感受完全不同。

这是一条 10 行的消息。你不需要 $208 的控制台。你需要的是一个只读 Stripe 密钥、一个 Telegram 频道,以及一个每天早上 9 点运行的定时任务。

日出时分昏暗的家庭办公室,书桌上放着一部手机,屏幕显示 Stripe MRR 日报,屏幕发出的柔和绿光映在桌面上

方案:一个技能、一个每日任务、一个只读密钥

关键在于把范围控制得非常小。你不需要从原始的 invoice.payment_succeeded 事件重新计算 MRR,也不需要一个可查询的数据库。你需要的是每天一份由智能体撰写并推送到手机上的摘要。

第一步:创建只读 Stripe 密钥

这是最重要的安全步骤。Stripe 的受限 API 密钥允许你对特定资源授予 Read 权限,其余全部设为 None。对于 MRR 日报,你只需要以下资源的读取权限:

  • 订阅(Subscriptions)
  • 客户(Customers)
  • 发票(Invoices)
  • 价格与产品(Prices and products)

其他所有资源设为 None。该密钥无法创建扣款、无法退款、无法修改订阅、无法读取你的 Connect 平台数据。即使密钥泄露,攻击者最多也只能看到你自己看到的那些数字。Stripe 明确建议使用受限密钥而非密钥(secret key),尤其是在将密钥交给 AI 智能体使用时。

将密钥存入智能体的 Secrets 中,不要写进代码,也不要放在提示词里。Hermes Agent 会对 Secrets 进行静态加密,且永远不会将其暴露给模型。

第二步:编写一个轻量级 stripe-reader 技能

这个技能是对 Stripe API 的薄封装,每天早上返回一个 JSON 对象:

# skills/stripe-reader/main.py
import stripe, os, datetime as dt

stripe.api_key = os.environ["STRIPE_RESTRICTED_KEY"]
since = int((dt.datetime.now(dt.timezone.utc) - dt.timedelta(hours=24)).timestamp())

# Active MRR right now
active = stripe.Subscription.list(status="active", limit=100, expand=["data.items"])
mrr_now = sum(_monthly_normalize(item) for sub in active.auto_paging_iter() for item in sub["items"]["data"])

# Events in the last 24 hours that affect MRR
new_subs = list(stripe.Subscription.search(query=f"status:'active' AND created>{since}").auto_paging_iter())
canceled = list(stripe.Subscription.search(query=f"canceled_at>{since}").auto_paging_iter())
plan_changes = list(stripe.Event.list(type="customer.subscription.updated", created={"gte": since}).auto_paging_iter())

return {
  "mrr_now_cents": mrr_now,
  "new_subs": [_pluck(s) for s in new_subs],
  "canceled": [_pluck(s) for s in canceled],
  "plan_changes": [_pluck_event(e) for e in plan_changes],
  "failed_payments": _list_recent_failed_invoices(since),
}

关于计算逻辑,有两点需要注意。第一,Stripe 对 MRR 的官方定义是所有有效订阅按月折算金额的总和,因此一个年付 $290 的套餐对 MRR 的贡献是 $24.17,而不是 $290(Stripe MRR 文档)。第二,取消订阅要等到到期才会停止计入 MRR,而不是客户点击取消的那一刻——因此日报中的"昨晚取消"应同时包含 canceled_at 事件和 current_period_end 落在过去 24 小时内的记录。

这正是从原始 Stripe 数据计算 MRR 时容易踩坑的地方,尤其是在搭建完整分析流水线时。对于每天一次的日报来说,可以接受轻微的近似——那些你长期参考的控制台也是这样做的。

深色控制台模型截图,展示一条包含 MRR 变化量、新增订阅和一句情境总结的 Telegram 消息,带有绿色和红色高亮

第三步:每天早上 9 点的定时任务

用自然语言给你的 Hermes Agent 配置一行 cron 指令:

every weekday at 9am Madrid time, run the stripe-reader skill
and send me a Telegram digest. Headline: MRR right now and delta
vs yesterday. Then list new subs, cancels, plan changes and
failed payments over $50. End with one line of context about
what dominated the day.

这就是全部的提示词。智能体调用技能、获取 JSON、撰写消息,并推送至你的 Telegram 频道。将 enabled_toolsets=["stripe-reader","telegram"] 限定到该任务后,大语言模型只能看到它需要的数字和 Telegram 发送工具,无法意外调用其他任何东西。这与我们在加密货币日报攻略以及 Hermes Agent 定时任务指南中使用的模式完全一致。

为什么智能体层值回票价

一个 50 行的 Python 脚本也能生成这份数据报告。把智能体放在前面的原因,在于消息末尾的那句情境总结。

纯数据报告是这样的:

MRR $4,217。+$47 vs 昨天。2 个新订阅。1 个取消。3 个套餐变更。1 笔付款失败。

加上情境的报告是这样的:

MRR $4,217(+$47,+1.1%)。扩张超过流失 3 比 1——Acme 从 Starter 升级至 Pro(+$30 MRR),Beta Co 新增了一个席位(+$10)。一个 Starter 取消(-$19),退出调查中填写了"转向 Notion AI"。净增 +$47,本月次佳表现。

数字相同,感受完全不同。第一条你只会扫一眼,第二条会让你采取行动——你可能会联系那个取消 Starter 的客户,可能会感谢 Acme 升级,也可能会核查退出原因是否在其他取消中反复出现。这个诊断层面的能力在 Baremetrics 要花 $108/月,而一个小型 AI 智能体的成本,只是一台廉价 VPS 加上你自己的模型用量。

这需要花多少钱

以下是面向 MRR 在 $0 到 $10K 之间的自力更生 SaaS 的真实成本对比:

工具 月费 你得到的
Baremetrics Metrics $208 完整分析套件,每周摘要邮件
ChartMogul Scale $100 + 每超 $10K MRR 加 $25 完整分析套件,可配置提醒
ProfitWell $0 基础版 有限免费指标,向 Recover 和 Retain 追加销售
Hermes Agent + Hermify Starter $19/月 + 约 $2 模型用量 每天早上 9 点一条 Telegram 日报,完全掌控只读密钥和提示词

你得不到留存队列曲线,得不到公开控制台,得不到催款工作流。你得到的是那一份你真正会打开的报告,而且在你坐下来之前就已经送到手机上了。对于大多数 MRR 低于 $10K 的创始人来说,这就是全部需求。

当 MRR 超过 $10K,你开始需要催款功能时,可以继续用智能体做每日日报,同时叠加 ChartMogul Launch($10K 以下免费)或专注于特定需求的工具。智能体不会锁定你的选择。

开始使用

完整配置步骤如下:

  1. 创建一个受限 Stripe API 密钥,对 Subscriptions、Customers、Invoices、Prices 和 Products 授予读取权限,其余全部设为 None。
  2. 将密钥存入你的 Hermes Agent Secrets。
  3. 添加 stripe-reader 技能——可以自己编写,也可以 fork 公开的 Hermes 技能仓库。
  4. 用自然语言添加一行 cron 指令。
  5. 验证第一条早上 9 点的日报是否成功推送到你的 Telegram。

如果你希望整套方案都有人托管、监控,并配有托管 Telegram 机器人,可以 $19/月的 Starter 方案开始使用 Hermify。你提供自己的模型 API 密钥和只读 Stripe 密钥,我们负责运行时、cron 和机器人。同样的方案也适用于加密货币日报、竞品追踪,以及我们过去一个月持续发布的自动化系列中的其他场景。

每天早上你主动打开的那个控制台要花 $108,主动来找你的那个只要 $19。

来源

运行你自己的 Hermes Agent

自带 API 密钥,连接 Telegram,60 秒内即可上线一个自我改进的 AI 智能体。

立即开始