聊天栏
座席回复或发起与访客的聊天后,会打开聊天窗口的右侧面板,显示该应用程序。
示例清单
“位置”:{
“聊天”:{
“chat_sidebar”:“资产/ iframe.html”
}
},
中提供的对象所有位置,在此位置可使用以下对象和附加动作:
事件
除了核心事件,聊天侧边栏中的应用程序可以使用以下事件:
- channel.chat.start
- channel.chat.end
- channel.department.changed
- channel.message.received
- channel.message.sent
- channel.textarea.changed
- channel.ticket.created
- channel.window.inbackground
- channel.window.infocus
- visitor.display_name.changed
- visitor.email.changed
- visitor.phone.changed
- visitor.notes.changed
channel.chat.start
聊天开始时触发。
例子:
客户端.在(“channel.chat.start”,(evt)=>{
控制台.日志(evt);
/ /例如:
// -当频道信息不可用时,例如开始一个新的聊天
/ / {}
// -当通道信息可用时
/ / {
// "channel": "#supportchat:1-12345",
// "display_name": "访客123",
// "nick": "visitor:1-12345",
// "ts": 1582100450713
/ /}
});
channel.chat.end
聊天结束时触发。
例子:
客户端.在(“channel.chat.end”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {
// "chat": [
// {"channel": "#supportchat:1-12345", "display_name": "Visitor 123", "nick": "Visitor:1-12345", "ts": 1582100450712},
// {"channel": "#supportchat:1-12345", "display_name": "Visitor 123", "message": "hello", "nick": "Visitor:1-12345", "ts": 1582100450713},
// {"channel": "#supportchat:1-12345", "display_name": "John", "nick": "agent:456", "ts": 1582100450733},
/ /{“通道”:“# supportchat: 1 - 12345”,“display_name”:“约翰”,“消息”:“嗨”,“尼克”:“代理:456”,“t”:1582100450921},
// {"channel": "#supportchat:1-12345", "display_name": "Visitor 123", "nick": "Visitor:1-12345", "ts": 1582100781395},
/ /……
/ /)
/ /}
});
channel.department.changed
当聊天对象改变部门时触发。
例子:
客户端.在(“channel.department.changed”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {
// id: 12345;
// "name": "test department";
// "event_name": "channel.department.changed"
/ /}
});
channel.message.received
当代理接收到消息时触发。
例子:
客户端.在(“channel.message.received”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {
// "channel": "#supportchat:1-12345",
// "display_name": "访客123",
// "message": "hello";
// "nick": "visitor:1-12345",
// "ts": 1582100671235
/ /}
});
channel.message.sent
当代理发送消息时触发。
例子:
客户端.在(“channel.message.sent”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {
// "channel": "#supportchat:1-12345",
// "display_name": "John",
// "message": "hi";
// "nick": "agent:456",
// "ts": 1582100450921
/ /}
});
channel.textarea.changed
当输入文本区域改变时触发。
例子:
客户端.在(“channel.textarea.changed”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {
// "textarea_value": "hi"
/ /}
});
channel.ticket.created
在创建票据时触发。
例子:
客户端.在(“channel.ticket.created”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {
// ticket_id: 8266
/ /}
});
channel.window.inbackground
当聊天窗口在后台时触发。
例子:
客户端.在(“channel.window.inbackground”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {}
});
channel.window.infocus
当聊天窗口处于焦点时触发。
例子:
客户端.在(“channel.window.infocus”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {}
});
visitor.display_name.changed
当访问者的display_name改变时触发。
例子:
客户端.在(“visitor.display_name.changed”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {
// "event_name": "visitor.display_name.changed",
// "value": "Visitor 456"
/ /}
});
visitor.email.changed
当访问者的电子邮件更改时触发。
例子:
客户端.在(“visitor.email.changed”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {
// "event_name": "visitor.email.changed",
// "value": "(电子邮件保护)”
/ /}
});
visitor.phone.changed
当访客的手机更换时触发。
例子:
客户端.在(“visitor.phone.changed”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {
// "event_name": "visitor.phone.changed",
// "value": "123456789"
/ /}
});
visitor.notes.changed
当访客的笔记改变时触发。
例子:
客户端.在(“visitor.notes.changed”,(evt)=>{
控制台.日志(evt);
/ /例如:
/ / {
// "event_name": "visitor.notes.changed",
// "value": "new notes"
/ /}
});
代理对象
表示当前正在查看的聊天的一部分的所有代理。
属性
代理
获取聊天中所有代理的信息。
得到
客户端.得到(“代理”);
返回
{
“代理”:{
<agent_id>:{
用户对象属性
},
…
}
}
看到CurrentUser对象属性。
聊天的对象
表示当前正在查看的聊天。
闲谈,聊天
检索聊天对象及其所有属性。
得到
客户端.得到(“聊天”)
返回
{
“聊天”:{
//聊天对象属性
}
}
属性
行动
chat.id
检索聊天的id。返回零
如果聊天还没有开始。
得到
客户端.得到(“chat.id”);
返回
{
“chat.id”:字符串
}
chat.department
检索聊天的部门。返回零
如果聊天内容不属于任何部门。
得到
客户端.得到(“chat.department”);
返回
{
“chat.department”:{
“id”:整数,
“名称”:字符串
}
}
chat.messages
获取聊天中已发送的所有消息。
得到
客户端.得到(“chat.messages”);
返回
{
“chat.messages”:[
{
“通道”:字符串,
“尼克”:参观者:<用户id >”或“代理:代理id > <”,
“display_name”:字符串,
“消息”:字符串,
“t”:整数,
“msg_lang_code”:字符串
}
…
]
}
chat.tags
获取代理添加的现有聊天标记。
要获取聊天触发器设置的标记,使用visitor.tags.
得到
客户端.得到(“chat.tags”);
返回
{
“chat.tags”:数组的字符串
}
chat.tags.add
向现有聊天标记添加标记。
调用
客户端.调用(“chat.tags.add”,价值);
参数
- 要添加的聊天标记字符串。
笔记
- 只有当加载了应用程序的代理已经是聊天的一部分时,才允许此操作。
- 要添加的标记必须是预定义标记列表的一部分。
chat.tags.remove
从现有聊天标记中删除标记。
调用
客户端.调用(“chat.tags.remove”,价值);
参数
- 要删除的聊天标记字符串。
笔记
只有当加载了应用程序的代理已经是聊天的一部分时,才允许此操作。
chat.joinChat
允许应用程序强制座席加入聊天。
调用
客户端.调用(“chat.joinChat”);
chat.sendChat
允许应用程序代表查看聊天的代理向聊天发送消息。
调用
客户端.调用(“chat.sendChat”,价值);
参数
- 要在聊天中发送的消息字符串。
笔记
只有当查看代理已经是聊天的一部分时,才允许此操作。
chat.postToChatTextArea
允许应用程序在聊天自己的文本区域设置预定义的消息。除非座席在聊天中单击发送按钮,否则不会在聊天中发送此消息。
调用
客户端.调用(“chat.postToChatTextArea”,价值);
参数
- 要显示在聊天文本区域上的消息字符串。
笔记
- 只有当查看代理已经是聊天的一部分时,才允许此操作。
- 此操作将使用消息覆盖文本区域的内容。
访问者对象
表示当前正在查看的聊天中的访问者。
游客
检索访问者对象及其所有属性。
得到
客户端.得到(“访客”)
集
客户端.集({
“visitor.name”:value1,
“visitor.email”:value2,
“visitor.phone”:value3,
“visitor.notes”:value4
})
返回
{
“访客”:{
//访问者对象属性
}
}
属性
- visitor.id
- visitor.externalId
- visitor.name
- visitor.displayName
- visitor.email
- visitor.phone
- visitor.notes
- visitor.tags
- visitor.pastChats
- visitor.pastVisits
- visitor.pageUrl
- visitor.browser
- visitor.platform
- visitor.ip
- visitor.device
- visitor.location
- visitor.userAgent
visitor.id
获取聊天中访问者的id。
得到
客户端.得到(“visitor.id”);
返回
{
“visitor.id”:字符串
}
visitor.externalId
获取聊天中经过身份验证的访问者的外部id。
得到
客户端.得到(“visitor.externalId”);
返回
{
“visitor.externalId”:字符串
}
visitor.name
获取或设置聊天中访问者的名称。
得到
客户端.得到(“visitor.name”);
返回
{
“visitor.name”:字符串
}
集
客户端.集(“visitor.name”,价值);
参数
- 要为访问者设置的名称字符串。
visitor.displayName
类似于visitor.nameAPI,它可以用来获取或设置聊天中访问者的名字。
得到
客户端.得到(“visitor.displayName”);
返回
{
“visitor.displayName”:字符串
}
集
客户端.集(“visitor.displayName”,价值);
参数
- 要为访问者设置的名称字符串。
visitor.email
获取或设置聊天中访问者的电子邮件。
得到
客户端.得到(“visitor.email”);
返回
{
“visitor.email”:字符串
}
集
客户端.集(“visitor.email”,价值);
参数
- 要为访客设置的电子邮件字符串。
visitor.phone
获取或设置聊天中访问者的电话号码。
得到
客户端.得到(“visitor.phone”);
返回
{
“visitor.phone”:字符串
}
集
客户端.集(“visitor.phone”,价值);
参数
- 要为来访者设置的电话号码字符串。
visitor.notes
获取或设置在聊天中为访问者编写的备注。
得到
客户端.得到(“visitor.notes”);
返回
{
“visitor.notes”:字符串
}
集
客户端.集(“visitor.notes”,价值);
参数
- 为来访者设置的一串笔记。
visitor.tags
获取分配给访问者的标记,包括由聊天触发器操作设置的标记。
得到
客户端.得到(“visitor.tags”);
返回
{
“visitor.tags”:数组的字符串
}
visitor.pastChats
获取访问者过去的聊天记录。
得到
客户端.得到(“visitor.pastChats”);
返回
{
“visitor.pastChats”:数组的浓缩闲谈,聊天对象
}
看到聊天的对象属性。
visitor.pastVisits
获取访问者以前访问过的页面。
得到
客户端.得到(“visitor.pastVisits”);
返回
{
“visitor.pastVisits”:[
{
“时间戳”:整数,
“是page_title”:字符串,
“page_url”:字符串
}
…
]
}
visitor.pageUrl
获取访问者当前在站点上查看的页面的url。
得到
客户端.得到(“visitor.pageUrl”);
返回
{
“visitor.pageUrl”:字符串
}
visitor.browser
获取访问者正在使用的浏览器。一些可能的值是铬
,火狐
,Safari
等。
得到
客户端.得到(“visitor.browser”);
返回
{
“visitor.browser”:字符串
}
visitor.platform
获取访问者正在使用的平台。返回的值可能是Mac OS
,窗户
等。
得到
客户端.得到(“visitor.platform”);
返回
{
“visitor.platform”:字符串
}
visitor.ip
获取访问者的ip。
得到
客户端.得到(“visitor.ip”);
返回
{
“visitor.ip”:字符串
}
visitor.device
获取访问者正在使用的设备。可能的值是桌面
或移动
.
得到
客户端.得到(“visitor.device”);
返回
{
“visitor.device”:字符串
}
visitor.location
获取访问者当前在线所在国家/地区的全名。
得到
客户端.得到(“visitor.location”);
返回
{
“visitor.location”:字符串
}
visitor.userAgent
获取访问者的用户代理。
得到
客户端.得到(“visitor.userAgent”);
返回
{
“visitor.userAgent”:字符串
}