使用可配置的選項創建現有專案的完整副本。
複製專案
複製專案的變異允許您在同一公司內或轉移到不同公司中複製現有專案。這對於創建專案模板、設置相似專案或在公司之間移動專案非常有用。複製操作是異步運行的,以有效處理大型專案。
基本範例
mutation CopyProject {
copyProject(
input: {
projectId: "proj_123abc"
name: "New Project Copy"
options: {
todos: true
todoLists: true
people: true
}
}
)
}
進階範例
mutation CopyProject {
copyProject(
input: {
projectId: "proj_123abc"
name: "Q2 Marketing Campaign"
description: "Copy of Q1 campaign with updated timeline"
imageURL: "https://example.com/campaign-logo.png"
companyId: "comp_789xyz"
options: {
assignees: true
automations: true
checklists: true
customFields: true
discussions: false
discussionComments: false
dueDates: true
files: true
forms: true
people: true
projectUserRoles: true
statusUpdates: false
statusUpdateComments: false
tags: true
todoActions: true
todoComments: false
todoLists: true
todos: true
}
}
)
}
輸入參數
CopyProjectInput
參數 | 類型 | 必填 | 描述 |
---|---|---|---|
projectId |
String! | ✅ 是 | 要複製的專案 ID |
name |
String! | ✅ 是 | 新專案的名稱(最多 50 個字符) |
description |
String | 否 | 新專案的描述(最多 500 個字符) |
imageURL |
String | 否 | 新專案的圖片 URL |
companyId |
String | 否 | 新專案應創建的公司 ID。如果未提供,則使用源專案的公司 |
options |
CopyProjectOptionsInput! | ✅ 是 | 配置要複製的元素 |
CopyProjectOptionsInput
參數 | 類型 | 必填 | 描述 |
---|---|---|---|
assignees |
Boolean | 否 | 複製任務指派者(需要 people: true ) |
automations |
Boolean | 否 | 複製專案自動化和工作流程 |
checklists |
Boolean | 否 | 複製任務檢查清單 |
customFields |
Boolean | 否 | 複製自定義字段定義和數值 |
discussions |
Boolean | 否 | 複製專案討論 |
discussionComments |
Boolean | 否 | 複製討論中的評論(需要 discussions: true ) |
dueDates |
Boolean | 否 | 複製任務的截止日期 |
files |
Boolean | 否 | 複製文件附件 |
forms |
Boolean | 否 | 複製專案表單 |
people |
Boolean | 否 | 複製專案成員 |
projectUserRoles |
Boolean | 否 | 複製用戶角色和權限(需要 people: true ) |
statusUpdates |
Boolean | 否 | 複製專案狀態更新 |
statusUpdateComments |
Boolean | 否 | 複製狀態更新中的評論(需要 statusUpdates: true ) |
tags |
Boolean | 否 | 複製專案標籤 |
todoActions |
Boolean | 否 | 複製任務動作/子任務 |
todoComments |
Boolean | 否 | 複製任務評論 |
todoLists |
Boolean | 否 | 複製任務列表/部分 |
todos |
Boolean | 否 | 複製任務 |
coverConfig |
Boolean | 否 | 複製待辦封面圖片配置 |
回應
該變異返回一個 Boolean
值:
true
- 複製任務已成功排隊false
- 複製任務無法啟動
檢查複製狀態
由於複製是異步的,使用 copyProjectStatus
查詢來檢查進度:
複製狀態字段
字段 | 類型 | 描述 |
---|---|---|
queuePosition |
Int | 複製隊列中的位置 |
totalQueues |
Int | 隊列中的總項目數 |
isActive |
Boolean | 複製操作是否當前活躍 |
oldProject |
Project | 正在複製的源專案 |
newProjectName |
String | 正在創建的新專案的名稱 |
isTemplate |
Boolean | 是否作為模板進行複製 |
oldCompany |
Company | 源公司 |
newCompany |
Company | 目標公司 |
query CheckCopyStatus {
copyProjectStatus {
queuePosition
totalQueues
isActive
oldProject {
id
name
}
newProjectName
isTemplate
oldCompany {
id
name
}
newCompany {
id
name
}
}
}
所需權限
要複製專案,您需要在源和目標位置擁有適當的權限:
情況 | 所需權限 |
---|---|
Copy within same company | OWNER , ADMIN , or MEMBER role in the source project |
Copy to different company | • OWNER , ADMIN , or MEMBER role in the source project• Must be a member of the target company |
源專案必須是活躍的(未存檔)才能被複製。
錯誤回應
專案未找到
{
"errors": [{
"message": "Record not found",
"extensions": {
"code": "PROJECT_NOT_FOUND"
}
}]
}
當源專案不存在或您缺乏訪問權限時發生。
公司未找到
{
"errors": [{
"message": "Record not found",
"extensions": {
"code": "COMPANY_NOT_FOUND"
}
}]
}
當目標公司不存在或您缺乏訪問權限時發生。
專案過大
{
"errors": [{
"message": "Project is too large to copy",
"extensions": {
"code": "CREATE_PROJECT_LIMIT"
}
}]
}
當專案有超過 250,000 個任務時發生。
複製已在進行中
{
"errors": [{
"message": "Oops!"
}]
}
當您已經有一個複製操作在進行中時發生。
重要說明
- 異步操作:該變異排隊一個後台任務並立即返回。使用
copyProjectStatus
來跟踪進度。 - 一次複製:每個用戶一次只能有一個複製操作處於活動狀態。
- 大小限制:超過 250,000 個任務的專案無法被複製。
- 邏輯依賴:某些選項最好一起使用:
assignees
與people: true
一起使用(指派者不會在沒有人員的情況下被複製)discussionComments
與discussions: true
一起使用statusUpdateComments
與statusUpdates: true
一起使用projectUserRoles
與people: true
一起使用
- 名稱處理:專案名稱會被修剪,任何 URL 會自動移除。
- 隊列優先級:企業客戶在複製隊列中享有更高的優先級。
- 狀態緩存:複製狀態在完成後緩存 6 小時。