集成平台,帮你实现一表跨租户管理公共会议室!

集成平台,帮你实现一表跨租户管理公共会议室!

开发者广场内容精选NaN-NaN-NaN
解决方案
作者:郁寒杰
推荐理由
教你如何有序管理公共会议室,解决预约方式不便捷、占用情况不直观等诸多痛点。
一、日常场景
办公大楼中有许多的公共会议室,不同的租户都需要根据自己的需要,借用公共会议室交流。这些租户并不属于同一个飞书组织,也并不是所有租户都使用飞书平台。现有的方法,通常包括到楼层管理员处预约,或使用微信群、共享文档等方式预约。这带来了很多问题,需要找到一种便捷、直观、统一的公共会议室管理程序。
二、主要痛点
有关使用者的痛点
1、预约方式不便捷:现有的预约方式,无论是指定专人管理,还是微信群、共享文档都不是便捷的预约方式。
2、占用情况不直观
  • 情况1:小东同学使用微信群,预约了本月每周五上午的会议室用来交流。但由于微信群预约消息太多,很快就被淹没。小南同学想预约本周五的会议室,必须在群里搜索,非常繁琐。
  • 情况2:小东同学使用共享文档,提前六个月就预约了本周五的会议室,由于文档存在先来后到,不得排序。小南同学在预约时,就需要在文档中搜索时段。大家填写时段的格式还不一致,很容易错漏,导致重复预约
这是我们现有的预约公共会议室的腾讯文档,预约前,必须进行全表的搜索,且很容易遗漏。
3、错误操作易扯皮:使用上述方式预约,尤其是腾讯文档方式预约,很容易删除别人的预约,且由于权限问题,必须联系文档所有者,才能恢复,尴尬又繁琐。
有关管理者的痛点
缺乏一种统一的、便捷的、直观的管理方法
三、集成模板及解决方式
由于开发者写的集成流太耦合,太多多维表格组件中的表格要替换成可对外发布的新多维表格,而开发者本人太懒,因此没有放集成流包。
需求分析
🌰根据办公大楼中高频的会议室预约场景,我们对整个的预约、释放、日程的发布进行了需求分析。
需求1:便捷的预约指定时段的公共会议室,且能够收到公共会议室预约结果的通知。
需求2:可自行撤回公共会议室的预约,方便他人使用。
需求3:能在公共的平台看到当前实验室的使用状况,可以同步到本人日程
需求4:能最大限度避免误操作别人的预约日程,并且避免自己的预约日程被误操作。
需求5:并不是所有团队都使用飞书平台,让跨平台实现以上四个需求成为可能。
设计数据基座
公共会议室管理总表
🎹带着以上的需求,我们的集成平台同学设计了多维表格和集成工作流,较好的完成了以上所有需求。
在管理公共会议室的时候,该多维表格应是私有的,只需要将预约和释放公共会议室两个表单单独分享出去,就可以根据这个表单进行预约/释放了。
操作人员白名单
如题,一个多维表格。
设计集成流程——预约、释放、发布日程
🌰由于涉及一些敏感的信息,我们分享了一个比较早期的集成流文件。该集成流是通过分支枚举的方式,来管理不同的会议室。若公共会议室过多,则效率降低。如公共会议室不多,我们建议每个会议室都发布一个这样的集成流。如公共会议室较多,我们建议增加一个枚举字段,从而减少集成流运行次数。
1、填充数据基座中的公共会议室可用时间集成流
关于如何将时间切片,用来管理公共会议室的预约。我们思考了很长时间。根据我们在高校中的具体使用场景,得出结论:使用以小时为单位的时间片划分公共会议室,比较合理。
该流程是一开始生成数据基座表格时候使用的流程,用于生成最开始的数据。目前,除非数据灭失,否则都不需要运行该流程。该流程由手动触发,目的是循环填写表格,增加会议室的可用时间。但后面已经有其他自动化流程进行修改。主要就是要循环生成时间(本表格中是往后生成了141天,因为我们一个学期是20周,大家也可以根据自己的需求,生成365天多维表格也不会爆,但建议不要搞太多。),填写如下:
2、动态调整公共会议室的可用时间集成流
1、以141天为例,每天0时,都需要删除昨天的所有可预约时间,增加141天后的可预约时间,这样,使用保持一个141天的预约窗口。
2、每天0-7点通常不会有人使用会议室,需要删除。
3、预约公共会议室集成流
🎨这是公共会议室管理集成流中最重要的一个流程。
1、该流程由网页触发器触发,触发条件是预约表单新增了一个记录,将自动执行一个多维表格自动化流程。webhook将传过来三个参数:room-需要预约的会议室;people-预约人;new_ids-新增记录的ID,cause-预约原因。
250px|700px|reset
2、查询新增的记录ID,根据传过来的new_ids在记录表中找到这个记录,首先判断预约人是否在白名单中,若否,流程终止,发送错误信息到群。
250px|700px|reset
3、从单向关联字段中提取两个值:total-预约人填写的时段总数;record_ids:预约人填写的每个时段在数据基座表格中对应的record_ids。这里需要写一个脚本提取,但需要提取的内容很easy。主要是根据上面截图中的bitable-4的运行结果中提取记录中的单向关联字段。
250px|700px|reset
这里script-1提取了需要被处理的所有id,展示一下:
function handler(input) {
let rec_ids = [];
let record_x = input.record;
let record_1 = record_x.fields.三六四会议室空闲情况表;
rec_ids.push(record_1[0].record_ids);
let split_rec_ids = [];
for (let i = 0; i < rec_ids.length; i++) {
split_rec_ids.push(rec_ids[i]);
}
let rec_ids_nums = rec_ids[0].length;
let result = {
split_rec_ids: split_rec_ids,//记录所有需要被处理的record_id
total: rec_ids_nums,//记录需要被处理的总数
};
return result;
}
4、在数据基座表中根据record_id队列进行更新,将状态更新为占用,把预约人和预约事由引用过来。这里有一个小插曲:存在一个数据写冲突,如果两个人恰好同时预约了公共会议室,必须保护先预约会议室的,所以添加了一个循环,用来检测是否冲突。如果流程运行到此处,检测到占用状态是已占用,则发生冲突,后预约的预约失败。(这里有些同学可能没有看懂,到预约机制就可以看懂了。)
250px|700px|reset
这里script-6用来控制循环次数+确定要预约的id,展示一下:
input:
Cur_Times:代表当前循环次数
results: script-1的结果
function handler(input) {
let total = input.ids_need_delete.total;
let index = total - input.Cur_Times;
let ids = input.ids_need_delete.split_rec_ids[0][index];
return ids;
}
5、开始循环处理,将状态更改为占用,改为占用的时间,将不会在预约公共会议室问卷中再次出现。这也是第4点中的写错误,由于网页缓存问题,可能同学A,B打开问卷时,这个时段都可选择,但只有一人能预约。并且记录用户所有需要预约的时间。
6、如果全部正确执行,发送确认消息到群里,这里需要配置一下群里的机器人,教程很多,不再赘述。
250px|700px|reset
4、释放公共会议室集成流
✍️释放公共会议室集成流完全是预约公共会议室集成流的逆过程,理解了上面的过程,就能完成释放集成流的设计。我们唯一需要多解决的问题是:如何保证不错误释放他人的预约。解决方法是,在问卷中输入预约人的姓名,只有输入的姓名和对应预约时段的姓名(不可见)一致时,释放才有效。
250px|700px|reset
正确释放会议室最终效果:
250px|700px|reset
5、会议室和日程相关联
1、在公共会议室预约的基座——多维表格中设置新的字段,用于储存日程的ID,在公共发布的预约表格中,可以通过多维表格同步/隐藏的方式隐藏该字段。
2、在集成平台中,需要两个工作流:成功预约了会议室->创建日程,成功取消了预约->删除日程。
  • 创建日程的方式:新建一个用户A的日历->多维表格trigger触发工作流->获取用户预约的开始和结束时间->格式化时间->创建日程->将A设为日程所有者->日程创建成功后,ID回填多维表格。
250px|700px|reset
  • 删除日程的方式:多维表格trigger触发工作流->获取要取消的日程ID(通过网址触发器传过来,这就是上一步需要记录的原因)->删除日程,更新多维表格。
日历发布实现方式
1、下载Outlook,下载Outlook Synchronizer,用飞书提供的Caldav方式同步第三方日历与飞书日历导入日程。
2、在网页版outlook中,选择网页发布,就可以实时将日历发布出去了,效果如下。
250px|700px|reset
效果
通过这种方式,任何人员都不必通过飞书,就可以简单的看到公共会议室预约的情况和日历。公共会议室外部的智能屏显上,也可以滚动播放日历的网页
四、集成效果
有关使用者
1、预约渠道简单直观:只需要填写一个表单,选中会议室,直观的选中需要预约的时段,提交问卷即可。
2、预约反馈及时明确:预约后,只要加入飞书群(目前不加入还不行),就能看到关于预约是否成功,或预约失败的原因。
3、日程安排一目了然:可以通过outlook发布出的网页,或者自己设备caldav订阅,一目了然看到公共会议室使用状态。
有关管理者
1、跨租户跨平台管理成为可能。
2、不用担心误删除带来的麻烦。
3、使用多维表格权限管理,不必担心篡改问题。
五、写在最后
本指南虽然没有给出集成流文件,但根据给出的多维表格设计思路,相信聪明的读者朋友已经有比我们更好的集成平台设计思路了。毕竟这个集成流是开发者第一次接触到集成平台,流程难免繁琐。
先进生产力和业务协同平台
联系我们立即试用

先进团队,先用飞书

欢迎联系我们,飞书效能顾问将为您提供全力支持
分享先进工作方式
输送行业最佳实践
全面协助组织提效
联系我们立即试用