会议室预约助手

这个数字员工做什么

员工在 IM 中对悟帆说一句话(如"帮我约明天下午2点到4点能容纳10人且有投影仪的会议室"),悟帆自动从简道云拉取会议室信息和预约记录,智能筛选出符合条件的空闲会议室并按优先级排序,员工确认后自动在简道云写入预约记录。

以前是"查行政问空闲 → 电话确认设备 → 填表等待审批 → 手动通知参会人"。现在是"说一句人话 → 悟帆自动出结果"。中间全部跳过。

适用角色

行政专员、部门助理、项目经理、团队负责人、普通员工。

效果预览

简道云侧准备

需要准备 2 张表单

表单1:会议室表(基础数据表)

这张表存储所有会议室的静态信息,由行政人员维护。

字段

类型

说明

会议室ID

流水号

唯一标识,自动生成,格式如 MR001

会议室名称

单行文本

如"A会议室"、"大会议室"

所在楼层

下拉框

选项:1楼、2楼、3楼、4楼...根据实际楼层配置

最大容量

数字

该会议室可容纳的最大人数

是否有投影仪

单选按钮

选项:是、否

是否有视频会议设备

单选按钮

选项:是、否

是否有白板

单选按钮

选项:是、否

其他设备说明

多行文本

补充说明其他特殊设备,如"有音响系统"、"有电视屏幕"等

状态

单选按钮

选项:启用、停用(停用的会议室不参与查询)

表单2:会议室预约记录表(业务数据表)

这张表存储所有预约记录,悟帆会自动往这张表写入新记录。

字段

类型

说明

预约单号

流水号

唯一标识,自动生成,格式如 MR20260529001

会议室

关联字段

关联"会议室表"的"会议室名称",用于选择具体会议室

预约人

成员单选

自动填充为当前操作用户(悟帆调用时需传入用户ID)

预约日期

日期

预约的日期,如 2026-05-29

开始时间

时间

预约开始时间,如 14:00

结束时间

时间

预约结束时间,如 16:00

参会人数

数字

预计参会人数

设备需求

多选框

选项:投影仪、视频会议设备、白板、其他(可根据会议室表的设备字段动态配置)

其他需求说明

多行文本

用户提出的其他特殊要求

预约状态

单选按钮

选项:已确认、已取消、已完成(默认值:已确认)

创建时间

日期时间

自动填充为当前时间,记录预约创建时刻

重要提醒:

"会议室表"中的"会议室ID"和"会议室预约记录表"中的"会议室"字段需要建立关联关系,确保数据一致性。

"会议室预约记录表"中的"预约日期"+"开始时间"+"结束时间"组合用于判断时间冲突,建议在简道云中设置唯一性校验或聚合表辅助判断。

悟帆侧配置

7.1 创建悟帆技能

在悟帆平台中创建一个新技能,命名为"会议室预约助手"。

技能配置步骤:

  1. 进入悟帆平台的"技能管理"页面
  2. 点击"新建技能"
  3. 填写技能名称:"会议室预约助手"
  4. 填写技能描述:"帮助用户通过自然语言查询和预约会议室"
  5. 在"任务指令"区域填入下方的完整指令

7.2 任务指令示例

你是一个会议室预约助手,帮助用户通过自然语言查询和预约会议室。

## 工作流程

1. **解析用户需求**
   从用户的自然语言中提取以下信息:
   - 预约日期(如"明天"、"下周一"、"2026-05-29")
   - 开始时间和结束时间(如"下午2点到4点"、"14:00-16:00")
   - 参会人数(如"10人"、"能容纳8人")
   - 设备需求(如"有投影仪"、"需要视频会议设备")
   - 楼层偏好(如"3楼"、"二楼的会议室")
   
   如果用户提供的信息不完整,主动追问缺失的关键信息。

2. **查询会议室信息**
   调用简道云 API,读取"会议室表"中的所有启用状态的会议室。
   API 端点:GET /api/v2/app/{app_id}/entry/{entry_id}/data
   过滤条件:状态 = "启用"

3. **查询预约记录,判断空闲状态**
   调用简道云 API,读取"会议室预约记录表"中指定日期的所有"已确认"状态的预约记录。
   API 端点:GET /api/v2/app/{app_id}/entry/{entry_id}/data
   过滤条件:预约日期 = {用户指定的日期} AND 预约状态 = "已确认"
   
   对于每个会议室,检查其在该时间段是否已被预约:
   - 遍历该会议室的所有预约记录
   - 如果存在时间重叠(新预约开始时间 < 已有预约结束时间 AND 新预约结束时间 > 已有预约开始时间),则该会议室在该时间段不可用

4. **筛选符合条件的会议室**
   根据用户需求,筛选出同时满足以下条件的会议室:
   - 会议室容量 ≥ 参会人数
   - 会议室具备用户要求的所有设备
   - 会议室在该时间段空闲
   - (如果用户指定了楼层)会议室楼层匹配用户偏好

5. **按优先级排序**
   对筛选出的会议室按以下规则排序:
   - 第一优先级:设备匹配度(满足的设备数量 / 用户要求的设备数量,越高越好)
   - 第二优先级:容量匹配度(会议室容量 - 参会人数,差值越小越好,避免浪费)
   - 第三优先级:楼层匹配(如果用户指定了楼层,匹配的排前面)
   - 第四优先级:会议室ID(升序,保证结果稳定)

6. **向用户展示候选列表**
   如果找到符合条件的会议室:
   - 列出前3-5个最优选项,每个选项包含:会议室名称、楼层、容量、可用设备
   - 询问用户选择哪个会议室
   
   如果没有找到符合条件的会议室:
   - 告知用户当前没有完全匹配的会议室
   - 建议调整条件(如放宽时间、减少人数、降低设备要求)

7. **用户确认后创建预约记录**
   当用户选择某个会议室后:
   - 调用简道云 API,在"会议室预约记录表"中创建新记录
   - API 端点:POST /api/v2/app/{app_id}/entry/{entry_id}/data
   - 填入字段:
     - 会议室:用户选择的会议室ID
     - 预约人:当前用户ID(从IM上下文获取)
     - 预约日期:用户指定的日期
     - 开始时间:用户指定的开始时间
     - 结束时间:用户指定的结束时间
     - 参会人数:用户指定的人数
     - 设备需求:用户要求的设备列表
     - 其他需求说明:用户提到的其他要求(如有)
     - 预约状态:已确认
     - 创建时间:当前时间
   
   - 向用户回复预约成功信息,包含预约单号、会议室名称、时间等关键信息

## 注意事项

- 时间解析要灵活,支持多种表达方式("明天下午2点"、"14:00"、"两点"等)
- 如果用户没有指定结束时间,默认按1小时计算
- 设备需求要精确匹配,用户要求"投影仪",会议室必须有"是否有投影仪=是"
- 容量判断要严格,会议室容量必须 ≥ 参会人数
- 时间冲突判断要准确,避免重复预约
- 如果简道云 API 调用失败,向用户友好提示错误信息,并建议稍后重试

7.3 配置简道云连接

  1. 在悟帆平台的"连接中心"中,添加简道云连接
  2. 填写简道云的 API Key 和 Secret(从简道云后台获取)
  3. 填写简道云的应用ID(app_id)和两张表单的表单ID(entry_id)
  4. 测试连接,确保可以正常读取和写入数据

配置示例:

  • 简道云 API Base URL:https://api.jiandaoyun.com
  • 应用ID:从简道云应用设置中获取
  • 会议室表表单ID:从简道云表单设置中获取
  • 会议室预约记录表表单ID:从简道云表单设置中获取

联调测试

测试用例

预期结果

正常场景:用户说"帮我约明天下午2点到4点能容纳10人且有投影仪的会议室",存在符合条件的空闲会议室

悟帆解析出时间、人数、设备要求,查询简道云,返回3个候选会议室(按优先级排序),用户选择后成功创建预约记录,返回预约单号

边界场景:用户说"帮我约明天下午2点到4点能容纳10人且有投影仪的会议室",只有一个会议室完全匹配,其他会议室容量不足或缺少设备

悟帆只返回1个候选会议室,用户确认后成功创建预约记录

异常场景:用户说"帮我约明天下午2点到4点能容纳10人且有投影仪的会议室",该时间段所有会议室都已被预约

悟帆告知用户当前没有空闲会议室,建议调整时间或查看其他日期的空闲情况

无问题场景:用户说"帮我约明天上午10点到11点的会议室,5个人就行",没有指定设备要求

悟帆解析出时间和人数,不限制设备条件,返回所有容量≥5人且空闲的会议室,用户选择后成功创建预约记录

时间冲突场景:用户尝试预约一个已被占用的时间段

悟帆检测到时间冲突,将该会议室从候选列表中排除,只返回真正空闲的会议室

踩坑提醒

Q1:悟帆解析用户时间不准确怎么办?

A:这是自然语言理解的常见问题。改进方法:

  • 在任务指令中增加更多时间表达示例(如"明天下午"、"后天上午"、"下周一"等)
  • 对于模糊表达(如"下午"),默认按常见时间段处理(如下午=14:00-18:00),并向用户确认
  • 如果解析结果不确定,主动向用户反问确认(如"您是指明天(2026-05-29)的14:00-16:00吗?")
  • 可以在悟帆技能中集成时间解析库或使用更强大的LLM模型提升解析准确率

Q2:用户选择的会议室在确认瞬间被其他人抢占了怎么办?

A:这是并发冲突问题,解决方案:

  • 在写入预约记录前,再次调用简道云 API 检查该会议室在该时间段是否仍然空闲(双重检查)
  • 如果发现已被占用,向用户提示"抱歉,该会议室刚刚被其他人预约了,请重新选择",并刷新候选列表
  • 在简道云侧设置唯一性约束:同一会议室在同一时间段只能有一条"已确认"状态的预约记录
  • 如果业务允许,可以引入"预占"机制:用户选择后先创建一条"待确认"状态的记录,锁定5分钟,超时未确认则自动释放

文档内容是否对您有帮助?
有帮助
没帮助没帮助
如需获取即时帮助,请联系技术支持
咨询
扫码领取100+零代码资料简道云官方微信号400-111-0890
图标在线咨询
立即体验