
Cal.com 应用商店之 Salesroom 集成面向销售场景的实时 AI 视频会议应用接入指南【免费下载链接】cal.diyScheduling infrastructure for absolutely everyone.项目地址: https://gitcode.com/GitHub_Trending/ca/cal.diySalesroom 是 Cal.com 应用商店packages/app-store中一个面向销售场景的实时 AI 视频会议应用它作为一个静态链接式static link的视频会议地点类型接入预约流程让会议组织者在创建事件类型时直接填写自己的https://user.sr.chat个人链接参会者即可通过该链接加入线上会议。本文基于 Salesroom 的官方应用描述文档 与仓库中的 应用配置、安装逻辑 等源码系统讲解 Salesroom 的应用定位、核心功能、在 Cal.com 中的接入原理与配置细节帮助开发者理解一个视频会议类应用如何通过极简的声明式配置挂载到 Cal.com 的预约与会议体系中。应用定位面向销售团队的实时 AI 会议平台Salesroom 是一个把会议各个环节连接起来、推动交易向前发展a meeting platform that connects the dots and moves deals forward的实时 AI 视频会议平台。其核心理念是帮助销售人员在每一场线上会议中表现得更出色提升买家参与度buyer engagement并在一次次通话中持续保持高效产出。用仓库中 config.json 的官方简介来说它的价值主张是解锁实时 AI将销售水平提升到新高度Unlock real-time AI and take your sales game to the next level。该应用在 Cal.com 应用商店中被归类为conferencing会议类别类型标识为salesroom_conferencing模板为event-type-location-video-static——即事件类型地点-视频-静态链接模板。这意味着 Salesroom 不是像 Daily 那样由 Cal.com 自动生成会议 URL 的动态会议应用而是要求会议组织者预先拥有一个固定的 Salesroom 个人房间链接并在创建事件类型时手动填入。对销售代表Sales Reps的价值Salesroom 对一线销售代表的帮助聚焦在提升买家参与度、消除多任务负担、让 CRM 更新自动化三个方向具体能力包括实时洞察在会议进行中实时获知哪些内容最能引起买家共鸣并在买家注意力下降时收到提醒receive real-time insights on what resonates most with buyers during meetings, and get notified when attention drops。跨会议跟踪在两次会议之间持续追踪买家的参与度帮助销售把精力集中在最有成交潜力的线索上keep track of buyer engagement between meetings to focus on the most promising leads。实时辅导在每场会议中提供个性化指导与演练建议帮助销售化解客户异议、提升转化率get personalized guidance and coaching in every meeting, overcoming objections and increasing conversion。会后自动化销售只需专注卖本身由 Salesroom 自动完成 CRM 更新、生成视频精彩片段video highlights、并预先起草跟进邮件pre-writes follow-up emails。对销售管理层Sales Leadership的价值面向销售管理层Salesroom 的卖点是整合销售技术栈、提高采用率、让辅导进入自动驾驶模式整合工具链用一个统一的会议平台替换多个工具从而节省成本、精简工作流replace multiple tools with one unified meeting platform。增强 HubSpot CRM以准确的会议洞察增强 HubSpot CRM改进销售报表enhance HubSpot CRM with accurate meeting insights for improved reporting。辅导自动化通过智能提示卡smart cue cards实现辅导自动化帮助销售代表化解异议、改善线上沟通技巧automate coaching with smart cue cards。洞察共享通过免费的观察者许可viewer licenses和分享到 Slack 的片段功能在公司内部共享有价值的客户对话洞察share valuable customer conversation insights across the company with complimentary viewer licenses and easy snippet sharing to Slack。仓库中的模块结构Salesroom 在仓库中是一个独立的 App 目录位于 packages/app-store/salesroom结构非常精简packages/app-store/salesroom/ ├── api/ │ ├── add.ts # 安装处理器声明式安装 │ └── index.ts # API 出口 ├── static/ │ ├── 1.jpeg ~ 5.jpeg # 应用商店展示截图 │ ├── icon.svg # 应用图标 │ └── salesroom-demo.mp4 # 演示视频 ├── DESCRIPTION.md # 应用商店展示描述本文主体 ├── config.json # 应用元数据与地点类型配置 ├── index.ts # 模块出口 └── package.json其中index.ts只有一行export * as api from ./api;用于向应用商店系统暴露该应用的 APIpackage.json 声明了包的内部名称为calcom/salesroom仅依赖calcom/lib与calcom/types两个工作区包体现了这类静态链接型应用几乎不依赖外部 SDK 的轻量特征。config.json应用元数据与地点类型的声明式配置Salesroom 的核心配置集中在 config.json它是 Cal.com 应用商店系统读取该应用元数据与地点行为的主要来源{ /*: Dont modify slug - If required, do it using cli edit command, name: Salesroom, slug: salesroom, type: salesroom_conferencing, logo: icon.svg, url: https://salesroom.com/, variant: conferencing, categories: [conferencing], publisher: Cal.com, Inc., email: supportcal.com, appData: { location: { type: integrations:{SLUG}_video, label: {TITLE}, linkType: static, organizerInputPlaceholder: https://user.sr.chat, urlRegExp: ^https:\\/\\/.\\.sr\\.chat } }, description: Unlock real-time AI and take your sales game to the next level, isTemplate: false, __createdUsingCli: true, __template: event-type-location-video-static }各字段含义与作用如下name/slug应用显示名与唯一标识符。配置文件顶部注释明确提示不要直接修改 slug如需修改应通过 CLI 的编辑命令完成因为 slug 会作为appId写入凭据表。type应用类型值为salesroom_conferencing最终会以integrations:salesroom_video的形式注册为事件地点类型见下文appData.location.type的{SLUG}替换逻辑。logo指向static/icon.svg的应用图标。url应用官网。variant与categories均为conferencing表明它属于会议类应用会在应用商店的分类与安装筛选逻辑中生效。publisher/email发布方与支持邮箱Cal.com, Inc. / supportcal.com。appData.location地点类型定义这是它接入 Cal.com 预约体系的关键typeintegrations:{SLUG}_video其中{SLUG}会被替换为salesroom最终得到integrations:salesroom_video。label{TITLE}被替换为Salesroom。linkType: static静态链接模式表示会议链接由组织者预先提供而非系统动态生成。organizerInputPlaceholderhttps://user.sr.chat是组织者在创建事件类型时输入个人链接的占位示例。urlRegExp^https:\/\/.\..sr\.chat用于校验组织者填写的链接是否合法必须以https://开头域名符合xxx.sr.chat模式。description应用商店中的一句话简介。isTemplate: false与__template、__createdUsingCli标记该应用不是模板并记录其是由 CLI 以event-type-location-video-static模板创建的。接入原理静态链接式会议地点在 Cal.com 中的工作方式Salesroom 接入 Cal.com 的方式可以从 locations.ts 的运行时逻辑中得到完整的印证。Cal.com 在启动时会遍历应用商店所有应用的元数据appStoreMetadata对每个含appData.location的应用执行模板变量替换将{SLUG}、{TITLE}替换为真实值并基于linkType决定地点输入行为当linkType static时系统将organizerInputType强制设为text见 locations.ts要求组织者在创建事件类型时必须手动输入会议链接代码中还对以https?://开头的占位符做前导空格处理以避免翻译流程误删协议前缀。urlRegExp会在事件类型的链接校验中生效locationsResolver使用 zod 对link字段做正则校验若不匹配^https:\/\/.\..sr\.chat会抛出invalid_url_error_message并附带示例链接https://user.sr.chat见 locations.ts。这保证了最终落入数据库的会议链接格式可预期。getLocationByType(integrations:salesroom_video)能根据地点类型字符串找到对应的地点定义用于预约成功页、确认邮件等环节展示可读的会议信息getSuccessPageLocationMessage、getHumanReadableLocationValue等均基于该机制工作。换言之Salesroom 这类静态链接应用不需要任何会议 API 适配器Cal.com 不会为它创建会议或生成 URL会议链接的维护完全在 Salesroom 平台侧完成——这也是该应用模块如此精简的根本原因。安装流程声明式安装处理器Salesroom 的安装逻辑位于 api/add.ts采用了 Cal.com 的声明式安装处理器AppDeclarativeHandler模式import { createDefaultInstallation } from calcom/app-store/_utils/installation; import type { AppDeclarativeHandler } from calcom/types/AppHandler; import appConfig from ../config.json; const handler: AppDeclarativeHandler { appType: appConfig.type, variant: appConfig.variant, slug: appConfig.slug, supportsMultipleInstalls: false, handlerType: add, createCredential: ({ appType, user, slug, teamId }) createDefaultInstallation({ appType, user, slug, key: {}, teamId }), }; export default handler;关键点解读appType、variant、slug全部从config.json读取保证单一数据源。supportsMultipleInstalls: false每个用户/团队只能安装一次 Salesroom避免重复安装产生歧义。handlerType: add注册为安装add处理器。createCredential调用 createDefaultInstallation由于 Salesroom 无需 OAuth 授权或 API Key直接以空key: {}在Credential表中创建一条type: salesroom_conferencing、appId: salesroom的凭据记录并可挂到个人userId或团队teamId维度。该 API 通过 apps.server.generated.ts 中的salesroom: import(./salesroom/api)注册进应用商店服务器端路由用户在 Cal.com 应用商店点击安装时即触发上述流程安装完成后integrations:salesroom_video地点类型即出现在事件类型编辑器的会议地点选项中。使用场景与操作流程结合 Salesroom 的定位与 Cal.com 的预约流程其典型使用步骤如下注册 Salesroom 账号并创建个人会议链接形如https://user.sr.chat。在 Cal.com 应用商店安装 Salesroom点击安装后系统通过上述声明式处理器创建一条空凭据无需 OAuth 跳转。在事件类型Event Type中选择会议地点将地点设置为Salesroom填入个人sr.chat链接若链接格式不符合urlRegExpCal.com 会在保存时提示错误。发布预约链接受邀者完成预约后确认邮件与预约成功页会展示组织者提供的 Salesroom 会议链接。会议进行中销售代表借助 Salesroom 的实时 AI 洞察、注意力提醒与辅导提示卡推进会议会后由 Salesroom 自动完成 CRM 更新、生成视频精彩片段并起草跟进邮件。这一流程使 Salesroom 与 Cal.com 的预约、提醒、确认邮件体系无缝衔接同时把会议内体验完整保留在 Salesroom 平台内。小结Salesroom 集成展示了 Cal.com 应用商店中静态链接式视频会议应用的典型接入范式通过一份 config.json 声明地点类型integrations:salesroom_video、静态链接、sr.chat域名校验配以一个极简的声明式安装处理器 api/add.ts即可让一个面向销售场景的 AI 会议平台完整融入预约体系而无需实现任何视频 API 适配器。对开发者而言若要为 Cal.com 新增同类自带固定会议链接的应用Salesroom 的目录结构、配置字段与安装模式是最直接、最完整的参考模板官方模板名event-type-location-video-static也印证了这一点。【免费下载链接】cal.diyScheduling infrastructure for absolutely everyone.项目地址: https://gitcode.com/GitHub_Trending/ca/cal.diy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考