跳转到内容

Conversation

client.conversations 管理联系人与您的团队(或 AI 代理)之间的对话线程。每个对话属于一个 Channel 并链接到一个 Contact


Schema

Conversation

FieldType说明
object_name"conversation"对象类型标识符
idstring唯一对话 ID
organization_idstring所属组织
business_unit_idstring业务单元 ID
channel_idstring此对话所属的渠道
channel_typestring渠道平台类型(参见 Channel
contact_idstring链接的联系人 ID
statusstring对话状态(例如 openresolved
namestring对话显示名称
timestampstring最新消息的 ISO 8601 时间戳
usersSimpleUser[]当前在此对话中的团队成员

Methods

MethodTypeScriptPython说明
Listlistlist分页的对话列表
Getgetget按内部 ID 获取对话
Get by conversation IDgetByConversationId按公开对话 ID 获取
Searchsearchsearch在业务单元内全文搜索
Get views countgetViewsCountget_views_count按视图/状态统计对话数量
Createcreatecreate创建新对话
Joinjoinjoin以团队成员身份加入对话
Leaveleaveleave离开对话
Update statusupdateStatusupdate_status更改对话状态
Update nameupdateName重命名对话
Init video callinitVideoCall在对话中开始视频通话
Assign team memberassignTeamMember分配团队成员到对话
Remove team memberremoveTeamMember移除团队成员
Get invitable usersgetInvitableUsers列出可邀请的用户

list / list

const page = await client.conversations.list({
type: "open",
q: "billing",
limit: 20,
skip: 0,
});
for (const conv of page.data) {
console.log(conv.id, conv.name, conv.status);
}

const results = await client.conversations.search({
businessUnitId: "bu_id",
q: "refund request",
limit: 10,
});

create / create

const conversation = await client.conversations.create({
channel_id: "channel_id",
contact_id: "contact_id",
});
console.log(conversation.id);

join / join

await client.conversations.join({ conversation_id: "conversation_id" });

updateStatus / update_status

await client.conversations.updateStatus({
conversation_id: "conversation_id",
status: "resolved",
});

assignTeamMember

await client.conversations.assignTeamMember({
conversation_id: "conversation_id",
user_id: "agent_user_id",
});

leave / leave

await client.conversations.leave({ conversation_id: "conversation_id" });

getByConversationId

const conversation = await client.conversations.getByConversationId("public_conversation_id");
console.log(conversation.id, conversation.status);

getViewsCount / get_views_count

const counts = await client.conversations.getViewsCount({ type: "open" });
console.log(counts);

updateName

await client.conversations.updateName({
conversation_id: "conversation_id",
name: "VIP Support Thread",
});

removeTeamMember

await client.conversations.removeTeamMember({
conversation_id: "conversation_id",
user_id: "agent_user_id",
});

getInvitableUsers

const users = await client.conversations.getInvitableUsers("conversation_id");
for (const u of users) {
console.log(u._id, u.name);
}

initVideoCall

const result = await client.conversations.initVideoCall({
conversation_id: "conversation_id",
});
console.log(result.conversation);