跳到內容

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);