AI PLAY玩法更新持续收录
← 回到更新流

2026-09-22 · 原文发布日

货运签到风险看板

司机或调度系统向 webhook POST load_id 与状态文本,缺关键字段会写 Errors 并在 Discord 提醒调度台。有效签到交 gpt-6-luna 抽取标准化状态、ETA、延误、风险等级和可对客户说的话,再对照 Sheets Load Board 的交付预约计算迟到,严重晚点升级为 exception。签到写入 Check Log 并更新看板;按风险发 Discord、客户 Gmail、ops 升级或送达确认,早 7 点扫描安静与临期运单生成调度简报。

原文要点

这是一条免费 n8n 模板:司机或调度端向 webhook POST 至少含 load_id 和状态文本的签到,缺字段就在 Google Sheets 的 Errors 表追加错误行并发 Discord 提醒。有效签到交 gpt-6-luna 抽取标准化状态、ETA、延误原因、风险等级和可对客户说的文本,再对照 Load Board 表的 delivery_appt 计算迟到程度,严重晚点升级为 exception。签到写入 Check Log 并更新看板行,按风险分别发 Discord、客户 Gmail、ops 升级或送达确认;每天 07:00 扫描安静和临期运单生成调度简报。需要 Sheets/Gmail OAuth2、OpenAI、Discord bot 四种凭据。

这次做成什么

在自己的 n8n 里搭一条缩小版练习流程:webhook 收签到→字段校验→AI 抽取风险→写三张表的模拟看板→按风险分支输出,用合成数据先跑通触发与分支逻辑。

准备什么

  • 一个可访问的 n8n 实例(自托管或云端)和创建 webhook 的权限
  • 一个 OpenAI API 密钥或等效聊天模型账号(模板用 gpt-6-luna,练习可换成本账号可用模型)
  • 一个测试用 Google 账号及 Sheets OAuth2 凭据,或先用本地 CSV 模拟三张表
  • 可选:测试用 Discord 服务器 bot token 与 Gmail 凭据,练习阶段可用日志节点替代

具体怎么做

  1. 建三张表

    在测试 Google Sheets 文件里建 Load Board、Check Log、Errors 三个工作表。Load Board 列:load_id、driver_name、delivery_appt、customer_email、status、risk、last_check_in。Check Log 列:check_in_id、load_id、received_at、raw_status、normalized_status、eta、delay_reason、risk、customer_note。Errors 列:received_at、payload、reason。先手动往 Load Board 填两行合成运单。

  2. 建 webhook 与校验

    在 n8n 新建工作流,添加 Webhook 触发器(POST,路径如 /driver-check-in),复制测试 URL。接一个 IF 节点判断 load_id 与 status 字段均非空:不满足时走假分支,用 Google Sheets Append 写 Errors 行(reason 填 missing_field),并用日志节点代替 Discord 提醒;满足时进主分支。

  3. AI 抽取与迟到计算

    主分支接 HTTP Request 或 OpenAI 节点,用下方提示词把司机原文转成 JSON(状态、ETA、延误原因、risk、customer_note)。随后用 Google Sheets Lookup 在 Load Board 按 load_id 找到 delivery_appt,用 Code 节点计算 ETA 与预约时间的差值分钟数;超过 120 分钟时把 risk 改写为 exception。

  4. 写表与风险分支

    追加一行 Check Log,并用 Google Sheets Update 按 load_id 更新 Load Board 的 status、risk、last_check_in。再接 Switch 节点按 risk 分支:normal 只记日志;at_risk 输出客户通知文本与调度提醒;exception 额外输出 ops 升级文本;normalized_status 为 delivered 时输出送达确认。练习阶段全部写到执行日志,不接真实邮件和 Discord。

  5. 每日简报练习

    另加 Schedule Trigger 设为 07:00,读取 Load Board,筛选 last_check_in 距今超过 12 小时或 delivery_appt 在 24 小时内的行,拼接后用同一 AI 节点生成三行调度简报,先写入日志验证筛选条件正确再考虑接通知渠道。

可直接复制的材料

签到测试 JSON(合成)

本站虚构测试数据,POST 到 webhook 测试 URL 使用;load_id 必须与 Load Board 中预填行一致。

{
  "load_id": "LD-1001",
  "driver_name": "测试司机甲",
  "status": "刚过绥中服务区,堵车大概一小时,预计下午四点半到仓",
  "location": "G1 高速绥中段",
  "eta_text": "2026-10-12 16:30",
  "notes": "冷藏车,温度正常",
  "source": "driver_app"
}

状态抽取提示词

本站独立编写,变量名按上面测试 JSON 设置;输出后需加 JSON 解析节点并校验字段存在。

你是货运调度助手。根据下面的司机签到原文,只输出一个 JSON 对象,不要输出任何其他文字或代码块标记。
字段要求:
- normalized_status:只能是 in_transit、delayed、arrived、delivered、issue 之一
- eta_iso:把 ETA 转成 ISO 8601 格式,无法判断就填 null
- delay_minutes:延误分钟数的整数估计,无延误填 0
- delay_reason:一句话延误原因,无则填空字符串
- risk:normal、watch、at_risk 三选一(是否升级 exception 由后续流程按预约时间判定,你不要输出 exception)
- customer_note:一段可以直接发给收货客户的中文说明,语气平稳、不超过 60 字,不要承诺做不到的时间
司机签到原文:
{{$json.status}}
附加信息:位置 {{$json.location}},自述 ETA {{$json.eta_text}},备注 {{$json.notes}}

每日简报提示词

本站独立编写;loads 字段由前置 Code 节点把筛选结果序列化成字符串后放入。

你是值班调度员。下面是今日需要关注的运单列表(JSON 数组,含 load_id、司机、状态、风险、最近签到时间、交付预约)。请输出:1)一行总体概况;2)按风险从高到低列出每条运单一句话处置建议;3)一句提醒(如某车超过 12 小时无签到)。全部中文,总长度不超过 200 字,不要编造列表之外的信息。
运单列表:
{{$json.loads}}

输入与输出示例

本站虚构演示,AI 实际输出每次可能不同,数字仅说明字段对应关系,非调用结果。

输入

POST /driver-check-in,Body 为上方测试 JSON:load_id=LD-1001,司机报堵车预计 16:30 到;Load Board 中 LD-1001 的 delivery_appt 为 2026-10-12 15:00,customer_email 为 kehu@example.test。

对应输出

AI 抽取示例:{"normalized_status":"delayed","eta_iso":"2026-10-12T16:30:00+08:00","delay_minutes":90,"delay_reason":"G1 高速绥中段堵车","risk":"at_risk","customer_note":"您的货物因高速拥堵预计 16:30 送达,比预约晚约 90 分钟,我们持续跟踪。"}。迟到计算 90 分钟,未超 120 分钟阈值,保持 at_risk:Check Log 追加一行,Load Board 该行 status 更新为 delayed、risk 为 at_risk,输出一条客户通知文本和一条调度提醒到日志。

做完检查这些

  • 缺少 load_id 的请求会在 Errors 表新增一行且 reason 为 missing_field,不进入 AI 抽取
  • 有效签到后 Check Log 行数加一,Load Board 对应行的 last_check_in 变为本次接收时间
  • ETA 比 delivery_appt 晚超过 120 分钟时 risk 被流程改写为 exception 并触发 ops 分支
  • 07:00 定时运行能列出超过 12 小时未签到的运单并生成不超过 200 字的简报

容易卡住的地方

  • 模板用 gpt-6-luna,你的 OpenAI 账号未必有该模型,需换成账号可用模型并同步改节点配置
  • 字段名必须与 Sheets 列名完全一致(load_id、delivery_appt 等),大小写不一致会导致更新找不到行
  • 迟到阈值 120 分钟是本站练习设定,原模板只说严重晚点升级 exception,具体阈值需自行决定
  • 练习阶段不要填真实客户邮箱,改用 example.test 域名避免误发邮件
  • 每天 07:00 的时区以 n8n 实例设置为准,自托管默认可能是 UTC,需在设置里确认

原文与作者资料 ↗

本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。

原文标题
Track freight load risk from driver check-ins with gpt-6-luna and Google Sheets
原作者
Khairul Muhtadin
原始发布日期
2026-09-21T16:24:47.248Z
来源
https://n8n.io/workflows/19800