Cal.com 应用商店 Demodesk 应用全解析:AI 销售会议、智能排程与会议视频集成指南
Demodesk 是 Cal.com 应用商店中一个面向销售团队的「会议(Conferencing)」类第三方应用,其核心能力是让销售会议的录制、转写、AI 辅导、日程自动化与安全视频通话围绕 Cal.com 的预约体系运转。本文以应用商店内的 DESCRIPTION.md 为主体,结合其 config.json、安装处理器与注册产物,讲解 Demodesk 的功能构成、在 Cal.com 中的接入原理,以及静态视频链接类应用是如何被安装、校验和启用的。读完你将掌握一条第三方视频/销售应用从「应用商店展示」到「事件类型会议地点」落地的完整链路。
DESCRIPTION.md 在 Cal.com 应用商店中扮演的角色
每一个 Cal.com 应用商店中的应用都包含一个 DESCRIPTION.md,它不只是给开发者阅读的说明,更是应用商店列表页与详情页的展示内容源。Demodesk 的 DESCRIPTION.md 文件顶部有一段 YAML Front Matter:
---
items:
- iframe: { src: https://www.youtube.com/embed/X6XVzJ0E8xY }
- 1.jpeg
- 2.webp
- 3.webp
- 4.webp
---
items 列表声明了应用详情页里用于展示的媒体轮播项:第一项是内嵌的 YouTube 演示视频(对应 iframe 类型),随后 1.jpeg、2.webp、3.webp、4.webp 则指向 static 目录 下的应用截图。Front Matter 之后的正文({DESCRIPTION} 占位符以下的内容)是真正的营销/功能描述文本,Cal.com 应用商店会读取它来渲染应用的详细介绍区域。
从仓库结构看,这类图片目录文件命名具有强约定性——1、2、3 等数字序列直接对应 Front Matter 中的 items 顺序,这也是社区贡献规范中要求新增应用必须补齐 DESCRIPTION.md 的原因。
Demodesk 的功能骨架:DESCRIPTION.md 的三大能力分区
正文围绕一个核心卖点展开——“AI superpowers for your sales meetings”(为销售会议注入 AI 超能力),其下分为三个 H4 区块,分别对应销售周期中的三种典型场景:
用 AI 洞察完成销售教练与新人入职(Coach and onboard sellers)
- 合规录制全部会议:所有会议被自动录制,并宣称遵循 GDPR 与 MiFID 合规要求——这决定了它定位在金融、企业级销售场景;
- AI 转写与总结:借助 Demodesk 自身的 AI 对会议进行转写和摘要提炼;
- 对话指标与记分卡教练团队:围绕会话质量指标(如参与度)和记分卡来辅导销售;
- 关键信息自动写入 CRM:把会议中提炼的关键信息自动沉淀到 CRM,减少人工录入。
自动驾驶式的客户会议排程(Schedule more customer meetings, on auto-pilot)
- 让客户无需邮件往复即可自助选时;
- 对网站线索做质量初筛并路由给合适的人;
- 自动化并控制团队内部的交接(handoff)流程;
- 自动化行政工作并把互动记录同步到 CRM。
值得注意的是,这一部分正是 Demodesk 与 Cal.com 预约引擎天然衔接的接口——「让客户自助选时」在 Cal.com 侧表现为把 Demodesk 会议链接挂到事件类型上,由 Cal.com 承担可用时间计算与预订流程。
开办能转化收入的会议视频(Run secure video meetings that convert into revenue)
- 免下载、专业且安全的视频会议托管;
- 支持互动的屏幕共享;
- 依据标准化 playbook(话术剧本)对销售进行实时辅导;
- 自动化会前准备、会后跟进与 CRM 记录。
上述三块内容在应用详情页中逐条渲染,构成了用户在应用商店里对 Demodesk 的第一层认知。同时,仓库 static 中的界面截图与功能一一呼应:
上图为会议回放/实时分析视图,左侧面板显示 "Client engagement 84%" 与 "AI Summary",视频区内每个参会者带有参与度百分比条,右侧是团队负责人对销售过程的实时评论——正是 DESCRIPTION.md 中「对话指标 + 记分卡 + 实时辅导」的直观呈现。
该图展示了 "What time suits you?" 的预约选时界面与 "The best match" 匹配逻辑,对应「让客户自助选时并按规则路由到合适的人」的能力描述。
config.json:一个「静态视频链接」类会议应用是如何被描述的
DESCRIPTION.md 描述的是“做什么”,而 config.json 描述的是“如何在 Cal.com 中被识别和运行”,两者共同组成应用清单:
{
"name": "Demodesk",
"slug": "demodesk",
"type": "demodesk_conferencing",
"logo": "icon.svg",
"variant": "conferencing",
"categories": ["conferencing"],
"appData": {
"location": {
"type": "integrations:demodesk_video",
"label": "Demodesk",
"linkType": "static",
"organizerInputPlaceholder": "https://demodesk.com/meet/mylink",
"urlRegExp": "^http(s)?:\\/\\/(www\\.)?demodesk.com\\/[a-zA-Z0-9]*"
}
}
}
逐个字段解读其作用:
slug/name:应用唯一标识与展示名。文件头部的注释(Don't modify slug)提示 slug 一经创建不应手工改动,如需修改要走 CLI 命令;type:demodesk_conferencing,在事件类型中把该应用标记为一种会议接入类型;variant: "conferencing"与categories: ["conferencing"]:声明它归属“视频会议”类别,决定其在应用商店分类、以及可被附加到何种事件类型;appData.location:定义会议地点(Location)接入方式,是所有视频应用的灵魂所在:type: "integrations:demodesk_video":该地点在预约表单/事件类型中显示的集成类型标识;linkType: "static":表示采用的是静态链接模式——即组织者预先提供一个固定链接(而非通过 API 动态创建会议),预约后系统把该链接作为会议地址提供给参会者;organizerInputPlaceholder:创建事件类型时组织者输入框中的占位提示,引导其填入形如https://demodesk.com/meet/mylink的链接;urlRegExp:前端对组织者输入的 URL 做正则校验——只允许http(s)://开头的 demodesk.com 域名下以字母数字组成的路径。若填写了不匹配的链接,事件类型保存会被拒绝。
这种「静态链接 + 正则白名单」模式在 Cal.com 的会议应用中很常见,它意味着 Cal.com 不会为每次预约调用 Demodesk 的 API 去创建会议,只需存储并透传会议链接,因此集成成本低、无服务端密钥依赖,是一种轻量的声明式(declarative)接入形态。从 config.json 底部的 "__template": "event-type-location-video-static" 可以确认,它正是由 CLI 依据“event-type-location-video-static”模板生成的——__createdUsingCli: true 也印证了这一点。
安装与注册链路:从声明到可用的源码实现
Demodesk 应用目录下 index.ts 只有一行:
export * as api from "./api";
它将 api 子目录整体导出,api/index.ts 又把安装处理器暴露为 add。真正做安装落地的是 api/add.ts:
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: user, slug, key: {}, teamId }),
};
export default handler;
这段代码说明了几个关键事实:
- Demodesk 是一个 Declarative Handler(声明式处理器),其元数据(
appType、variant、slug)直接取自 config.json,避免重复维护; - 由于无需 OAuth 与外部 API 密钥,安装时通过 安装工具库 的
createDefaultInstallation创建一条空 key 的默认凭据即可; supportsMultipleInstalls: false表示一个用户/团队只能安装一次,这与“静态会议链接、无多账号体系”的特性吻合;- 支持
teamId参数,说明它同时允许组织级(团队)安装。
在 Cal.com 中,这类处理器还会被编译期生成机制收录:新增应用后,构建工具会自动把 Demodesk 写入若干生成文件,本文涉及的三个关键产物分别是:
- apps.metadata.generated.ts:引入
./demodesk/config.json,使应用元数据(含图标、类别、描述)可被应用商店统一查询; - apps.server.generated.ts:登记
demodesk: import("./demodesk/api"),服务端得以在安装时动态加载其 add 处理器; - bookerApps.metadata.generated.ts:把 Demodesk 登记为“书签/预订侧可见”的应用,使预约页能够按需展示该会议地点的图标与标签。
安装使用与适用前提
在自托管或云端 Cal.com 环境中启用 Demodesk 的完整路径如下:
- 安装应用:进入应用商店中的 Demodesk 详情页,或经由
/apps/demodesk完成安装;安装仅触发createDefaultInstallation,不涉及任何外部授权跳转,秒级完成。 - 在事件类型中启用地点:编辑某个事件类型,在“地点(Location)”中选择 Demodesk,并在输入框中按占位提示填写静态链接(须符合
urlRegExp的白名单,如https://demodesk.com/meet/yourlink)。 - 预订与参会:当访客完成预约后,Cal.com 把该静态链接作为会议地址随确认邮件/日历事件一并发送,届时双方可直接进入 Demodesk 的视频会议,享受其录制、转写、AI 辅导与 CRM 同步能力。
需要说明的适用前提与边界:
- Demodesk 本身是 Cal.com 之外的第三方 SaaS(
publisher: "Cal.com, Inc."、官网字段指向 demodesk.com),其 GDPR/MiFID 合规、AI 转写、记分卡等功能声明来源于 DESCRIPTION.md 的应用商店文案,本文只还原其描述与仓库接入事实,不对其产品实际达成度作背书; - 本集成采用静态链接模式,Cal.com 侧不做会议创建/销毁控制,因此录制开关、实时辅导、屏幕共享等均由 Demodesk 会话自身能力决定;
- 若要自行扩展或新建同类应用,可直接复用
event-type-location-video-static模板,然后同步补齐DESCRIPTION.md、config.json 与 api/add.ts 三件套,并让生成脚本产出上述注册文件。
小结
透过 Demodesk 这个实例可以看到 Cal.com 应用商店的完整设计哲学:功能展示(DESCRIPTION.md)、运行元数据(config.json)、安装逻辑(api/add.ts)与编译期注册(各 *.generated.ts)彼此解耦又相互印证。对一个销售赋能类视频应用而言,它在 Cal.com 中的价值正是把「AI 会议辅导」的能力沉淀为用户可预约的会议地点,让排程、会议与 CRM 在一条数据流上完成闭环。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0631
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown00
video-shotcraftAI宣传片skill,使用 Remotion 制作电影级产品视频:提供106 张镜头配方卡和可复用的视频魔板。适用于 Claude Code 与 Codex以及所有其他智能体Markdown00
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python09
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00

