Crea una copia completa de un proyecto existente con opciones configurables sobre qué incluir.


Copiar un Proyecto

La mutación de copiar proyecto te permite duplicar un proyecto existente dentro de la misma empresa o a una empresa diferente. Esto es útil para crear plantillas de proyectos, configurar proyectos similares o mover proyectos entre empresas. La operación de copia se ejecuta de manera asíncrona para manejar proyectos grandes de manera eficiente.

Ejemplo Básico

mutation CopyProject {
  copyProject(
    input: {
      projectId: "proj_123abc"
      name: "New Project Copy"
      options: {
        todos: true
        todoLists: true
        people: true
      }
    }
  )
}

Ejemplo Avanzado

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

Parámetros de Entrada

CopyProjectInput

Parámetro Tipo Requerido Descripción
projectId String! ✅ Sí El ID del proyecto a copiar
name String! ✅ Sí El nombre para el nuevo proyecto (máx. 50 caracteres)
description String No La descripción para el nuevo proyecto (máx. 500 caracteres)
imageURL String No La URL de la imagen para el nuevo proyecto
companyId String No El ID de la empresa donde se debe crear el nuevo proyecto. Si no se proporciona, utiliza la empresa del proyecto fuente
options CopyProjectOptionsInput! ✅ Sí Configuración sobre qué elementos copiar

CopyProjectOptionsInput

Parámetro Tipo Requerido Descripción
assignees Boolean No Copiar asignaciones de tareas (requiere people: true)
automations Boolean No Copiar automatizaciones y flujos de trabajo del proyecto
checklists Boolean No Copiar listas de verificación de tareas
customFields Boolean No Copiar definiciones y valores de campos personalizados
discussions Boolean No Copiar discusiones del proyecto
discussionComments Boolean No Copiar comentarios en discusiones (requiere discussions: true)
dueDates Boolean No Copiar fechas de vencimiento en tareas
files Boolean No Copiar archivos adjuntos
forms Boolean No Copiar formularios del proyecto
people Boolean No Copiar miembros del proyecto
projectUserRoles Boolean No Copiar roles y permisos de usuario (requiere people: true)
statusUpdates Boolean No Copiar actualizaciones de estado del proyecto
statusUpdateComments Boolean No Copiar comentarios sobre actualizaciones de estado (requiere statusUpdates: true)
tags Boolean No Copiar etiquetas del proyecto
todoActions Boolean No Copiar acciones/subtareas de tareas
todoComments Boolean No Copiar comentarios de tareas
todoLists Boolean No Copiar listas/secciones de tareas
todos Boolean No Copiar tareas
coverConfig Boolean No Copiar configuración de imagen de portada de todo

Respuesta

La mutación devuelve un valor Boolean:

  • true - El trabajo de copia ha sido encolado exitosamente
  • false - No se pudo iniciar el trabajo de copia

Verificando el Estado de la Copia

Dado que la copia es asíncrona, utiliza la consulta copyProjectStatus para verificar el progreso:

Campos del Estado de Copia

Campo Tipo Descripción
queuePosition Int Posición en la cola de copia
totalQueues Int Número total de elementos en la cola
isActive Boolean Si la operación de copia está actualmente activa
oldProject Project El proyecto fuente que se está copiando
newProjectName String Nombre del nuevo proyecto que se está creando
isTemplate Boolean Si esto se está copiando como una plantilla
oldCompany Company Empresa fuente
newCompany Company Empresa objetivo
query CheckCopyStatus {
  copyProjectStatus {
    queuePosition
    totalQueues
    isActive
    oldProject {
      id
      name
    }
    newProjectName
    isTemplate
    oldCompany {
      id
      name
    }
    newCompany {
      id
      name
    }
  }
}

Permisos Requeridos

Para copiar un proyecto, necesitas permisos apropiados tanto en la ubicación fuente como en la ubicación objetivo:

Escenario Permisos Requeridos
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

El proyecto fuente debe estar activo (no archivado) para ser copiado.

Respuestas de Error

Proyecto No Encontrado

{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "PROJECT_NOT_FOUND"
    }
  }]
}

Ocurre cuando el proyecto fuente no existe o no tienes acceso.

Empresa No Encontrada

{
  "errors": [{
    "message": "Record not found",
    "extensions": {
      "code": "COMPANY_NOT_FOUND"
    }
  }]
}

Ocurre cuando la empresa objetivo no existe o no tienes acceso.

Proyecto Demasiado Grande

{
  "errors": [{
    "message": "Project is too large to copy",
    "extensions": {
      "code": "CREATE_PROJECT_LIMIT"
    }
  }]
}

Ocurre cuando el proyecto tiene más de 250,000 tareas.

Copia Ya En Progreso

{
  "errors": [{
    "message": "Oops!"
  }]
}

Ocurre cuando ya tienes una operación de copia en progreso.

Notas Importantes

  • Operación Asíncrona: La mutación encola un trabajo en segundo plano y devuelve inmediatamente. Utiliza copyProjectStatus para rastrear el progreso.
  • Una Copia a la Vez: Solo se puede tener una operación de copia activa por usuario en cualquier momento.
  • Limitaciones de Tamaño: Los proyectos con más de 250,000 tareas no pueden ser copiados.
  • Dependencias Lógicas: Algunas opciones funcionan mejor juntas:
    • assignees funciona con people: true (los asignados no se copiarán sin personas)
    • discussionComments funciona con discussions: true
    • statusUpdateComments funciona con statusUpdates: true
    • projectUserRoles funciona con people: true
  • Procesamiento de Nombres: Los nombres de los proyectos se recortan y cualquier URL se elimina automáticamente.
  • Prioridad en la Cola: Los clientes empresariales reciben mayor prioridad en la cola de copia.
  • Caché de Estado: El estado de la copia se almacena en caché durante 6 horas después de la finalización.

Asistente IA

Las respuestas son generadas por IA y pueden contener errores.

¿Cómo puedo ayudarte?

Pregúntame cualquier cosa sobre Blue o esta documentación.

Enter para enviar • Shift+Enter para nueva línea • ⌘I para abrir