报税季一到,一家小记账公司就会反复接到同一通电话:我的申报到哪一步了,你们还需要我交什么?

打开网易新闻 查看精彩图片

按每周12通、每通6分钟算,就是每周1.2小时,一个税季下来约17小时,全花在念一个本可以挂在网页上的状态上。这些是示例数字,真实情况得自己数一周的电话再替换。

让客户自己查状态,本质上就是一个简单的客户门户。在花钱请开发者之前,先用AI应用搭建工具做个演示给团队看,是划算的一步。有人用Lovable试了一遍,提示词原文照录,结果也一并记录,整个搭建消耗1个credit。

提示词里必须写清失败路径

提示词要求为虚构的Brightside Bookkeeping搭一个客户状态页:客户输入客户编号和姓氏,看到2025年报税进度——材料已收到、准备中、审核中、待签字四个阶段,当前阶段用进度条展示,同时列出还缺什么、该打给谁。示例客户有三个:BB-1042 Ortiz(准备中,还缺银行的1099-INT)、BB-1077 Chen(待签字,什么都不缺)、BB-1103 Walsh(材料已收到,还缺去年的申报表)。编号和姓名对不上时,页面要说:我们找不到这个客户编号,请致电(555) 010-2040。风格清爽友好,青色配白色。不要登录、不要数据库,这只是带示例数据的演示。

这段提示词把几件事钉死了:阶段顺序,让进度条有东西可显示;客户输入什么、看到什么;三个处于不同阶段的示例客户,方便测试多种情况;查不到时的确切句子和下一步动作;以及边界——无登录、无数据库、仅示例数据。

第四条最容易被漏掉。如果不说明匹配不上时会发生什么,AI会自己挑措辞,而且可能显示过多信息。

一分半出预览,错名测试才是关键

预览大约一分半就绪。Lovable在回复里列出了三个示例客户,提示编号和姓名不区分大小写,并建议先测正确姓名再测错误姓名。

正确查询:编号BB-1042配姓氏Ortiz,四段进度条停在“准备中”,“我们还缺什么”下面写着银行的1099-INT,以及联系电话。

每个门户都需要两项测试:对的人能看到自己的记录,错的人什么都看不到。第二项保护的是客户,也是最常被忘记的一项。同样的编号BB-1042,换成姓氏Smith,页面没有出现任何关于Ortiz的内容,只有提示词里那句:我们找不到这个客户编号,请致电(555) 010-2040。

这套流程跑了两次提示词,一次用于截屏,一次以学习者身份重跑,两次结果一致,唯一差别是按钮文案,一次是“Check status”,一次是“Check my status”。之后还可以试空输入框和小写编号,发现异常就通过对话修改。

演示不是门户,页面代码人人可读

提示词写了“不要登录、不要数据库”,Lovable就做了最简单的事:把三个客户直接写进页面代码里(src/lib/clients.ts)。

拿虚构姓名给合伙人演示想法,这没问题。但对真实客户永远不行,因为页面代码里的任何内容都会被每位访客下载,不管屏幕是否显示。打开浏览器开发者工具的人能读到每一条记录。编号加姓氏也算不上什么锁。

Lovable内置的安全扫描报告这个项目没有问题,这并不矛盾。扫描找的是暴露的密钥、开放的数据表这类已知错误,它无从知道你的客户名单本来就不该公开。

真实数据放进去之前,正式版本需要三样东西同时到位:

  • 登录,让应用知道来的人是谁;
  • 数据库,让记录不驻留在页面里;
  • 行级安全,即让每位客户只能读到自己那几行的规则。只有登录没有它,任何已登录客户仍能读到所有人的记录。

后续课程会在同一个项目里完成这些检查,不发布、不消耗credit:谁能打开应用、数据放在哪、安全版本要花多少钱。

用1个credit换一个能跑的演示,是在掏真金白银之前回答“这东西值不值得做”的便宜办法。给团队看,数一数能省下多少通电话,再决定是买现成的客户门户、做安全版本,还是放弃这个想法。