回拨小部件
回拨小部件是一个小型的可嵌入表单,它让你的网站访客留下电话号码并接到来自你 AI 代理的回拨——通常在几秒钟内。与其要求访客拨打电话,不如让对话来找他们。
这是第五种小部件类型,与浮动、胶囊、浮动胶囊和内联小部件并列——但它的工作方式非常不同。其他小部件在浏览器中开始语音对话。回拨小部件则排队一通真实的电话通话,由你的代理通过你的出站号码拨出。
何时使用
| 场景 | 为什么回拨小部件适合 |
|---|---|
| 潜在客户生成落地页 | 访客用一个电话号码作出承诺,代理在下一分钟内对其进行资格审核 |
| 高意向产品页 | 无需让访客拨号即可"与专家交谈" |
| 移动优先的站点 | 在胶囊上轻点一下,无需权限提示,无需耳机 |
| 非营业时间覆盖 | 访客在下班后留下号码,代理在队列开放时拨打 |
| 相比表单减少摩擦 | 访客只提交一个字段就能获得即时答复 |
资格要求
在启用回拨小部件之前,你的账户需要满足三个条件:
| 要求 | 原因 |
|---|---|
| 付费套餐(Starter 或更高) | 回拨期间消耗的出站分钟数按分钟计费 |
| 分配给代理的已验证出站电话号码 | 代理需要一个真实的号码来拨出 |
| 你工作区上的已验证邮箱 | 在解锁出站通话前确认所有权 |
如果缺少其中任何一项,代理 Widgets 标签页中的回拨小部件部分会显示一条提示,告诉你确切需要修复什么。在这三项全部就位之前,小部件保持禁用。
回拨小部件在免费套餐上不可用,因为它会拨打出站电话。所有其他小部件类型(浮动、胶囊、内联)仍然免费。
设置
1. 在代理上启用回拨
- 打开你的代理并前往 Widgets 标签页。
- 滚动到回拨小部件部分。
- 打开**"启用回拨小部件"**开关。
- 配置:
- 重试次数——如果访客不接听,代理重试的次数(1–5,默认 3)。
- 重试间隔——尝试之间的分钟数(1–30,默认 5)。
- 小部件语言——表单、状态消息和国家选择器向访客展示所用的语言(提供 14 种语言——见下文)。
- 主题——浮动胶囊和对话框的配色方案(使用与其他小部件相同的主题调色板)。
- 保存。
设置旁边会出现小部件的实时预览,让你立即看到你的更改——无需部署即可测试外观。
2. 复制嵌入代码片段
在同一部分中,复制 HTML 代码片段:
<hanc-ai-callback agent-id="YOUR_AGENT_ID"></hanc-ai-callback>
<script src="https://unpkg.com/hanc-webrtc-widgets@latest" async type="text/javascript"></script>
将它粘贴到你的网站中一次,通常就放在 </body> 之前。小部件会作为一个浮动胶囊出现在页面的角落。
@latest 标签意味着你的站点会在新的小部件版本发布时自动采用它们。如果你想完全控制升级,可固定到特定版本(例如 hanc-webrtc-widgets@1.4.0)。
访客看到什么
小部件引导访客经历四种状态:
| 状态 | 访客看到什么 |
|---|---|
| 表单 | 角落里的浮动胶囊。点击打开。左侧是国家选择器,右侧是电话输入框,还有提交按钮。 |
| 排队中 | "你在队列中——大约还有 N 秒我们就会给你打电话。"实时更新。 |
| 拨号中 | "我们正在给你打电话。"在通话接通或失败前一直保持。 |
| 已完成 / 失败 | 一条简短的确认,或一条友好的错误提示,带有"重新加载页面以再次回拨"的提示。 |
表单会根据所选国家的国家格式自动验证电话号码,除非号码看起来合理,否则拒绝提交。
国家覆盖范围
国家选择器覆盖欧洲(EU + DACH + UK)、北美(US + Canada),以及一组精心挑选的广泛支持的其他国家。每个国家显示其国旗、名称和一个采用本地格式的示例占位符,让访客知道该输入什么。
如果你的访客使用的某个国家未列出,请联系 support@hanc.ai——覆盖范围会定期扩展。
HTML 属性
小部件在 <hanc-ai-callback> 标签上接受这些属性:
| 属性 | 必填 | 描述 |
|---|---|---|
agent-id | 是 | 你代理的唯一标识符 |
locale | 否 | 为此页面覆盖小部件的 UI 语言(例如 locale="de")。如果你的站点是多语言的且页面语言环境与代理的默认值不匹配时很有用。 |
theme | 否 | 为此页面覆盖配色主题 |
position | 否 | 浮动胶囊锚定的位置(bottom-right、bottom-left、top-right、top-left) |
任何你未设置的属性都会回退到你在仪表板中为代理配置的值。
示例:多语言站点上的德语页面
<hanc-ai-callback agent-id="YOUR_AGENT_ID" locale="de"></hanc-ai-callback>
<script src="https://unpkg.com/hanc-webrtc-widgets@latest" async></script>
胶囊文本、对话框标签、国家选择器和状态消息都会切换为德语。代理本身仍然以它所配置的语言说话——locale 只影响访客在页面上读到的内容。
小部件语言
小部件 UI 内置 14 种语言:
| 代码 | 语言 |
|---|---|
en | English |
de | Deutsch |
fr | Français |
es | Español |
it | Italiano |
pt | Português |
pl | Polski |
cs | Čeština |
hu | Magyar |
tr | Türkçe |
kk | Қазақша |
zh | 中文 |
ru | Русский |
uk | Українська |
代理按优先级顺序从三个地方选择其语言:
- 嵌入代码上的
locale="…"属性(最高优先级) - 在代理的 Widgets 标签页中设置的小部件语言
- 英语(默认)
小部件语言只影响访客在屏幕上读到的文字——标签、国家选择器、状态消息。实际的语音对话以你的代理所配置说话的语言进行。
重试行为
如果访客第一次没有接听,代理会等待配置的间隔后再次拨打——最多达到配置的尝试次数。
- 尝试次数:1–5(默认 3)
- 间隔:1–30 分钟(默认 5)
小部件向访客显示每次尝试的状态。在所有尝试都失败后,小部件切换到"我们没能联系到你"状态,并附上一条礼貌的消息。
三次尝试、每次间隔五分钟对大多数潜在客户生成页面效果很好——足够快,访客还在浏览;足够温和,不会让人觉得咄咄逼人。如果你的受众倾向于忽略陌生号码,可以调高它。
每次页面加载仅一次回拨
一旦访客提交了他们的号码,小部件会在该页面生命周期的剩余时间内锁定自己:
- 关闭对话框会收起胶囊,但不会重置表单。
- 重新打开会显示当前状态(排队中 / 拨号中 / 已完成 / 失败),而不是一个全新的表单。
- 要进行第二次回拨,访客需要重新加载页面。
这可以防止在一通电话已在路上时意外重复提交。如果访客从对话框中明确取消了他们排队的回拨(排队界面上的"取消"按钮),锁定会被释放,他们可以立即重新提交。
如果他们在回拨过程中重新加载会怎样?
如果访客在代理仍在重试其号码时重新加载页面,小部件会检测到针对同一号码的活跃回拨已存在,并静默地重新连接到它——没有重复拨号,没有第二个队列条目。访客只会看到他们现有的状态从上次中断处继续。
并发与吞吐量
单个代理最多可以同时进行 10 个回拨。超过该数量的提交会在队列中等待,并在容量释放时拨打。
队列持续排空——如果你没有接近并发上限,大多数访客在提交后几秒内就会被拨打。
垃圾与滥用防护
回拨小部件会拨打真实的电话,因此它有内置的保护措施,防止恶意流量拉高你的账单。这些措施自动工作——你无需配置任何东西。
| 保护措施 | 访客的体验 |
|---|---|
| "我不是机器人"检查 | 当平台上启用了滥用防护时,访客在回拨排队前完成一个快速的 Google reCAPTCHA。真正的访客一秒内就能通过;机器人则被拦截。 |
| 号码验证 | 表单拒绝提交与所选国家不合理匹配的号码,因此拼写错误和垃圾号码永远不会被拨打。 |
| 高费率与覆盖范围外的号码 | 高费率线路、某些 VoIP 号段以及支持覆盖范围外的号码不会通过电话回拨。如果访客的浏览器支持,小部件会改为提供浏览器内语音通话;否则他们会看到一条礼貌的"我们无法拨打此号码"消息。这可以阻止小部件被滥用于拨打昂贵的高费率号码。 |
| 重复提交限制 | 同一号码在一小时内对一个代理只能排队有限的次数。超过限制的访客会看到一条友好的"我们很快会联系你"的消息,而不是排队界面。 |
存在这些保护措施是因为一个公开的回拨表单是明显的滥用目标——否则有人可能将它指向高费率号码,或用机器人猛烈冲击它来耗尽你的出站分钟数。这些保护措施在后台悄然运行;普通访客永远不会注意到它们。
仪表板中的实时预览
Widgets 标签页在设置旁边显示回拨小部件的实时预览。你所做的任何更改——主题、语言、重试数字——都会立即更新预览。你不必部署你的站点就能看到小部件的外观。
预览使用一个带有完整国家列表和演示资格的模拟清单,因此即使在出站回拨尚不可用的套餐上,小部件也能渲染。
嵌入式跟踪
小部件发出与其他小部件相同的 call-start 和 call-end 事件。如果你想触发自己的分析,可以在 JavaScript 中监听它们:
const widget = document.querySelector('hanc-ai-callback');
widget.addEventListener('call-start', () => {
// Visitor's callback was just connected — track as conversion
});
widget.addEventListener('call-end', () => {
// Callback finished — track duration, outcome, etc.
});
套餐可用性
| 套餐 | 回拨小部件 |
|---|---|
| Free | 不可用(需要出站呼叫) |
| Starter / Pro / Business / Enterprise | 可用 |
所有付费套餐都获得相同的小部件功能集。每次通话的费用遵循你正常的出站费率——参见账单。