背景:站内「智能问数」已定型为兜底入口(本地取数、两段式回答),数据消费的主场随钉钉 AI 表格迁到钉钉。 云端表按维度拆成三张单粒度表后,才能放心在钉钉侧用 AI 问数 / 透视表做聚合——否则任何求和都会把门店、连锁、公司行加总,数字直接翻几倍。
同一 Base 下三张数据表,每张表内粒度唯一:
| 数据表 | 存什么 | 对应本地 scope | 业务键 |
|---|---|---|---|
| 门店明细 | 日期 × 门店的逐日指标 | shop |
日期|账号名|门店维度|连锁ID|门店ID |
| 连锁汇总 | 日期 × 连锁的逐日汇总 | chain |
日期|账号名|连锁维度|连锁ID |
| 公司汇总 | 日期 × 账号(全公司)逐日汇总 | company |
日期|账号名|公司维度 |
日期、账号名、维度、门店ID、门店名称、连锁ID、连锁名称、有效订单、收入(元)、营业额(元)、支出(元)、曝光人数、下单人数、进店转化率、下单转化率、客单价(元)、活动订单、活动补贴(元)、推广ROI、30日复购率、营业时长(h)、异常关店时长(h)、商品销售额(元)本次三张表由程序通过钉钉 notable API 自动创建(应用自身凭据)。如日后需要在新 Base 重建:
POST /v1.0/notable/bases/{baseId}/sheets?operatorId=…,请求体 { "name": "门店明细", "columns": [{ "name": "日期", "type": "text" }, …] }(维度列 text、指标列 number)POST …/sheets/{表名}/fields?operatorId=…,请求体 { "name": "营业额(元)", "type": "number" }internalError,慢速补列即可(每列间隔几秒);记录读写接口不受影响failed to find the field '…')——先建齐列再推送在钉钉里打开该 AI 表格(或建一个绑定此表的钉钉 AI 助理),逐条问:
| # | 问题 | 期望 |
|---|---|---|
| 1 | 上个月总营业额是多少 | 只汇总「公司汇总」表(或门店明细求和),数字 = 站内经营分析同区间营业额 |
| 2 | 上个月营业额 Top10 门店 | 来自「门店明细」,排序与站内排行一致 |
| 3 | 各连锁上个月营业额对比 | 来自「连锁汇总」,只有连锁粒度、不含公司/门店行 |
| 4 | 昨天XX门店的有效订单和客单价 | 单门店单日,与站内明细一致 |
| 5 | 最近 30 天营业额趋势 | 按日期汇总,无翻倍 |
| 6 | 进店转化率最近一周变化 | 比率类不做求和(应取均值或按日展示) |
验收要点:任一问题的答案都不能出现跨维度加总(如门店+连锁+公司相加)。若钉钉 AI 在单表上仍算错,检查它是否绑定到了正确的一张表。