创建现有项目的完整副本,并可配置要包含的选项。


复制项目

复制项目变更允许您在同一公司内或向不同公司复制现有项目。这对于创建项目模板、设置类似项目或在公司之间移动项目非常有用。复制操作是异步运行的,以高效处理大型项目。

基本示例

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 个任务的项目无法复制。
  • 逻辑依赖:某些选项最好一起使用:
    • assigneespeople: true 一起使用(没有人员时不会复制分配者)
    • discussionCommentsdiscussions: true 一起使用
    • statusUpdateCommentsstatusUpdates: true 一起使用
    • projectUserRolespeople: true 一起使用
  • 名称处理:项目名称会被修剪,任何 URL 会被自动移除。
  • 队列优先级:企业客户在复制队列中享有更高的优先级。
  • 状态缓存:复制状态在完成后缓存 6 小时。

AI助手

响应是通过人工智能生成的,可能包含错误。

我能帮您什么?

随时问我关于 Blue 或本文档的任何问题。

输入发送 • Shift+Enter 换行 • ⌘I 打开