网页聊天组件
房客聊天, 就在您自己的网站上。
一行 script 标签就能在您的网站上放一个聊天气泡。房客从那里给您留言,每段对话都会进入与 Airbnb、Vrbo 相同的 Prohost 收件箱,并由您的 AI 先行回复。
- 一行 script 标签
- 回复进入收件箱
- 住客
周日可以延迟退房吗?
- AI 回复
可以,我们能为您保留到下午两点。
这个组件能做什么
它就是您 Prohost 直订网站上运行的那套房客聊天,只是打包成了可以放到任何您自己网站上的形式。
跑在您自己的网站上
把一行 script 标签粘贴到网站页脚或自定义代码区即可。不用插件、不用构建,也没有需要您自己托管的东西。
所有消息一个收件箱
网页聊天的对话会和各 OTA 的会话一起进入 Prohost 收件箱,团队在一个地方就能回完所有消息。
AI 先来回复
负责房客消息的同一个 AI 在这里也会回复,用的是您房源的资料,需要时再交给真人接手。
三步完成安装
在组件设置里复制代码,粘贴到网站,然后发布。
创建您的组件
在 Prohost 里打开 AI 聊天组件应用,设置访客会看到的名称、问候语和按钮样式。
复制您的代码
在添加到其他网站这一区域复制代码。里面已经带上了您的组件 ID、嵌入密钥和按钮设置。
粘贴到 body 结束标签之前
放进全站页脚或自定义代码区,然后发布。下次加载页面时,按钮就会出现在角落。
<script
src="https://app.prohost.ai/webchat.js"
data-widget="WIDGET_ID"
data-api-key="WIDGET_API_KEY"
data-position="bottom-right"
data-launcher-color="#4F46E5"
data-launcher-icon="chat"
data-sound="on"
async></script>把 WIDGET_ID 和 WIDGET_API_KEY 换成组件设置里的值,或者直接从应用里复制已经填好的代码。嵌入密钥是公开的,且只对该组件有效,不会带来任何账户访问权限。Prohost 在首次展示后会隐藏密钥,如果需要一份可复制的新代码,请使用轮换密钥。
能跑起来的最短写法
只有组件 ID 和嵌入密钥是必填的。省略按钮相关的属性时,无论您在应用里选了什么,按钮都会使用自带的默认值:靛蓝色气泡和聊天图形。面板本身仍然跟随您的设置。
<script
src="https://app.prohost.ai/webchat.js"
data-widget="WIDGET_ID"
data-api-key="WIDGET_API_KEY"
async></script>大多数建站工具都支持:Webflow、WordPress、Squarespace 和 Wix 都能在页脚放自定义代码。
属性参考
加载脚本会读取的全部 data-* 属性。script 标签上的其他内容都会被忽略。
| 属性 | 取值 | 默认 | 作用 |
|---|---|---|---|
data-widget | 您的组件 ID | 必填 | 这段对话属于哪个组件。 |
data-api-key | 您的公开嵌入密钥 | 必填 | 该组件的公开嵌入密钥。仅对该组件有效,不含任何账户访问权限。 |
data-position | bottom-right · bottom-left | bottom-right | 按钮和聊天面板停在哪个角落。 |
data-launcher-color | 十六进制颜色 | #4F46E5 | 按钮气泡的填充颜色。 |
data-accent | 十六进制颜色 | 无 | data-launcher-color 的旧名称。只有在缺少 data-launcher-color 时才生效。 |
data-launcher-icon | chat · lettermark | chat | 按钮上的图形:聊天气泡,或白色的 Prohost 字母标。 |
data-hide-mobile | 仅看是否存在 | 关闭 | 在小于 768px 时隐藏按钮。面板仍可以从您自己的按钮打开,见下文。 |
data-sound | on | 组件设置 | 无论组件设置如何,都为这次嵌入打开回复提示音。见下文。 |
data-hide-mobile 只看有没有写:任何取值,包括空字符串,都会把它打开。其他属性都按取值判断,其中 data-sound 只认小写的 on 这一个精确取值。
回复提示音的工作方式
当回复到达而访客正在看别处时,聊天面板里会响起一声短促、克制的提示音。
为房客播放提示音
组件设置里的开关,也是最终依据。它对这个组件生效的所有场景都适用,包括由 Prohost 托管的直订网站。随时可改,不用动代码。
data-sound="on"
写在您粘贴的 script 标签上的显式覆盖。它只能把提示音打开,没有用来关闭的取值。它的存在是为了让设置上线之前粘贴的代码继续可用,也方便您在某个特定网站上强制打开提示音。
两者有其一即可
只要设置已打开,或者属性的值正好是 on,提示音就会响。应用生成的代码会让两者保持一致:设置打开时带上该属性,关闭时则不写。
想在所有地方静音,请关闭设置并把代码重新复制到网站上。已经粘贴的属性会继续覆盖设置,这是刻意的设计。
访客得先和页面有过交互
浏览器在有人点击、触摸或输入之前会拦截音频。打开按钮算交互,在面板里打字也算,所以发出那条引来回复的消息的访客是能听到的。即便浏览器还是拦下了播放也没关系:按钮上的未读角标才是主要提示,声音只是加分项。
对方正在阅读时绝不会响
面板打开且标签页在前台时不会响,因为回复已经在屏幕上了。面板关闭或标签页在后台时会响。未读角标的规则略窄一些:只有面板关闭时才会出现。
连续多条回复只响一次
多条消息一起到达时只给一次提示,而不是每条一次。
从您自己的页面来驱动
加载脚本会在 window.ProhostWebchat 上暴露一个小型事件总线,您的网站可以据此打开面板,并对面板里发生的事情做出反应。
function wireUpWebchat() {
window.ProhostWebchat.on('webchat_host_message', (event) => {
console.log(event.type);
});
document.querySelector('#my-chat-button')?.addEventListener('click', () => {
window.ProhostWebchat.open();
// window.ProhostWebchat.close() collapses it again.
});
}
if (window.ProhostWebchat) {
wireUpWebchat();
} else {
// src*= rather than src$= — the tag may carry a cache-busting query string.
document
.querySelector('script[src*="/webchat.js"]')
?.addEventListener('load', wireUpWebchat);
}webchat_session_started对话已经建立:访客发出了第一条消息。payload 中带有 conversationId。webchat_message_sent访客发送了一条消息。webchat_host_message您的团队或 AI 的回复到了。它驱动未读角标,开启后也驱动提示音。
和 data-hide-mobile 搭配很好用:在手机上隐藏默认按钮,改用您自己的按钮打开面板。只有来自 Prohost 嵌入页的事件才会被转发,其他来源一律不转发。
在应用里统一管理
名称、问候语、面板强调色和回复提示音都在 AI 聊天组件应用里,所有装了您组件的网站会自动跟着变。按钮的颜色和图标不一样:它们写在代码里,改完之后要把代码重新复制一遍,就像轮换嵌入密钥之后一样。
打开组件应用