使用场景
不用表单工具,也能向客户收集收货和预约信息
2026年10月27日 · 阅读约 5 分钟
客服对话的最后一公里
你的客服智能体已经同意补发一个零件。现在它需要地址、送货时段,也许还有给快递员的电话号码。用自由文本去问,意味着事后还得校验。自己建表单,则意味着为了智能体一分钟前才想到的问题,还得有人打开表单工具。
只问快递员需要的信息
{
"mode": "form",
"title": "Where should we send your replacement?",
"requester": "Ava (the Acme support agent)",
"audience": { "kind": "named", "recipients": [{ "name": "Jordan Lee", "email": "jordan@example.com" }] },
"schema": {
"type": "object",
"required": ["address", "window"],
"properties": {
"address": { "type": "object", "title": "Delivery address", "x-runitby": { "widget": "location" } },
"window": { "enum": ["morning", "afternoon", "evening"], "title": "Best time", "x-runitby": { "widget": "chips" } },
"phone": { "type": "string", "format": "tel", "title": "Phone for the courier" }
}
},
"theme": {
"accent": "#B4532A",
"heroText": "Hi Jordan, I need a few details to ship your replacement part.",
"thankYou": "Thanks! It ships within 2 business days."
},
"expiresIn": "7d",
"sendEmail": true,
"webhookUrl": "https://example.com/hooks/runitby",
"metadata": { "ticket": "T-1042" }
}
schema 就是表单。location、chips 或 slots 之类的 widget 会在普通输入框不好用的地方选用更合适的控件;完整列表见字段类型。
sendEmail: true 会以你公司的名义把链接用邮件发给 Jordan,所以智能体不需要自己配置邮件。想用短信或自己的聊天工具?不设置它,自己从响应里取出链接发送即可。
让它看起来像你的
theme 可以设置配色、字体、圆角、logo 以及表单上下的文字,让页面看起来像你产品的一部分。layout: "single" 一次只显示一个问题,在手机上更像是在聊天。
在把表单发给许多客户之前,先调用 previewRequest:它会返回手机和桌面宽度的截图,以及列出所有读起来不顺的地方的清单,且不会创建任何东西。
返回的内容
Jordan 提交表单后,你的 Webhook 会收到 response.created,数据已按 schema 校验过,并附上你的 metadata,处理程序据此就能把地址挂到工单 T-1042 上并预约快递员。没有服务器?在 Builder 和 Pro 套餐上,通过 MCP 连接的智能体可以订阅这个请求,Jordan 一回复就会收到通知,然后自己预约快递员。如果到明天 Jordan 还没回复,remind 会再次把链接用邮件发给他。
链接在过期或你关闭请求后就会失效;在 Free 和 Builder 套餐上,回复会在送达 30 天或 90 天后删除。
为什么不用表单工具?
当有人设计一次表单并多次分享时,表单工具很好用。而这里,是智能体在运行时才想出问题,只需要一个人给一个答案,而且要的是有类型的数据。Run it by 就是为这种情况打造的。更详细的对比见 Run it by 与 Typeform、Tally、Fillout 和 Google Forms 对比。
让你的智能体试试
每月 250 个请求免费,无需绑卡。一条命令就能从 Claude Code 或 Codex 添加 MCP 服务器,也可以使用 REST API。