帮你快速理解、总结文档立即下载

会话相关

最近更新时间:2026-08-13 16:20:00
我的收藏

消息类介绍

AIDeskCore 中的会话为 ISessionModel 类型,会话分为四种:
IM :表示客服之间与客服与外部用户之间的会话。
ROBOT:表示外部客户在与机器人聊天阶段的会话。
IM_QUEUE:表示外部客户已转人工在排队等待分配阶段的会话。
IM_OTHER_INPROGRESS:表示外部客户转人工成功在与客服聊天阶段的会话。
type IMSession = {
/** 会话 ID。 */
sessionId: string;
/** 会话类型。 */
type: SESSION_TYPE.IM;
/** 会话用户端的用户 ID。 */
userId: string;
/** 会话用户端的用户头像。 */
avatar: string;
/** 会话用户端的用户昵称。 */
nickname: string;
/** 会话创建时间戳。 */
timestamp: number;
/** 网站渠道自定义数据。 */
clientData: string;
/** 会话最后一条消息。 */
lastMessage?: IMessageModel;
/** 未读消息数。 */
unreadCount: number;
/** 用户端来源。 */
peerSource: string;
/** 会话呼入超时时间,用于提示会话接入消息。 */
timeout: number;
/** 是否为内部会话。 */
isInnerSession: boolean;
/** 接入客服 ID。 */
channelAgentID: string;
/** 是否为主动联系。 */
isIMCallOut?: number;
/** 会话状态。 */
sessionState: SessionState; // 'ringing' | 'inProgress' | 'finished' | 'seatJoining' | ''
/** IM 会话是否为群聊。 */
imAgentChatType?: number;
/** 接入客服号名称。 */
channelName?: string;
/** 超时未回复时间。 */
IMReplyTimeOut?: number;
/** 会话语言。 */
language?: string;
/** 会话国家。 */
country?: string;
/** 会话时区。 */
timezone?: string;
/** 群人数,仅群组会话具有。 */
groupMemberNum?: number;
/** 会话标记状态。 */
starStatus?: number;
/** 用户备注。 */
remark?: string;
/** 用户 IP。 */
userClientIP?: string;
/** 客服技能组 ID。 */
skillGroupId?: string;
/** 客服工号。 */
staffNo?: string;
/** 网站渠道用户在线状态。 */
userStatus: '1' | '2';
/** 用户在 src 为 7 时的自定义数据。 */
clientCustomData?: string;
/** 子会话 ID。 */
subSessionId?: string;
/** 子会话序号。 */
subSessionNumber?: number;
/** 草稿。 */
draft: string;
/** 用户黑名单信息。 */
userBlacklist?: {
/** 黑名单开始时间。 */
startTime: number;
/** 黑名单结束时间。 */
endTime: number;
/** 拉黑类型。 */
blockType: number;
/** 拉黑原因。 */
reason: string;
};
};
type RobotSession = {
/** 会话 ID。 */
sessionId: string;
/** 会话类型。 */
type: SESSION_TYPE.ROBOT;
/** 会话用户端的用户 ID。 */
userId: string;
/** 当前会话的群 ID。 */
groupID: string;
/** 会话用户端的用户头像。 */
avatar: string;
/** 会话用户端的用户昵称。 */
nickname: string;
/** 会话创建时间戳。 */
timestamp: number;
/** 网站渠道自定义数据。 */
clientData: string;
/** 会话最后一条消息。 */
lastMessage?: IMessageModel;
/** 用户端来源。 */
peerSource: string;
/** 接入客服 ID。 */
channelAgentID: string;
/** IM 会话是否为群聊。 */
imAgentChatType?: number;
/** 接入客服号名称。 */
channelName?: string;
/** 会话语言。 */
language?: string;
/** 群人数,仅群组会话具有。 */
groupMemberNum?: number;
/** 用户备注。 */
userMark?: string;
/** 用户 IP。 */
userClientIP?: string;
/** 转人工次数。 */
transToAgentTimes: number;
/** 用户在 src 为 7 时的自定义数据。 */
clientCustomData?: string;
/** 子会话 ID。 */
subSessionId?: string;
/** 子会话序号。 */
subSessionNumber?: number;
/** 转人工状态。 */
transferStatus: string;
};
type QueueSession = {
/** 会话 ID。 */
sessionId: string;
/** 会话类型。 */
type: SESSION_TYPE.IM_QUEUE;
/** 会话用户端的用户 ID。 */
userId: string;
/** 当前会话的群 ID。 */
groupID: string;
/** 会话用户端的用户头像。 */
avatar: string;
/** 会话用户端的用户昵称。 */
nickname: string;
/** 会话创建时间戳。 */
timestamp: number;
/** 网站渠道自定义数据。 */
clientData: string;
/** 会话最后一条消息。 */
lastMessage?: IMessageModel;
/** 用户端来源。 */
peerSource: string;
/** 接入客服 ID。 */
channelAgentID: string;
/** IM 会话是否为群聊。 */
imAgentChatType?: number;
/** 接入客服号名称。 */
channelName?: string;
/** 会话语言。 */
language?: string;
/** 群人数,仅群组会话具有。 */
groupMemberNum?: number;
/** 用户备注。 */
userMark?: string;
/** 用户 IP。 */
userClientIP?: string;
/** 会话状态。 */
currentState: string;
/** 用户在 src 为 7 时的自定义数据。 */
clientCustomData?: string;
/** 子会话 ID。 */
subSessionId?: string;
/** 子会话序号。 */
subSessionNumber?: number;
};
type IMOtherInprogressSession = {
/** 会话 ID。 */
sessionId: string;
/** 会话类型。 */
type: SESSION_TYPE.IM_OTHER_INPROGRESS;
/** 会话用户端的用户 ID。 */
userId: string;
/** 当前会话的群 ID。 */
groupID: string;
/** 会话用户端的用户头像。 */
avatar: string;
/** 会话用户端的用户昵称。 */
nickname: string;
/** 会话创建时间戳。 */
timestamp: number;
/** 网站渠道自定义数据。 */
clientData: string;
/** 会话最后一条消息。 */
lastMessage?: IMessageModel;
/** 用户端来源。 */
peerSource: string;
/** 接入客服 ID。 */
channelAgentID: string;
/** IM 会话是否为群聊。 */
imAgentChatType?: number;
/** 接入客服号名称。 */
channelName?: string;
/** 会话语言。 */
language?: string;
/** 群人数,仅群组会话具有。 */
groupMemberNum?: number;
/** 用户备注。 */
userMark?: string;
/** 用户 IP。 */
userClientIP?: string;
/** 当前接入的客服 ID。 */
currentStaff: string;
/** 当前接入的客服昵称。 */
currentStaffNickName: string;
/** 坐席状态。 */
seatStatus: string;
/** 休息原因。 */
restReason: string;
/** 会话结束类型:1 表示转接,2 表示结束。 */
memberOutType: number;
/** 用户在 src 为 7 时的自定义数据。 */
clientCustomData?: string;
/** 子会话 ID。 */
subSessionId?: string;
/** 子会话序号。 */
subSessionNumber?: number;
};
说明:
座席之间的单聊会话默认保存30天。
已转人工成功外部用户的会话的有效期为 24小时 ,请在24小时内处理完会话信息。

会话相关 API

切换当前活跃会话

调用此 API 会切换 AIDeskCore 存储层当前选择的会话。
接口
AIDeskCoreInstance.sessionService.switchSession(options);
参数
参数 options 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
sessionId
string
-
会话的 ID。
sessionType
string
-
会话类型。
返回值
示例
enum SESSION_TYPE {
IM = 'im',
ROBOT = 'im_robot',
IM_QUEUE = 'im_queue',
IM_OTHER_INPROGRESS = 'im_other_inprogress',
}

import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

AIDeskCoreInstance.sessionService.switchSession({ sessionId: 'sessionId', sessionType: SESSION_TYPE });

接听会话

调用此 API 会 接听状态为 ringing 的会话。
接口
AIDeskCoreInstance.sessionService.acceptSession(sessionId);
参数
参数
类型
默认值
描述
sessionId
string
-
需要接听的会话 ID。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

AIDeskCoreInstance.sessionService.acceptSession(sessionId);

结束会话

调用此 API 会结束状态为 inProgress 的会话。
接口
AIDeskCoreInstance.sessionService.endSession(sessionId);
参数
参数
类型
默认值
描述
sessionId
string
-
需要结束的会话 ID。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

AIDeskCoreInstance.sessionService.endSession(sessionId);

完成会话

调用此 API 会将状态为 finished 的会话移除会话列表。
接口
AIDeskCoreInstance.sessionService.completeSession(sessionId);
参数
参数
类型
默认值
描述
sessionId
string
-
需要完成服务的会话 ID。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

AIDeskCoreInstance.sessionService.completeSession(sessionId);

下发会话满意度评价

调用此 API 在状态为 inProgress 会话中下发满意度评价消息。
接口
AIDeskCoreInstance.sessionService.evaluateSession(sessionId);
参数
参数
类型
默认值
描述
sessionId
string
-
需要下发评价消息的会话 ID。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

AIDeskCoreInstance.sessionService.evaluateSession(sessionId);

会话标记未读

调用此 API 会将状态为 inProgress 会话的未读数从 0 变成 1。
接口
AIDeskCoreInstance.sessionService.markSessionUnread(sessionId);
参数
参数
类型
默认值
描述
sessionId
string
-
需要标记未读的会话 ID。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

AIDeskCoreInstance.sessionService.markSessionUnread(sessionId);

会话标记

调用此 API 会将状态为 inProgress 会话做一个 mark 标记,改变会话 starStatus 的属性,且此操作会让会话不受自动超时结束影响。
接口
AIDeskCoreInstance.sessionService.markSession(sessionId);
参数
参数
类型
默认值
描述
sessionId
string
-
需要标记的会话 ID。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

AIDeskCoreInstance.sessionService.markSession(sessionId);

获取客服列表信息

调用此 API 可查询当前应用下客服的信息。
接口
AIDeskCoreInstance.sessionService.getStaffList(options);
参数
参数 options 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
pageNum
number
-
分页号。
pageSize
number
-
分页大小。
isNeedStatus
boolean
-
是否返回客服状态。
skillGroupType
number
-
客服分组类型。
fuzzingKeyWord
string
-
查询关键词。
返回值
Promise<object>
返回值为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
total
number
-
所有数据的条数。
staffList
object[]
-
客服数据列表。
staffList 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
userId
string
-
客服的账号。
nickName
string
-
客服昵称。
avatar
string
-
客服头像。
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

const result = await AIDeskCoreInstance.sessionService.getStaffList(options);

获取客服分组列表信息

调用此 API 可查询当前应用下客服分组的信息。
接口
AIDeskCoreInstance.sessionService.getSkillGroupList(options);
参数
参数 options 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
pageNum
number
-
分页号。
pageSize
number
-
分页大小。
skillGroupType
number
-
客服分组类型。
fuzzingKeyWord
string
-
查询关键词。
返回值
Promise<object>
返回值为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
total
number
-
所有数据的条数。
skillGroupList
object[]
-
客服分组数据列表。
skillGroupList 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
freeCntExceptReqMember
number
-
分组空闲人数。
skillGroupName
string
-
客服分组昵称。
skillGroupId
string
-
客服分组 ID。
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

const result = await AIDeskCoreInstance.sessionService.getSkillGroupList(options);

转接会话

调用此 API 可将状态为 inProgress 的会话转接到指定客服或分组。
接口
AIDeskCoreInstance.sessionService.transferSession(options);
参数
参数 options 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
sessionId
string
-
需要转接的会话 ID。
userId
string
-
客服 ID。
skillGroupId
string
-
客服分组 ID。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

// userId或skillGroupId填入一个即可
const result = await AIDeskCoreInstance.sessionService.getSkillGroupList(options);

咨询入口查询

调用此 API 可查询用于主动联系的 IM 咨询入口列表。
接口
AIDeskCoreInstance.sessionService.getIMAgentList();
参数
返回值
Promise<object>
返回值为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
userId
number
-
咨询入口的 ID。
nickName
string
-
咨询入口昵称。
avatar
string
-
咨询入口头像。
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

const result = await AIDeskCoreInstance.sessionService.getIMAgentList();

主动联系 IM 用户的资料查询

调用此 API 可查询用于主动联系的 IM 用户信息。
接口
AIDeskCoreInstance.sessionService.getIMUserProfile(userIDs);
参数
参数
类型
默认值
描述
userIDs
string[]
-
IM 应用下的 userid 列表。
返回值
Promise<object>
返回值为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
userId
number
-
用户的 ID。
nickName
string
-
用户的昵称。
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

const result = await AIDeskCoreInstance.sessionService.getIMUserProfile(['1']);

主动联系 IM 用户发起会话

调用此 API 可查询用于主动联系的 IM 用户发起外部会话。
接口
AIDeskCoreInstance.sessionService.followUpSession(ClientUserID, channelAgentID, peerSource, IgnoreReceptionLimit);
参数
参数
类型
默认值
描述
ClientUserID
string
-
联系的 IM 用户 ID。
channelAgentID
string
-
咨询入口 ID。
peerSource
string | undefined
-
用户来源。
IgnoreReceptionLimit
number | undefined
-
是否忽略接待上限。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

await AIDeskCoreInstance.sessionService.followUpSession(
'ClientUserID',
'channelAgentID',
'4',
1
)

主动介入机器人会话

调用此 API 可直接让客户结束机器人阶段的会话并转入当前客服。
接口
AIDeskCoreInstance.sessionService.takeoverRobotSession(clientUserID, channelAgentID, peerSource);
参数
参数
类型
默认值
描述
clientUserID
string
-
主动联系的用户 ID。
channelAgentID
string
-
咨询入口 ID。
peerSource
string | undefined
-
用户来源。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

await AIDeskCoreInstance.sessionService.takeoverRobotSession(
'ClientUserID',
'channelAgentID',
'4',
)

主动介入排队中会话

调用此 API 可直接让客户结束会话的排队阶段并转入当前客服。
接口
AIDeskCoreInstance.sessionService.takeOverIMQueueSession(clientUserID, channelAgentID, peerSource);
参数
参数
类型
默认值
描述
clientUserID
string
-
主动联系的用户 ID。
channelAgentID
string
-
咨询入口 ID。
peerSource
string | undefined
-
用户来源。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

await AIDeskCoreInstance.sessionService.takeOverIMQueueSession(
'ClientUserID',
'channelAgentID',
'4',
)

介入进行中的会话

调用此 API 可私聊当前接待会话的客服,并将客服与用户的最近 20 条消息作为合并消息发送到客服单聊中。
接口
AIDeskCoreInstance.sessionService.interveneOtherSeatInprogressSession(sessionId);
参数
参数
类型
默认值
描述
sessionId
string
-
会话的 ID。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

await AIDeskCoreInstance.sessionService.interveneOtherSeatInprogressSession(sessionId);

隐藏内部会话

调用此 API 可将客服之间的聊天隐藏。
接口
AIDeskCoreInstance.sessionService.hideInnerSessions(sessionIDList);
参数
参数
类型
默认值
描述
sessionIDList
string[]
-
需要隐藏的会话 ID 列表。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

await AIDeskCoreInstance.sessionService.hideInnerSessions(sessionIDList);

发起内部会话

调用此 API 可将发起客服之间的聊天。
接口
AIDeskCoreInstance.sessionService.startInnerSession(userId, nickName);
参数
参数
类型
默认值
描述
userId
string
-
用户 ID。
nickName
string
-
用户昵称。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

await AIDeskCoreInstance.sessionService.startInnerSession('userId', 'nickName');

查询历史会话记录

调用此 API 可查询当前客服的外部会话的记录列表。
接口
AIDeskCoreInstance.sessionService.getIMSessionRecords(options);
参数
参数 options 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
pageNum
number
-
分页号。
pageSize
number
-
分页大小。
fromTime
number
-
起始时间戳,单位秒。
toTime
number
-
截止时间戳,单位秒。
staffUserId
string
-
当前客服的 ID。
返回值
Promise<object>
返回值为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
total
number
-
所有数据的条数。
data
object[]
-
会话记录列表。
data 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
sessionId
string
-
会话 ID。
timestamp
string
-
会话时间。
source
string
-
来源。
userId
string
-
用户 ID。
userNickName
string
-
用户昵称。
staffNickName
string
-
客服昵称。
staffUserId
string
-
客服 ID。
endStatus
string
-
服务状态。
skillGroupName
string
-
客服分组。
userBlacklist
object
-
用户拉黑数据。
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

const res = await AIDeskCoreInstance.sessionService.getIMSessionRecords(options);

历史记录会话添加到本地会话列表

因为本地只存储两天内的结束状态的会话,如果需要查询两天前的会话需要模拟一个结束会话加入会话列表。
接口
AIDeskCoreInstance.sessionService.addRecordSession(options);
参数
参数 options 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
sessionId
number
-
会话 ID。
userId
number
-
用户 ID。
avatar
number
-
用户头像。
nickname
string
-
用户昵称。
timestamp
string
-
会话时间戳。
clientData
string
-
会话自定义字段。
peerSource
string
-
会话来源。
channelAgentID
string
-
会话咨询入口。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

const result = await AIDeskCoreInstance.sessionService.addRecordSession(options);

加入黑名单

调用此 API 可以将用户加入黑名单,可选择用户禁止转人工或使用机器人。
接口
AIDeskCoreInstance.sessionService.addBlacklist(options);
参数
参数 options 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
userId
number
-
用户 ID。
beginTime
number
-
拉黑开始时间戳,单位秒。
endTime
number
-
拉黑结束时间戳,单位秒。
blockType
string
-
拉黑功能限制。
reason
string
-
拉黑原因。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

const result = await AIDeskCoreInstance.sessionService.addBlacklist(options);

移出黑名单

调用此 API 可以将用户移出黑名单。
接口
AIDeskCoreInstance.sessionService.removeBlacklist(options);
参数
参数 options 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
userId
number
-
用户 ID。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

const result = await AIDeskCoreInstance.sessionService.removeBlacklist(options);

设置备注

调用此 API 可以将给会话的用户设置备注。
接口
AIDeskCoreInstance.sessionService.setUserRemark(options);
参数
参数 options 为 object 类型,包含的属性值如下:
参数
类型
默认值
描述
sessionId
number
-
会话 ID。
remark
number
-
备注信息。
返回值
示例
import AIDeskCoreInstance from '@tencentcloud/ai-desk-core';

const result = await AIDeskCoreInstance.sessionService.setUserRemark(options);