Crie uma cópia completa de um projeto existente com opções configuráveis sobre o que incluir.


Copiar um Projeto

A mutação de copiar projeto permite que você duplique um projeto existente dentro da mesma empresa ou para uma empresa diferente. Isso é útil para criar modelos de projeto, configurar projetos semelhantes ou mover projetos entre empresas. A operação de cópia é executada de forma assíncrona para lidar com grandes projetos de forma eficiente.

Exemplo Básico

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

Exemplo Avançado

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 Obrigatório Descrição
projectId String! ✅ Sim O ID do projeto a ser copiado
name String! ✅ Sim O nome para o novo projeto (máx. 50 caracteres)
description String Não A descrição para o novo projeto (máx. 500 caracteres)
imageURL String Não A URL da imagem para o novo projeto
companyId String Não O ID da empresa onde o novo projeto deve ser criado. Se não fornecido, usa a empresa do projeto de origem
options CopyProjectOptionsInput! ✅ Sim Configuração sobre quais elementos copiar

CopyProjectOptionsInput

Parâmetro Tipo Obrigatório Descrição
assignees Boolean Não Copiar responsáveis por tarefas (requer people: true)
automations Boolean Não Copiar automações e fluxos de trabalho do projeto
checklists Boolean Não Copiar listas de verificação de tarefas
customFields Boolean Não Copiar definições e valores de campos personalizados
discussions Boolean Não Copiar discussões do projeto
discussionComments Boolean Não Copiar comentários em discussões (requer discussions: true)
dueDates Boolean Não Copiar datas de vencimento em tarefas
files Boolean Não Copiar anexos de arquivos
forms Boolean Não Copiar formulários do projeto
people Boolean Não Copiar membros do projeto
projectUserRoles Boolean Não Copiar funções e permissões de usuário (requer people: true)
statusUpdates Boolean Não Copiar atualizações de status do projeto
statusUpdateComments Boolean Não Copiar comentários sobre atualizações de status (requer statusUpdates: true)
tags Boolean Não Copiar tags do projeto
todoActions Boolean Não Copiar ações/subtarefas de tarefas
todoComments Boolean Não Copiar comentários de tarefas
todoLists Boolean Não Copiar listas/seções de tarefas
todos Boolean Não Copiar tarefas
coverConfig Boolean Não Copiar configuração da imagem de capa do todo

Resposta

A mutação retorna um Boolean valor:

  • true - O trabalho de cópia foi enfileirado com sucesso
  • false - O trabalho de cópia não pôde ser iniciado

Verificando o Status da Cópia

Como a cópia é assíncrona, use a consulta copyProjectStatus para verificar o progresso:

Campos de Status da Cópia

Campo Tipo Descrição
queuePosition Int Posição na fila de cópia
totalQueues Int Número total de itens na fila
isActive Boolean Se a operação de cópia está atualmente ativa
oldProject Project O projeto de origem sendo copiado
newProjectName String Nome do novo projeto sendo criado
isTemplate Boolean Se isso está copiando como um modelo
oldCompany Company Empresa de origem
newCompany Company Empresa de destino
query CheckCopyStatus {
  copyProjectStatus {
    queuePosition
    totalQueues
    isActive
    oldProject {
      id
      name
    }
    newProjectName
    isTemplate
    oldCompany {
      id
      name
    }
    newCompany {
      id
      name
    }
  }
}

Permissões Necessárias

Para copiar um projeto, você precisa de permissões apropriadas tanto na origem quanto no destino:

Cenário Permissões Necessárias
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

O projeto de origem deve estar ativo (não arquivado) para ser copiado.

Respostas de Erro

Projeto Não Encontrado

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

Ocorre quando o projeto de origem não existe ou você não tem acesso.

Empresa Não Encontrada

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

Ocorre quando a empresa de destino não existe ou você não tem acesso.

Projeto Muito Grande

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

Ocorre quando o projeto tem mais de 250.000 tarefas.

Cópia Já em Andamento

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

Ocorre quando você já tem uma operação de cópia em andamento.

Notas Importantes

  • Operação Assíncrona: A mutação enfileira um trabalho em segundo plano e retorna imediatamente. Use copyProjectStatus para acompanhar o progresso.
  • Uma Cópia por Vez: Apenas uma operação de cópia por usuário pode estar ativa a qualquer momento.
  • Limitações de Tamanho: Projetos com mais de 250.000 tarefas não podem ser copiados.
  • Dependências Lógicas: Algumas opções funcionam melhor juntas:
    • assignees funciona com people: true (responsáveis não serão copiados sem pessoas)
    • discussionComments funciona com discussions: true
    • statusUpdateComments funciona com statusUpdates: true
    • projectUserRoles funciona com people: true
  • Processamento de Nome: Os nomes dos projetos são cortados e quaisquer URLs são removidas automaticamente.
  • Prioridade na Fila: Clientes empresariais recebem prioridade maior na fila de cópia.
  • Cache de Status: O status da cópia é armazenado em cache por 6 horas após a conclusão.

Assistente de IA

As respostas são geradas usando IA e podem conter erros.

Como posso ajudá-lo?

Pergunte-me qualquer coisa sobre o Blue ou esta documentação.

Digite para enviar • Shift+Enter para nova linha • ⌘I para abrir