千人千面
提示
社区版不支持,请升级到企业版或平台版。请替换licenseKey
本页面介绍如何通过 vipLevel
参数实现针对不同等级用户展示不同的客服内容,实现千人千面的个性化服务体验。
- 演示链接:千人千面演示
- 演示代码:
- 千人千面示例-React
- 千人千面示例-Vue
注意:请确保您已经完成了用户信息对接的基本配置,才能更好地实现千人千面功能。
为什么需要千人千面?
在实际业务场 景中,您可能希望:
- 为不同等级的用户提供差异化的服务内容
- VIP用户获得更详细或更高级的解答
- 根据用户等级展示不同的产品介绍
- 为不同等级用户提供不同的优惠信息
- 实现更精细化的用户运营
通过千人千面功能,可以帮助您为不同等级的用户提供更精准、更个性化的服务体验。
对接方法
微语客服系统支持通过配置参数传入用户等级信息。在初始化客服组件时,通过 chatConfig
配置项传入 vipLevel
参数。
核心参数
以下是千人千面功能的核心参数配置:
chatConfig: {
// 必填参数
org: 'df_org_uid', // 您的组织ID
t: "1", // 会话类型
sid: 'df_wg_uid', // 会话ID
// 用户信息参数
visitorUid: 'visitor_001', // 用户唯一ID
nickname: '访客小明', // 用户昵称
avatar: 'https://example.com/avatar.jpg', // 用户头像URL
// VIP等级参数 - 这是千人千面的关键
vipLevel: 4, // 用户VIP等级,可以是1-10的整数
// 自定义字段,可以传递任何附加信息
extra: JSON.stringify({
userType: 'vip',
registerTime: '2025-01-01',
// 任何其他您希望传递的信息
})
}
完整示例代码
下面是一个完整的千人千面示例,演示了如何根据不同用户等级展示不同内容:
import { useState } from 'react';
import { Button, Card, Typography, Space, Select } from 'antd';
import { BytedeskReact } from 'bytedesk-web/react';
const { Title, Paragraph } = Typography;
const { Option } = Select;
const VipLevelDemo = () => {
// 当前选中的VIP等级
const [vipLevel, setVipLevel] = useState(1);
// 配置客服组件
const config = {
placement: 'bottom-right',
autoPopup: false,
marginBottom: 20,
marginSide: 20,
buttonConfig: {
show: false, // 隐藏默认按钮
},
chatConfig: {
org: 'df_org_uid', // 替换为您的组织ID
t: "1",
sid: 'df_wg_uid', // 替换为您的SID
// 用户信息参数
visitorUid: 'visitor_001',
nickname: '测试用户',
avatar: 'https://example.com/avatar.jpg',
// 设置VIP等级
vipLevel: vipLevel,
extra: JSON.stringify({
userType: 'vip',
registerDate: '2025-05-01'
})
},
locale: 'zh-cn',
};
// 切换VIP等级
const handleVipLevelChange = (level) => {
setVipLevel(level);
};
// 打开聊天窗口
const handleShowChat = () => {
console.log("打开聊天窗口");
(window).bytedesk?.showChat();
};
return (
<div style={{ padding: '24px' }}>
<Title level={2}>千人千面演示</Title>
<Paragraph>
本示例演示如何通过配置参数传入用户VIP等级(vipLevel)到客服组件中。
选择不同的VIP等级,将看到不同的客服内容。
</Paragraph>
<Card style={{ marginTop: '20px' }}>
<Space direction="vertical" size="large" style={{ width: '100%' }}>
<div>
<Title level={4}>当前VIP等级:</Title>
<Select
value={vipLevel}
onChange={handleVipLevelChange}
style={{ width: 200 }}
>
<Option value={1}>普通用户</Option>
<Option value={2}>青铜会员</Option>
<Option value={3}>白银会员</Option>
<Option value={4}>黄金会员</Option>
<Option value={5}>钻石会员</Option>
</Select>
</div>
<div style={{ textAlign: 'center', marginTop: '16px' }}>
<Button type="primary" size="large" onClick={handleShowChat}>
咨询客服
</Button>
</div>
</Space>
</Card>
{/* 引入微语客服组件 */}
<BytedeskReact {...config} />
</div>
);
};
export default VipLevelDemo;