立项背景和目标:
社区团购商家通常同时运营多个小区的团购业务,订单分散在各处,
每天需要人工汇总到表格、再逐个小区生成对账单。三个小区的情况下,
人工处理约需 1.5-2 小时/天,且极易出现漏单、金额对不上。
目标是让这套流程全自动跑:订单自动归集 → 自动生成分小区对账单
→ 异常自动告警,把每天 2 小时的人工压到 0。
软件功能、核心功能模块:
1. 定时触发模块:每天固定时间自动启动,无需人工干预
2. 多源数据读取:对接飞书多维表格开放 API,分页拉取三个小区的订单表
3. 数据清洗与合并:统一字段口径,合并去重,处理缺失值
4. 分类汇总:按小区维度聚合,计算应收、已付、差额
5. 异常检测:金额不一致、状态异常、重复订单自动标记
6. 结果写回:汇总结果写回多维表格,供商家和团长直接查看
7. 失败告警:任一步骤失败自动重试 3 次,仍失败则推送群告警
业务流程、功能路径:
每天 20:00 定时触发 → 读取运行参数 → 换取 tenant_access_token
→ 逐小区分页读取订单 → 展开为明细行 → 批量写入汇总表
→ 生成分小区对账单 → 判断是否启用对账推送 → 异常则发群告警
整体架构和设计思路:
采用 n8n 作为编排引擎,全部使用内置节点(无第三方社区节点依赖),
客户可自行导入、自行维护。凭证与业务参数分离:敏感凭证存在
n8n 的 Credentials 加密存储中,工作流 JSON 里只有凭证名和占位符,
导出、传输、交付全链路不落明文密钥。
技术栈:
n8n(Schedule Trigger / HTTP Request / Code / Set / IF)
飞书开放平台 API(多维表格、消息与群组)
JavaScript Code 节点做数据变换
我负责的模块和结果:
负责从需求拆解到交付的全部环节——接口调研、字段设计、
工作流搭建、异常分支设计、部署文档编写。
结果:13 个节点的工作流,交付时静态检查 0 error 0 warning,
覆盖 3 个小区的订单归集、3 份对账单生成、异常告警完整链路。
遇到的难点、坑和解决方案:
1. 飞书 API 分页上限问题——单次最多 500 条,超过必须翻页;
解决方案是按 page_size 逐页翻,翻到 has_more=false 才停,
并设置 maxPages 上限防止死循环。**如果超过上限会直接报错中断,
而不是少写几条**——避免汇总表悄悄缺数据这种最危险的失败模式。
2. 批量写入上限——记录数多时一次性写入会超飞书单次上限;
解决方案是按 400 行一批分批写入。
3. 时区问题——定时任务实际触发时间差 8 小时;
解决方案是在工作流 Settings 和触发节点同时显式指定 Asia/Shanghai。