扣子(Coze)能做个人理财助手这事儿,听起来挺酷——自动记账、分析消费、预算超支还能及时提醒。说实话,很多人折腾Excel模板都折腾烦了,每次手动导出流水再算一遍,月底才发现钱没了。其实,用Coze搭一个真正能用的记账Bot,关键不在于花哨的UI,而在于背后的数据结构设计和触发逻辑。

先聊一个基本判断:如果数据表设计得松散,后面再牛的分析都是白搭。所以第一步,必须把两个表格搞明白。
准备基础数据结构
在Coze知识库里建两张表,这是整个系统的地基。
收支流水表的字段很简单:日期(date,标准格式YYYY-MM-DD,这是红线——要是用“2026/6/1”或者“6月1日”这种格式,Coze按月聚合时一定会错乱)、金额(number)、类型(income/expense)、分类(text)、备注(text)。注意:日期格式这一步,很多人嫌麻烦随手填了非标准格式,结果后面SQL查不出来,白忙活半天。
月度预算表只需要三个字段:年份(number)、月份(number)、预算金额(number)。这两张表不用关联用户ID——毕竟Bot默认服务单用户,多账户隔离暂时别想。
拿到过去三个月的真实消费记录,整理成CSV,字段顺序和收支流水表完全一致,直接上传到知识库→表格→导入CSV。这一步没什么技术含量,但数据质量决定了后续所有分析的可信度。
配置自动记账触发逻辑
记账入口怎么设计?这里有两个主流方案,各有适用场景。
方法一:关键词触发 + 表单填写(最稳妥)
新建一个Bot对话流,触发词设成“记一笔”“刚花了”“收入进账”这类口语化短语。用户一触发,系统弹出结构化表单,强制填写金额、类型、分类三项,日期自动设为当天。重点来了:分类字段必须用下拉菜单限定为固定5个选项:固定支出/必要消费/弹性消费/主动收入/被动收入。为什么?因为一旦让用户手工输入“奶茶”“外卖”“房租”,统计就全乱了,分类聚合直接失效。这个“标准化”是记账系统能用起来的前提。
方法二:正则匹配聊天记录(适合微信/钉钉同步场景)
如果你习惯把消费信息发在聊天里,可以在Bot工作流里加一个「文本提取」节点,写正则:花了([0-9.]+)元|收入([0-9.]+)元|¥([0-9.]+)。匹配成功后自动写入收支流水表,分类按上下文关键词归类——比如包含“房租”“水电”打标为固定支出,“奶茶”“打车”归为弹性消费。问题在于,这种方法容易漏掉模糊表述(比如“今天交了个房租”),上线前至少要用10条真实聊天记录测试召回率,否则月底发现大量交易没记上就尴尬了。
构建月度预算动态看板
数据进来了,怎么实时看到预算使用情况?需要三步走。
第一步:在Bot页面嵌入一个「查询表格」组件,数据源选月度预算表,筛选条件设为“年份 = 当前年份 且 月份 = 当前月份”。
第二步:在组件下方接一个「SQL查询」节点,执行:SELECT SUM(金额) FROM 收支流水表 WHERE 类型 = 'expense' AND 日期 >= '2026-06-01' AND 日期 <= '2026-06-30'。注意,这里的日期范围不能写成“本月第一天/最后一天”——Coze不支持动态日期函数,必须用硬编码。所以每月1号需要人工更新一次SQL里的起止日期,或者用Bot定时任务+变量拼接替代(需要开通高级插件权限)。
第三步:用「计算」节点把预算金额减去当月实际支出,结果为正数显示“还剩X元”,为负数则触发红色警告文案:“已超支Y元”。
看板的目的不是让你每天盯着数字焦虑,而是月底前提前掌握资金余量,及时调整消费节奏。
设置超支实时提醒
很多记账应用的最大问题是“记了但没反馈”。所以要在Bot工作流末尾加一个「条件分支」节点,判断「当月支出 > 当月预算」是否成立。
成立时,自动发送一条卡片消息:标题“⚠️预算警报”,正文显示超支金额+弹性消费TOP3分类(从收支流水表按分类GROUP BY求和后取前三),底部按钮“调整预算”跳转到预算修改表单。这个TOP3的用意很明显——帮你快速定位哪些弹性消费才是超支的“元凶”。
不成立时,只推送温和提示:“本月预算使用率{百分比}%,剩余空间充足”。
这里有一个容易踩的坑:百分比计算必须用Decimal精度运算。如果直接用整数除法,月底剩1块钱时可能显示“99%”而实际已花完——Coze默认数值类型是float,要在「计算」节点里显式调用round(支出/预算*100, 1)。
整体来看,这个方案不算复杂,但每一步的细节决定了最终能不能用起来。与其追求“全自动”,不如先把数据结构和触发逻辑做扎实,剩下的就是日常维护和迭代了。
