会议链接模块
线上或混合活动的入会信息:服务商标签、加入链接、开始时间,以及加入链接应在开始前多少分钟显示为"进行中"。它是网络研讨会或远程会议邀请中"点击这里加入"这一刻背后的模块,无论收件人是提前一周打开邮件,还是在通话开始前三十秒才打开,都能保持准确。
工作原理
服务商字段(Zoom、Google Meet、Microsoft Teams 或自定义)仅用于展示——不涉及与任何这些服务商的 OAuth 或账户连接,只是你自己粘贴的一个普通 URL。它的作用仅仅是决定加入按钮上的文案("在 Zoom 中加入" vs. 自定义时通用的"加入会议"),仅此而已。
已发送邮件的 HTML 始终将加入按钮渲染为一个真实、可点击的链接,这与倒计时和商品模块所遵循的"发送时即为静态"约定相同。邮件无法随着会议开始时间的临近而重新获取,因此无法在邮件中对其进行限制。
按钮旁边有一行状态文字和一个徽章跟踪倒计时。当 startsAt 还在未来时,它会显示"还有 Xd Xh Xm 开始"(不足一天后则显示"Xh Xm"),旁边还有一个使用与倒计时模块相同的倒计时图片技术生成的小型服务器端渲染 GIF。即使这只是一张按需重新生成的静态图片,而不是客户端动画,它也能在每次打开时都正确地继续跳动。开始时间一过,徽章就会切换为"正在进行",不再显示倒计时。
托管的实时预览是这个模块真正对加入控件进行限制的唯一场景,因为与已发送的邮件不同,实时预览在每次访问时都会重新获取数据。在那里,只有当渲染时间落在 startsAt 之前的 opensMinutesBefore 分钟以内时,加入按钮才会出现。在这个窗口打开之前,收件人看到的是一个不可点击的灰色提示,写着"将在开始前 N 分钟开放"(如果 opensMinutesBefore 为 0,则显示"尚未开放"),而不是一个可用的链接。这是根据模块自身的属性与当前时间同步计算得出的——不涉及 Firestore 读取,也没有存储任何响应状态——因此在每次实时预览渲染时开销都很小。完全没有设置 startsAt 的模块,无论在邮件中还是实时预览中都始终开放,因为没有可供限制的依据。
可选的电话拨入信息一旦填写,会在所有层级中都以纯文本形式显示在加入按钮旁边——它本身不是链接,只是给纯语音加入者提供的一个电话号码。
可配置字段:
- 服务商 — Zoom、Google Meet、Microsoft Teams 或自定义(仅用于展示)。
- 加入链接 — 按钮跳转到的位置。
- 开始时间 — 会议的开始时间;同时驱动"还有…开始"徽章和实时预览的限制逻辑。
- 电话拨入(可选) — 以纯文本形式渲染的电话号码。
- 加入链接在开始前多少分钟开放 — 实时预览的限制窗口(默认 15;为 0 表示链接仅在开始时刻之前保持不可点击)。
- 卡片的背景色、内边距、边框和圆角半径。
- 状态标签的颜色/字号,以及加入按钮的颜色/背景色覆盖项。
会议链接模块没有任何需要回答的内容——它是一段实时更新的内容,而不是一个问题——因此它从不会出现在响应仪表盘或 CSV 导出中。加入按钮的点击本身仍会像其他任何链接一样,通过所有带链接的普通模块共用的通用点击追踪插槽,被记录在模块级点击热力图中。
示例
Subject
Your seat is booked — join link inside
一封网络研讨会邀请邮件可以在正文靠上的位置搭配一个倒计时模块与会议链接模块——倒计时在活动前几天营造紧迫感,临近开始时则由会议链接徽章接手,给出精确的"还有多久开始"读数。对于混合活动,可以在同一封邮件中同时放入会议链接和活动场地模块,让远程和现场参与者各自获得适用于自己的控件。"活动"项目用途正是以这样的组合作为起点——参见活动与网络研讨会。将 opensMinutesBefore 设置为 10 或 15 之类的值,可以避免过早点击的人加入一个几乎空无一人、还什么都没开始的通话。
静态回退效果是什么样子
<div style="margin:12px 0;background-color:transparent">
<p style="margin:0 0 6px;font-size:13px;font-weight:600;color:#111827">Starts in 2h 14m</p>
<img src="https://mailinapp.com/api/countdown?t=1753401600000&c=111827&s=9f2a..." width="220" height="40" alt="Starts in 2h 14m"
style="display:block;max-width:100%;height:auto;margin-bottom:8px" />
<a href="https://zoom.us/j/123456789"
style="display:inline-block;padding:10px 20px;background-color:#4f46e5;color:#ffffff;
border-radius:6px;text-decoration:none;font-size:14px;font-weight:600">
Join on Zoom
</a>
<p style="margin:8px 0 0;font-size:13px;color:#4b5563">Dial in: +1 415 555 0100</p>
</div>
这就是邮件层级:一个实时倒计时徽章、一个始终可点击、直接指向会议 URL 的加入链接,以及纯文本的电话拨入信息——没有任何限制,因为邮件在发送时是静态的。